web-dev-qa-db-ja.com

LinuxのOpenVPNキルスイッチ

OpenVPNがネットサーフィン中にサーバーに接続できない場合にLinuxでIPリークを防ぐ方法は?

キルスイッチについて読みましたが、インターネット検索の結果、OpenVPNには実装されていないことがわかりました。

5
g0rbe

残念ながら、以前の(削除されたため)回答は正しくなく、匿名化を許可します。OpenVPNからのトラフィックだけでなく、ポート1194を介したすべての接続が許可されます。 OpenVPN以外のすべてのクライアントの外部への出力をブロックする以外に何もしない、よりシンプルなファイアウォールを使用する必要があります。

openvpnグループがない場合は、作成します。 -rシステムグループ にします。

groupadd -r openvpn

存在する場合は、この行をOpenVPN 構成ファイル に追加して、このグループで実行します。

group openvpn

これで、OpenVPNクライアント以外のすべてのプロセスの出力をブロックするようにファイアウォールを設定できます。ポートを明確にホワイトリストに登録する必要はありません。正しいグループとTUNデバイスのみをホワイトリストに登録してください。

# Flush the tables. This may cut the system's internet.
iptables -F

# Let the VPN client communicate with the outside world.
iptables -A OUTPUT -j ACCEPT -m owner --gid-owner openvpn

# The loopback device is harmless, and TUN is required for the VPN.
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A OUTPUT -j ACCEPT -o tun+

# We should permit replies to traffic we've sent out.
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED

# The default policy, if no other rules match, is to refuse traffic.
iptables -P OUTPUT DROP
iptables -P INPUT DROP

すべてがうまくいったら、VPN経由でのみインターネットにアクセスできるはずです。特定の設定に応じていくつかの微調整が必​​要になる場合があります(たとえば、ローカルネットワーク上の他のデバイスにアクセスする必要がある場合)、これは一般的な解決策です。これらの変更を永続的にするには、ファイアウォール設定の保存に関するディストリビューションの指示に従ってください。

VPNはプライバシーや匿名性を目的として設計されていないことを理解してください。適切なファイアウォールを使用している場合でも、VPNがログを保持しないと主張している場合でも、想定される保護を 回避 する方法は無数にあります。実際の匿名性が必要な場合は、代わりに Tor のようなものを使用する必要があります。

19
forest