OpenVPNに接続していない限り、すべてのインターネット接続をブロックします。もちろん、VPNサーバーへの接続を許可する必要があります。
VPNサーバーのIPへのトラフィックの出入りを許可することでこれを行うことはできますが、後でiptables
を使用してすべてのルールをドロップできますか?
@tachomiによって提案された解決策を試しましたが、iptables
ルールが設定されているときにインターネット接続がありません。 iptables-save
状態:
# Generated by iptables-save v1.6.0 on Wed Feb 3 00:53:32 2016
*filter
:INPUT DROP [247:40343]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [153:25961]
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p tcp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p udp -j ACCEPT
-A INPUT -s 127.0.0.1/32 -p udp -j ACCEPT
-A INPUT -s <VPN_SERVER_IP>/32 -p tcp -j ACCEPT
-A INPUT -s <VPN_SERVER_IP>/32 -p udp -j ACCEPT
-A OUTPUT -d <VPN_SERVER_IP>/32 -p tcp -j ACCEPT
-A OUTPUT -d <VPN_SERVER_IP>/32 -p udp -j ACCEPT
COMMIT
# Completed on Wed Feb 3 00:53:32 2016
まず、ローカル接続とRELATED, ESTABLISHED
接続プロトコルを許可します。
$ Sudo iptables -A INPUT -p tcp -s 127.0.0.1 -j ACCEPT
$ Sudo iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
$ Sudo iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
$ Sudo iptables -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT
これにより、インターネット接続が可能になります。
デフォルトのチェーンポリシーを設定する
$ Sudo iptables -P INPUT DROP
$ sudp iptables -P OUTPUT DROP
これにより、あらゆる種類のインバウンド/アウトバウンドトラフィックが拒否されます。
VPN接続を許可する
$ Sudo iptables -A INPUT -s [VPN ip connection] -j ACCEPT
$ Sudo iptables -A OUPUT -d [VPN ip connection] -j ACCEPT
これにより、VPN接続が許可されます。
SSHで接続している場合は、IPアドレスもLOCALHOSTとして許可する必要があります
更新:
他の接続ルールについては、それらを許可するだけです。
たとえばHTTP:
$ Sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ Sudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
個人的な推奨事項
$ Sudo iptables-save > iptables_backup
を使用してiptablesルールをバックアップし、変更がある場合はvimを使用してルールを編集し、$ Sudo iptables-restore < iptables_backup
を使用してiptablesを復元します。これは、ルールの重複を避けるための個人的な習慣にすぎません。