私がやりたいのは、VPN接続がダウンしたときにインターネット接続を完全に無効にすることです。 Viscosityを介してVPN(privatevpn.com)に接続しています。
私は本のすべてを試しました。 Viscosityで切断スクリプトを作成しようとしましたが、トリガーされないか、トリガーに一貫性がなく、接続が脆弱なままになります。 Viscosityでルーティングのトリックも試しましたが、どちらも機能しません。
私のUbuntuマシンには、完全に機能するソリューションがあります。ufwルールを使用してファイアウォールを制御します。 VPNに接続するには、UFWを無効にする必要があります。次に、VPNが接続されたら、UFWを有効にします。これにより、接続が漏れないようにします。
Macにはpfと呼ばれるものがあります。 ufwルールと同じように動作するようにpfを設定できるかもしれませんが、設定方法がわかりません。
Macでも実行したいUFWルールは次のとおりです。同じルールを使用するようにpfを設定するのを誰かが手伝ってくれるかもしれません。
ステータス:アクティブロギング:オン(低)デフォルト:拒否(受信、拒否(送信)、無効(ルーティング)新しいプロファイル:スキップ
どこからでもアクションへ193.180.119.0/24で許可どこでも許可193.180.119.0/24
私が見つけた最良のことは、VPNプロバイダーに接続した後、 [〜#〜] pf [〜#〜] で利用可能 mac os X を使用することです。 IPを変更します。
これを含むファイル~/killswitch/pf.conf
を作成します
# Options
set block-policy drop
set ruleset-optimization basic
set skip on lo0
# Interfaces
wifi = "en1"
vpn = "utun1"
# Block everything
block out all
block in all
# Outbound: Allow only VPN
pass out on $wifi proto {tcp, udp} from any to 81.171.71.XX
# Allow traffic for VPN
pass out on $vpn all
インターフェイスを再確認してください。私の場合、en1
はWiFiで、uten1
はVPNトンネルです。
81.171.71.XX
を接続時に取得するIPに変更します。
pfを有効にする
$ Sudo pfctl -e
ルールをロードします。
$ Sudo pfctl -Fa -f /path/to/pf.conf
Pfを無効にする:
$ Sudo pfctl -d
Ipvanishの問題が原因で、これを実装する必要がありました。これは主に、アプリケーションがクラッシュしてVPNがダウンし、トラフィックがデフォルトの暗号化されていないルートに戻ったためです。
あなたは試してみることができます killswitch それはあなたのためにこれをすべて自動的に行うことができます。
このスクリプトでうまくいくでしょうか?
#!/bin/bash
while true
do
result=$(scutil --nc list | grep Connected)
if [ -z "$result" ]; then
killall Transmission
exit
fi
done