Files
ai-setup/scripts/ks-on.sh
Виталий Никитенко 398e57c648 fix: kill switch не блокировал не-.ru трафик + Amnezia не могла подключиться
- ru-bypass.sh: добавлен ufw default deny outgoing (раньше нигде не выполнялся)
- ru-bypass.sh: добавлен ufw allow out on amn0 (разрешён трафик через VPN)
- ru-bypass.sh: поддержка AMNEZIA_SERVER — IP добавляется в ipset и маршруты
- ks-on.sh: default deny + allow amn0 при восстановлении kill switch
- setup.sh: меню запрашивает/сохраняет/передаёт AMNEZIA_SERVER
- test_network.sh: DEV читается из конфига вместо жёсткого wl[pi]

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 06:51:48 +03:00

48 lines
2.0 KiB
Bash

#!/bin/bash
# ks-on.sh — включить/восстановить kill switch UFW
# Перед этим подключи Amnezia через её GUI, иначе интернет будет полностью заблокирован.
if [ "$(id -u)" != "0" ]; then
echo "Запускай от root: sudo bash $0"
exit 1
fi
echo "Проверяем что Amnezia поднята..."
if ! ip link show amn0 &>/dev/null && ! ip link show amnezia0 &>/dev/null; then
echo ""
echo "ВНИМАНИЕ: интерфейс amn0/amnezia0 не найден!"
echo "Похоже Amnezia не подключена."
echo "Если включить UFW сейчас — интернет полностью заблокируется."
echo ""
read -p "Всё равно включить kill switch? [y/N] " CONFIRM
if [ "$CONFIRM" != "y" ] && [ "$CONFIRM" != "Y" ]; then
echo "Отменено."
exit 0
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 default deny outgoing >/dev/null 2>&1 || true
ufw allow out on amn0 >/dev/null 2>&1 || true
ufw enable
echo ""
echo "Готово. Kill switch активен."
echo ""
ufw status | head -3
_log_file="${USER_HOME:-$HOME}/.config/ai-setup/setup.log"
printf '%s [ks-on] Kill switch включён на %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$(hostname)" >> "$_log_file" 2>/dev/null || true