Wireguard の Iptables キルスイッチ

Wireguard の Iptables キルスイッチ

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-quick43wg-quick1431043

関連情報