diff --git a/scripts/ks-on.sh b/scripts/ks-on.sh index e22794b..f5d13f9 100644 --- a/scripts/ks-on.sh +++ b/scripts/ks-on.sh @@ -21,6 +21,19 @@ if ! ip link show amn0 &>/dev/null && ! ip link show amnezia0 &>/dev/null; then fi fi +# Проверяем IPv6 — глобальные адреса могут утекать мимо VPN +ipv6_cnt=$(ip -6 addr show scope global 2>/dev/null | grep -c 'inet6' || true) +if [ "$ipv6_cnt" -gt 0 ]; then + echo "" + echo "Обнаружены глобальные IPv6 адреса ($ipv6_cnt шт.) — трафик может утекать мимо VPN." + read -p "Отключить IPv6? [Y/n] " ans + if [ "$ans" != "n" ] && [ "$ans" != "N" ]; then + sysctl -w net.ipv6.conf.all.disable_ipv6=1 >/dev/null + sysctl -w net.ipv6.conf.default.disable_ipv6=1 >/dev/null + echo "IPv6 отключён." + fi +fi + echo "Включаем UFW kill switch..." ufw enable echo "" diff --git a/setup.sh b/setup.sh index 70f3927..9394f46 100755 --- a/setup.sh +++ b/setup.sh @@ -116,6 +116,12 @@ case "$choice" in else echo -e " ${YEL}✗${CLR} ru-ipset-restore.service не установлен (запусти пункт 2)" fi + ipv6_cnt=$(ip -6 addr show scope global 2>/dev/null | grep -c 'inet6' || true) + if [ "$ipv6_cnt" -eq 0 ]; then + echo -e " ${GRN}✓${CLR} IPv6 отключён (нет утечки)" + else + echo -e " ${YEL}!${CLR} IPv6 активен ($ipv6_cnt адресов) — возможна утечка, запусти пункт 4" + fi echo "" echo -e "${BLD}AI инструменты:${CLR}"