mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-19 21:42:59 +03:00
wireguard_iproute: add OUTPUT masquerade
This commit is contained in:
parent
62abdd309a
commit
cd7de457e6
@ -230,7 +230,7 @@ config rule
|
|||||||
|
|
||||||
Завернем на vpn все из ipset zapret на tcp:443 и все из ipban.
|
Завернем на vpn все из ipset zapret на tcp:443 и все из ipban.
|
||||||
OUTPUT относится к исходящим с роутера пакетам, PREROUTING - ко всем остальным.
|
OUTPUT относится к исходящим с роутера пакетам, PREROUTING - ко всем остальным.
|
||||||
Если с роутера ничего заруливать не надо, можно опустить все до команд с PREROUTING.
|
Если с самого роутера ничего заруливать не надо, можно опустить все до команд с PREROUTING.
|
||||||
|
|
||||||
--/etc/firewall.user----------------------------
|
--/etc/firewall.user----------------------------
|
||||||
. /lib/functions/network.sh
|
. /lib/functions/network.sh
|
||||||
@ -250,6 +250,7 @@ iptables -t mangle -C PREROUTING -p tcp --dport 443 -m set --match-set zapret ds
|
|||||||
iptables -t mangle -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j MARK --set-mark 0x800/0x800
|
iptables -t mangle -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j MARK --set-mark 0x800/0x800
|
||||||
iptables -t mangle -C PREROUTING -m set --match-set ipban dst -j MARK --set-mark 0x800/0x800 ||
|
iptables -t mangle -C PREROUTING -m set --match-set ipban dst -j MARK --set-mark 0x800/0x800 ||
|
||||||
iptables -t mangle -I PREROUTING -m set --match-set ipban dst -j MARK --set-mark 0x800/0x800
|
iptables -t mangle -I PREROUTING -m set --match-set ipban dst -j MARK --set-mark 0x800/0x800
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
# fw3 restart
|
# fw3 restart
|
||||||
@ -293,6 +294,46 @@ config rule
|
|||||||
option target 'ACCEPT'
|
option target 'ACCEPT'
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
|
Существует еще один неочевидный нюанс, касаемый пакетов с самого роутера (цепочка OUTPUT).
|
||||||
|
Адрес источника выбирается по особому алгоритму, если программа явно его не задала, еще до этапа iptables.
|
||||||
|
Он берется с интерфейса, куда бы пошел пакет при нормальном раскладе.
|
||||||
|
Обратная маршрутизация с VPN станет невозможной, да и wireguard такие пакеты порежет, поскольку они не вписываются в AllowedIPs.
|
||||||
|
Никаким мистическим образом автоматом source address не поменяется.
|
||||||
|
В прошлом варианте настройки проблема решалось через маскарад. Сейчас же маскарада нет.
|
||||||
|
Потому все же придется его делать в случае, когда пакет изначально направился бы через wan,
|
||||||
|
а мы его завертываем на VPN. Помечаем такие пакеты марком 0x1000.
|
||||||
|
Если вам не актуальны исходящие с самого роутера, то можно ничего не менять.
|
||||||
|
|
||||||
|
--/etc/firewall.user----------------------------
|
||||||
|
. /lib/functions/network.sh
|
||||||
|
|
||||||
|
network_find_wan wan_iface
|
||||||
|
|
||||||
|
for ext_iface in $wan_iface; do
|
||||||
|
network_get_device DEVICE $ext_iface
|
||||||
|
|
||||||
|
iptables -t mangle -C OUTPUT -p tcp --dport 443 -o $DEVICE -m set --match-set zapret dst -j MARK --set-mark 0x800/0x800 ||
|
||||||
|
iptables -t mangle -I OUTPUT -p tcp --dport 443 -o $DEVICE -m set --match-set zapret dst -j MARK --set-mark 0x800/0x800
|
||||||
|
iptables -t mangle -C OUTPUT -o $DEVICE -m set --match-set ipban dst -j MARK --set-mark 0x800/0x800 ||
|
||||||
|
iptables -t mangle -I OUTPUT -o $DEVICE -m set --match-set ipban dst -j MARK --set-mark 0x800/0x800
|
||||||
|
|
||||||
|
iptables -t mangle -C OUTPUT -o $DEVICE -j MARK --set-mark 0x1000/0x1000 ||
|
||||||
|
iptables -t mangle -I OUTPUT -o $DEVICE -j MARK --set-mark 0x1000/0x1000
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
# do masquerade for OUTPUT to ensure correct outgoing address
|
||||||
|
iptables -t nat -C postrouting_tunvps_rule -m mark --mark 0x1000/0x1000 -j MASQUERADE ||
|
||||||
|
iptables -t nat -A postrouting_tunvps_rule -m mark --mark 0x1000/0x1000 -j MASQUERADE
|
||||||
|
|
||||||
|
iptables -t mangle -C PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j MARK --set-mark 0x800/0x800 ||
|
||||||
|
iptables -t mangle -I PREROUTING -p tcp --dport 443 -m set --match-set zapret dst -j MARK --set-mark 0x800/0x800
|
||||||
|
iptables -t mangle -C PREROUTING -m set --match-set ipban dst -j MARK --set-mark 0x800/0x800 ||
|
||||||
|
iptables -t mangle -I PREROUTING -m set --match-set ipban dst -j MARK --set-mark 0x800/0x800
|
||||||
|
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
# fw3 restart
|
# fw3 restart
|
||||||
|
|
||||||
Сейчас уже можно с vpn сервера пингануть ip адрес внутри локалки клиента. Пинги должны ходить.
|
Сейчас уже можно с vpn сервера пингануть ip адрес внутри локалки клиента. Пинги должны ходить.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user