mirror of
https://github.com/andrey271192/keenetic_ssh-web.git
synced 2026-09-20 14:42:01 +00:00
tunnel: фикс файрвола Keenetic + раздельные uninstall + README под ключ
- tunnel/tunnel-install.sh: в init-скрипте добавлен `iptables -I INPUT -i wg0
-j ACCEPT`, OUTPUT-аналог и `rp_filter=2`. Без этого Keenetic режет ответы
VPS→роутер: handshake проходит, но ping/HTTP внутри туннеля молча дропаются.
В down() — снимаем эти же правила.
- tunnel/tunnel-uninstall.sh (новый): сносит ТОЛЬКО клиентскую часть туннеля
(wg0.conf, init, rc.d, наши iptables-правила). Не трогает wireguard-tools,
чужие WG-конфиги, keenetic_ssh-web, HydraRoute Neo.
- tunnel/server-uninstall.sh (новый): сносит ТОЛЬКО серверную часть туннеля
(wg-quick@wg0, /etc/wireguard/{wg0.conf,server_*.key,peers/}, kssh-tun,
ufw-правила kssh-tunnel). Не делает apt remove для wireguard.
- README.md: переписан под ключ. Чётко разделены два пакета (A: панель,
B: туннель), оба ставятся и удаляются отдельно. Явно перечислено, что
скрипты НЕ трогают (HydraRoute Neo, кастомные репо, чужие правила).
This commit is contained in:
@@ -79,6 +79,15 @@ up() {
|
||||
ip addr add "\$ADDR" dev "\$WG_IF"
|
||||
ip link set "\$WG_IF" up
|
||||
ip route add "\$SUBNET" dev "\$WG_IF" 2>/dev/null || true
|
||||
# Keenetic: входящий трафик на сторонние интерфейсы режется stricht rp_filter +
|
||||
# нет ACCEPT для этих интерфейсов. Без этих двух строк handshake пройдёт, но
|
||||
# пинг и любые ответы VPS→роутер будут молча дропаться.
|
||||
sysctl -w net.ipv4.conf.all.rp_filter=2 >/dev/null 2>&1 || true
|
||||
sysctl -w "net.ipv4.conf.\$WG_IF.rp_filter=2" >/dev/null 2>&1 || true
|
||||
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 -C OUTPUT -o "\$WG_IF" -j ACCEPT 2>/dev/null || iptables -I OUTPUT 1 -o "\$WG_IF" -j ACCEPT
|
||||
fi
|
||||
if ! wg show "\$WG_IF" | grep -q '^peer:'; then
|
||||
echo "ВНИМАНИЕ: peer не появился в \$WG_IF — handshake не состоится."
|
||||
echo "Проверьте \$CONF и перезапустите."
|
||||
@@ -87,6 +96,14 @@ up() {
|
||||
}
|
||||
down() {
|
||||
ip link del "\$WG_IF" 2>/dev/null || true
|
||||
if command -v iptables >/dev/null 2>&1; then
|
||||
while iptables -C INPUT -i "\$WG_IF" -j ACCEPT 2>/dev/null; do
|
||||
iptables -D INPUT -i "\$WG_IF" -j ACCEPT 2>/dev/null || break
|
||||
done
|
||||
while iptables -C OUTPUT -o "\$WG_IF" -j ACCEPT 2>/dev/null; do
|
||||
iptables -D OUTPUT -o "\$WG_IF" -j ACCEPT 2>/dev/null || break
|
||||
done
|
||||
fi
|
||||
echo "stopped \$WG_IF"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user