Я хотел бы попросить вас о небольшой помощи в настройке функции экстренного отключения для моего VPN.
Я использую следующую настройку на моем Pi и устанавливаю IP Pi как шлюз на моем выбранном клиенте (192.168.2.16). Таким образом, клиентский трафик направляется через VPN.
Все работает отлично, но я бы хотел добавить функцию экстренного отключения, которая направит трафик в «черную дыру» на случай, если по какой-то причине соединение с VPN прервется.
[Interface]
PrivateKey = ...
Address = 10.111.111.111/32
Table = 43
PostUp = ip rule add from 192.168.2.16 table 43; iptables -A FORWARD -i %i -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT; iptables -A FORWARD -i eth0 -o %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; iptables -t nat -A POSTROUTING -o %i -j MASQUERADE
PostDown = ...
[Peer]
PublicKey = ...
AllowedIPs = 0.0.0.0/0
Endpoint = 86.xxx.xxx.xxx:51820
решение1
Добавьте номер с низким приоритетом в PostUp
правило политики маршрутизации, например, так 143
(и удалите его таким же образом в PostDown
скрипте):
PostUp = ip rule add from 192.168.2.16 table 43 priority 143; ...
PostDown = ip rule del from 192.168.2.16 table 43 priority 143; ...
Правила с более низким приоритетом сопоставляются первыми. Если вы не установите приоритет, ОС установит его на число около 32765
, чуть ниже правил по умолчанию.
Затем добавьте правило при запуске Pi (место его выполнения зависит от ОС и версии) с более высоким приоритетом (но ниже 32000
или около того), которое будет отклонять весь трафик от 192.168.2.16
:
ip rule add from 192.168.2.16 prohibit priority 1043
При таком подходе, когда интерфейс WireGuard отключен, механизм маршрутизации будет соответствовать правилу , 1043
поскольку он направляет трафик из 192.168.2.16
, и отклонять этот трафик. Когда вы запускаете интерфейс WireGuard с помощью wg-quick
, он добавит правило 143
, которое будет иметь приоритет, и начнет маршрутизировать трафик из 192.168.2.16
через туннель WireGuard (через маршрут, настроенный wg-quick
в таблице 43
). Когда вы выключаете интерфейс WireGuard с помощью wg-quick
(или перезагружаете Pi), правило 143
будет удалено, и правило 1043
будет сопоставлено снова.