Ubuntu マシンからローカル ネットワーク ( eth0
) または VPN ( tun0
) へのすべてのトラフィックを制限したいと考えています。 ルーターをローカル ネットワークに接続することは可能ですが、VPN を使用せずにローカル ネットワークを離れることはできません。
私は iptables の経験がなく、方法も見つけられなかったので、ufw を試しましたが、成功しませんでした。
近づくためのヒントやコード スニペットを教えていただきありがとうございます。
答え1
フィルタ テーブルの INPUT チェーンをデフォルトのアクション DROP で操作し、各インターフェイスで着信するパケット (-i) に対して ACCEPT ルールを設定する必要があります。セキュリティを強化するために、送信元ホストのサブネットを強制することもできますが、以下のルールで十分です。
iptables -t filter -p INPUT DROP
iptables -t filter -A INPUT -i eth0 -j ACCEPT
iptables -t filter -A INPUT -i tun0 -j ACCEPT
iptables -t filter -A INPUT -i lo -j ACCEPT
ホストから出るトラフィックに対しても同じことを強制する場合は、次の操作も実行します。
iptables -t filter -p OUTPUT DROP
iptables -t filter -A OUTPUT -o eth0 -j ACCEPT
iptables -t filter -A OUTPUT -o tun0 -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
ただし、これを行うと、他のインターフェイスがなくなる可能性があります。また、 はlo
ループバック インターフェイスであるため、そこに含まれています。これらのルールがないと、ループバックは機能しなくなります。
ホストがルータである場合、これらのルールはルーティングされるトラフィックには適用されないことに注意してください (ホスト自身によって生成されるトラフィック、またはホストを経由せずにホストに送信されるトラフィックにのみ適用されます)。