web-dev-qa-db-ja.com

VPN接続が切断された場合にインターネットをブロックする

VPN接続が切断された場合、コンピューターがインターネットにアクセスできなくなるようにgufwをセットアップしようとしています。

私の計画はすべての発信をブロックすることでしたが、VPNサーバーのIPへの接続のみを許可しましたが、ファイアウォールが実装されていると、VPNが接続されていてもサイトをロードできません。

Gufw settings

上記は現在試している設定です(部分的に非表示のIPは私のvpnサーバーです)、何が間違っていますか?

6
jl354

このようなものを試してください

ufwステータスに基づいてinterfaceルールを変更します。

この種のアクションに最適な場所は、/etc/network/if-down.d/および/etc/network/if-up.d/です

このフォルダにスクリプトを入れてアクションを実行できます。たとえば、このスクリプトを/etc/network/if-down.d/に配置して、tun0goがダウンするたびにufwルールを変更します。

scriptというスクリプトを実行許可付きで作成します755

Sudo nano /etc/network/if-down.d/script

スクリプトは

# Check interface
[ "$IFACE" != "tun0" ] || exit 0
# Do something
Sudo ufw default deny outgoing
Sudo ufw allow out to xxx.xxx.xxx.xxx

スクリプトの許可を変更する

chmod 755 /etc/network/if-down.d/script

scriptxxx.xxx.xxx.xxxは、vpnサーバーのIPを表します

vpn再接続したら、ufwルールを再度変更する必要があります。もう1つのスクリプト、別名script2を作成します

Sudo nano /etc/network/if-up.d/script2

スクリプトはこのようなものです

# Check interface
[ "$IFACE" != "tun0" ] || exit 0
# Do something
Sudo ufw default allow outgoing
#also you can add more ufw rules ...
Sudo ufw ....

スクリプトの許可を変更する

chmod 755 /etc/network/if-up.d/script2

最初のスクリプトは、tun0がダウンした場合、デフォルトの発信ポリシーを拒否しますが、vpnサーバーへのアクセスを許可します。 2番目のスクリプトは、デフォルトの発信ポリシーをallowに変更します

1
2707974

Ufw GUIを使用するだけでこれを実行できます。

  • 発信トラフィックをグローバルに拒否するようにufwを構成します(あなたと同じように)
  • eth0がパブリックインターフェイスであり、tun0がVPNによって作成されたインターフェイスであり、xxx.xxx.68.138がVPN IPである場合、次の2つのルールを追加します。
    1. パブリックインターフェイスを介したVPN IPへの接続を許可します。Policy=AllowDirection=OutInterface=eth0およびTo=xxx.xxx.68.138を使用してルールを追加します
    2. VPNインターフェースを介したすべてを許可する:Policy=AllowDirection=OutInterface=tun0、およびTo=0.0.0.0/0を使用してルールを追加します

それで全部です!

VPNで作成されたものを含むすべてのインターフェイスに発信トラフィックがグローバルに拒否されるため、VPNを介した発信トラフィックを許可することを忘れてしまいました。

ちなみに、着信トラフィックをグローバルに拒否することをお勧めします。これにより、ネットワークで実行されている悪意のある人またはボットが、実行中のネットワークサービスのバグまたは誤設定を悪用してコンピューターをハッキングするのを防ぐことができます(デフォルトでは、Ubuntuはローカルだけでなく、すべてのインターフェイスでリッスンするネットワークサービス)。

1
Stanimal