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>
This commit is contained in:
@@ -35,6 +35,9 @@ if [ "$ipv6_cnt" -gt 0 ]; then
|
||||
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 активен."
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
GATEWAY="${GATEWAY:-192.168.1.1}"
|
||||
DEV="${DEV:-wlp1s0}"
|
||||
LOCAL_DNS="${LOCAL_DNS:-}"
|
||||
AMNEZIA_SERVER="${AMNEZIA_SERVER:-}"
|
||||
SETNAME="ru-direct"
|
||||
CACHE="/var/cache/ru-delegations.txt"
|
||||
IPSET_SAVE="/etc/ipset.conf"
|
||||
@@ -159,9 +160,17 @@ import sys; print(f'# entries: {entries}', file=sys.stderr)
|
||||
ENTRIES=$(ipset list "$SETNAME" 2>/dev/null | grep -c '/')
|
||||
echo "ipset обновлён: $ENTRIES записей"
|
||||
|
||||
# Сохраняем ipset на диск — ru-ipset-restore.service восстановит его до UFW при перезагрузке
|
||||
ipset save "$SETNAME" > "$IPSET_SAVE"
|
||||
echo "ipset сохранён в $IPSET_SAVE"
|
||||
|
||||
# --- Сервер Amnezia в исключения (чтобы мог подключиться при kill switch) ---
|
||||
|
||||
if [ -n "$AMNEZIA_SERVER" ]; then
|
||||
ipset add "$SETNAME" "$AMNEZIA_SERVER" -exist 2>/dev/null || true
|
||||
echo "Сервер Amnezia $AMNEZIA_SERVER добавлен в ipset $SETNAME"
|
||||
fi
|
||||
# Сохраняем ipset на диск (с учётом сервера Amnezia)
|
||||
ipset save "$SETNAME" > "$IPSET_SAVE"
|
||||
echo "ipset сохранён в $IPSET_SAVE"
|
||||
|
||||
|
||||
# --- Добавляем маршруты ---
|
||||
|
||||
@@ -194,6 +203,13 @@ for net in $LOCAL_NETS; do
|
||||
ip route replace "$net" via "$GATEWAY" dev "$DEV" 2>/dev/null
|
||||
done
|
||||
|
||||
# Маршрут для сервера Amnezia (чтобы мог подключиться при kill switch)
|
||||
if [ -n "$AMNEZIA_SERVER" ]; then
|
||||
ip route replace "$AMNEZIA_SERVER/32" via "$GATEWAY" dev "$DEV" 2>/dev/null
|
||||
echo "Маршрут для сервера Amnezia $AMNEZIA_SERVER добавлен"
|
||||
fi
|
||||
|
||||
|
||||
# --- DNS для *.loc через LOCAL_DNS (если задан) ---
|
||||
|
||||
if [ -n "$LOCAL_DNS" ]; then
|
||||
@@ -222,7 +238,13 @@ if ! grep -q "$UFW_LOCAL_MARKER" "$UFW_BEFORE" 2>/dev/null; then
|
||||
echo "UFW обновлён (локальные сети)."
|
||||
fi
|
||||
|
||||
|
||||
# --- Настройка UFW default deny + allow amn0 (однократно) ---
|
||||
ufw default deny outgoing >/dev/null 2>&1 || true
|
||||
ufw allow out on amn0 >/dev/null 2>&1 || true
|
||||
|
||||
if grep -qE "$UFW_MARKER|$UFW_LOCAL_MARKER" "$UFW_BEFORE" 2>/dev/null; then
|
||||
|
||||
if ufw status | grep -qE "активен|active"; then
|
||||
ufw reload
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user