tunnel: server-install ставит ACCEPT для wg0 в INPUT поверх существующих DROP

На VPS часто стоит iptables -A INPUT -p icmp --icmp-type 8 -j DROP
(блокировка внешних ping-ов). Это правило применяется ко всем
интерфейсам, включая wg0, и глушит ping через туннель — handshake
идёт, а ICMP пакеты внутри wg0 пропадают.

Решаем точечно: вставляем `iptables -I INPUT 1 -i wg0 -j ACCEPT`
перед всеми DROP-правилами. Внешняя защита остаётся как была,
а трафик внутри туннеля ничем не блокируется. Дополнительно
сохраняем правило (netfilter-persistent / iptables-save), чтобы
переживало ребут.
This commit is contained in:
Андрей Бобырев
2026-04-26 12:21:10 +03:00
parent f9407fdae4
commit d90f7e9709

View File

@@ -71,6 +71,19 @@ if command -v ufw >/dev/null 2>&1 && ufw status 2>/dev/null | grep -q "Status: a
ufw allow out on "$WG_IF" >/dev/null 2>&1 || true ufw allow out on "$WG_IF" >/dev/null 2>&1 || true
fi fi
# iptables: разрешаем весь трафик с wg0 ДО любых DROP-правил (часто на VPS
# стоит блокировка ICMP echo-request — она блокирует и пинги через туннель).
if command -v iptables >/dev/null 2>&1; then
iptables -C INPUT -i "$WG_IF" -j ACCEPT 2>/dev/null \
|| iptables -I INPUT 1 -i "$WG_IF" -j ACCEPT
# Сохранить, если установлен iptables-persistent
if command -v netfilter-persistent >/dev/null 2>&1; then
netfilter-persistent save >/dev/null 2>&1 || true
elif [ -d /etc/iptables ]; then
iptables-save > /etc/iptables/rules.v4 2>/dev/null || true
fi
fi
PUB_IP="$(curl -s4 ifconfig.me 2>/dev/null || hostname -I | awk '{print $1}')" PUB_IP="$(curl -s4 ifconfig.me 2>/dev/null || hostname -I | awk '{print $1}')"
SERVER_PUB="$(cat "$WG_DIR/server_public.key")" SERVER_PUB="$(cat "$WG_DIR/server_public.key")"