![Wireguard の Iptables キルスイッチ](https://rvso.com/image/1645998/Wireguard%20%E3%81%AE%20Iptables%20%E3%82%AD%E3%83%AB%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81.png)
VPN のキルスイッチの設定について少し助けていただきたいです。
私は Pi で次の設定を使用しており、選択したクライアントのゲートウェイとして Pi の IP (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; ...
優先順位番号の低いルールが最初に照合されます。優先順位を設定しない場合、OS は32765
デフォルトのルールよりわずかに低い 付近の数値に優先順位を設定します。
次に、Pi を起動するときに (これを行う場所は OS とバージョンによって異なります)、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
、これが優先され、 WireGuard トンネルを介して (表 で192.168.2.16
によって設定されたルート経由で) からのトラフィックのルーティングが開始されます。 で WireGuard インターフェースをシャットダウンすると(または Pi を再起動すると)、ルールが削除され、ルール が再び一致します。wg-quick
43
wg-quick
143
1043