fix: автоотключение IPv6 при настройке kill switch
IPv6-трафик обходит UFW (который работает только с IPv4) — kill switch не защищает от утечек по IPv6. Изменения: - ru-bypass.sh: молча отключает IPv6 (sysctl + /etc/sysctl.d) при каждом запуске, если есть глобальные IPv6-адреса - ks-on.sh: тоже отключает IPv6, но без интерактивного вопроса (раньше спрашивал «Отключить IPv6? [Y/n]») - ai-setup.sh (direct mode): не восстанавливает IPv6, если UFW kill switch активен (раньше безусловно включал обратно, из-за чего после каждого запуска setup.sh IPv6 снова утекал) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -250,12 +250,16 @@ FJSEOF
|
|||||||
success "Firefox переключён на прямой доступ"
|
success "Firefox переключён на прямой доступ"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Включаем IPv6 обратно
|
# Включаем IPv6 обратно (только если kill switch не активен)
|
||||||
|
if ufw status | grep -qE "активен|active"; then
|
||||||
|
info "UFW kill switch активен — оставляю IPv6 отключённым"
|
||||||
|
else
|
||||||
sudo rm -f /etc/sysctl.d/99-disable-ipv6.conf
|
sudo rm -f /etc/sysctl.d/99-disable-ipv6.conf
|
||||||
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 2>/dev/null || true
|
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 2>/dev/null || true
|
||||||
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0 2>/dev/null || true
|
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0 2>/dev/null || true
|
||||||
sudo systemctl restart systemd-resolved 2>/dev/null || true
|
sudo systemctl restart systemd-resolved 2>/dev/null || true
|
||||||
success "IPv6 восстановлен"
|
success "IPv6 восстановлен"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── 1. npm prefix в домашнюю папку ──────────────────────────
|
# ── 1. npm prefix в домашнюю папку ──────────────────────────
|
||||||
|
|||||||
@@ -21,17 +21,18 @@ if ! ip link show amn0 &>/dev/null && ! ip link show amnezia0 &>/dev/null; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Проверяем IPv6 — глобальные адреса могут утекать мимо VPN
|
# Отключаем IPv6 (утечка мимо UFW kill switch, UFW работает только с IPv4)
|
||||||
ipv6_cnt=$(ip -6 addr show scope global 2>/dev/null | grep -c 'inet6' || true)
|
ipv6_cnt=$(ip -6 addr show scope global 2>/dev/null | grep -c 'inet6' || true)
|
||||||
if [ "$ipv6_cnt" -gt 0 ]; then
|
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.all.disable_ipv6=1 >/dev/null
|
||||||
sysctl -w net.ipv6.conf.default.disable_ipv6=1 >/dev/null
|
sysctl -w net.ipv6.conf.default.disable_ipv6=1 >/dev/null
|
||||||
echo "IPv6 отключён."
|
cat > /etc/sysctl.d/99-disable-ipv6.conf << 'SYSCTEOF'
|
||||||
fi
|
# Отключение IPv6 — требуется для защиты kill switch (UFW работает только с IPv4)
|
||||||
|
net.ipv6.conf.all.disable_ipv6=1
|
||||||
|
net.ipv6.conf.default.disable_ipv6=1
|
||||||
|
SYSCTEOF
|
||||||
|
systemctl restart systemd-resolved 2>/dev/null || true
|
||||||
|
echo "IPv6 отключён ($ipv6_cnt адресов)."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Включаем UFW kill switch..."
|
echo "Включаем UFW kill switch..."
|
||||||
|
|||||||
@@ -371,6 +371,21 @@ done
|
|||||||
|
|
||||||
echo "iptables: прямые правила добавлены."
|
echo "iptables: прямые правила добавлены."
|
||||||
|
|
||||||
|
# --- Отключаем IPv6 (утечка мимо UFW kill switch) ---
|
||||||
|
# UFW работает только с IPv4 — IPv6-трафик обходит kill switch полностью.
|
||||||
|
_ipv6_cnt=$(ip -6 addr show scope global 2>/dev/null | grep -c 'inet6' || true)
|
||||||
|
if [ "$_ipv6_cnt" -gt 0 ]; then
|
||||||
|
sysctl -w net.ipv6.conf.all.disable_ipv6=1 >/dev/null 2>&1
|
||||||
|
sysctl -w net.ipv6.conf.default.disable_ipv6=1 >/dev/null 2>&1
|
||||||
|
cat > /etc/sysctl.d/99-disable-ipv6.conf << 'SYSCTEOF'
|
||||||
|
# Отключение IPv6 — требуется для защиты kill switch (UFW работает только с IPv4)
|
||||||
|
net.ipv6.conf.all.disable_ipv6=1
|
||||||
|
net.ipv6.conf.default.disable_ipv6=1
|
||||||
|
SYSCTEOF
|
||||||
|
systemctl restart systemd-resolved 2>/dev/null || true
|
||||||
|
echo "IPv6: отключён ($_ipv6_cnt адресов) для защиты kill switch."
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Готово."
|
echo "Готово."
|
||||||
RU_EXAMPLE=$(dig +short ya.ru A 2>/dev/null | head -1)
|
RU_EXAMPLE=$(dig +short ya.ru A 2>/dev/null | head -1)
|
||||||
|
|||||||
Reference in New Issue
Block a user