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:
57
tunnel/tunnel-uninstall.sh
Executable file
57
tunnel/tunnel-uninstall.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
# tunnel/tunnel-uninstall.sh — удаление WireGuard-клиента kssh-tunnel с роутера (Entware).
|
||||
# Снимает ТОЛЬКО то, что поставил tunnel-install.sh:
|
||||
# - интерфейс wg0 (или WG_IF)
|
||||
# - /opt/etc/wireguard/<WG_IF>.conf
|
||||
# - init-скрипт /opt/etc/init.d/S50kssh-tunnel и rc.d-симлинк
|
||||
# - правила iptables/sysctl, добавленные туннелем (ACCEPT на wg0)
|
||||
#
|
||||
# Что НЕ трогает: пакет wireguard-tools, общие правила iptables, конфиги других
|
||||
# WireGuard-интерфейсов (Keenetic NDM, HydraRoute и пр.), keenetic_ssh-web.
|
||||
set -e
|
||||
|
||||
WG_IF="${WG_IF:-wg0}"
|
||||
WG_DIR="/opt/etc/wireguard"
|
||||
INIT="/opt/etc/init.d/S50kssh-tunnel"
|
||||
RCD="/opt/etc/rc.d/S50kssh-tunnel"
|
||||
|
||||
echo "==> kssh-tunnel: удаление клиента ($WG_IF)"
|
||||
|
||||
# 1. Остановить интерфейс
|
||||
if [ -x "$INIT" ]; then
|
||||
"$INIT" stop 2>/dev/null || true
|
||||
fi
|
||||
if ip link show "$WG_IF" >/dev/null 2>&1; then
|
||||
ip link del "$WG_IF" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# 2. Снять правила, которые добавляли при старте туннеля
|
||||
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
|
||||
|
||||
# 3. Удалить файлы туннеля (НЕ трогаем чужие WG-конфиги в этой папке)
|
||||
rm -f "$WG_DIR/$WG_IF.conf"
|
||||
rm -f "$RCD" "$INIT"
|
||||
# Папку wireguard сносим только если она пуста (там могут лежать чужие конфиги)
|
||||
rmdir "$WG_DIR" 2>/dev/null || true
|
||||
|
||||
echo
|
||||
echo "============================================================"
|
||||
echo "Готово. Удалены:"
|
||||
echo " $WG_DIR/$WG_IF.conf"
|
||||
echo " $INIT"
|
||||
echo " $RCD (если был)"
|
||||
echo " iptables ACCEPT для $WG_IF"
|
||||
echo
|
||||
echo "НЕ удалены (используются другими, не наша зона ответственности):"
|
||||
echo " пакет wireguard-tools (opkg)"
|
||||
echo " общие правила iptables / sysctl"
|
||||
echo " /opt/etc/wireguard/* кроме $WG_IF.conf"
|
||||
echo " keenetic_ssh-web (см. uninstall.sh в основном репо)"
|
||||
echo "============================================================"
|
||||
Reference in New Issue
Block a user