iptablesを使用してVPNのみを許可するファイアウォールの設定

iptablesを使用してVPNのみを許可するファイアウォールの設定

私はopenVPNと一緒にIPredator VPNを使用していますが、接続が失われたときにVPNなしでインターネットからデータを送信しないようにしたいと思います。 iptablesとScopeを使ってこれを行うことができると聞きました。どうすればいいですか? VPNが私に割り当てたIP範囲をどのように見つけることができますか?

ベストアンサー1

VPNを開始する前にnetstat -rnifconfig -a。 VPNを起動すると、これら2つのコマンドの違いにより、VPNがルーティング側で作成したネットワークとそのネットワークの可視性を確保するために割り当てられたIPがわかります。また、VPN(またはトラフィック)を提供するサーバーのIPを取得する必要があります。到着VPNサーバーはそれにアクセスできません。)また、VPNサーバーが代わりにudpを使用しているとしますtcp。その場合はtcp、これを反映するために2番目のルールを更新する必要があります。

これがある場合は、OUTPUTiptablesにルールを追加してホストが表示できる内容を設定できます。

 iptables -F OUTPUT
 iptables -I OUTPUT -d VPNSERVER -p udp -j ACCEPT -m comment --comment "Allow traffic to VPN SERVER"
 iptables -I OUTPUT -s VPNIP -d VPNNETWORK/CIDR -j ACCEPT -m comment --comment "Allow all traffic to VPN newtork"
 iptables -I OUTPUT -j DROP -m comment --comment "Drop all other traffic"

iptables -F OUTPUT既存のルールを更新し、この点に注意してくださいが、元の質問で要求されたとおりに実行してください。

VPNSERVERこれがVPNサーバーのIPになります。 VPNIPVPNがあなたに割り当てたIP。次のようなVPNNETWORK/CIDRルーティングされたネットワークに存在します。netstat -rn10.1.0.0/24

これらのルールをデバッグするときは、一部のプロトコルでは追加の処理が必要になる可能性があるため、削除される項目を記録するのが便利な場合があります。

 iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4 

OUTBOUNDこれは、PCからインターネットへのトラフィックをブロックし、VPNサーバーとVPNサーバーが提供するネットワークにのみトラフィックを到達させるのに十分です。

OPはArch Linuxnetstatまたはifconfig。この場合の選択肢は次のとおりです。

ip addr showインターフェイスが提供され、ip route show現在持っているパスが表示されます。

おすすめ記事