iptablesを使用してゲートウェイを除くサブネット全体をブロックする方法は?

iptablesを使用してゲートウェイを除くサブネット全体をブロックする方法は?

iptablesを使用して接続を維持しながら、接続されたサブネット全体(ゲートウェイを除く)を削除するにはどうすればよいですか?

私は2つのiptablesルールを探しています。 1つは受信用で、もう1つは発信用です。

.159たとえば、IPを使用してゲートウェイ10.0.0.1に接続したいとし、他のすべてをブロックし、ゲートウェイ10.0.0.1に設定されたDNSを使用して接続を維持する必要があるとします。

答え1

iptablesルールを確認すると、すべてのルールが入力された順序で実行されます。したがって、まず10.0.0.1とのトラフィックを受け入れてから、そのサブネット内の他のすべてのトラフィックを拒否する必要があると思います。 10.0.0.1 へのトラフィックがある場合、最初のルールはそのトラフィックを許可し、2 番目のルールは他のすべてのトラフィックを拒否します。だから私は次のように書くでしょう:

iptables -t INPUT -s 10.0.0.1 -j ACCEPT
iptables -t INPUT -s 10.0.0.0/8 -J REJECT

iptables -t OUTPUT -d 10.0.0.1 -j ACCEPT
iptables -t OUTPUT -d 10.0.0.0/8 -J REJECT

これは、すでに適用する必要がある他のルールに追加されます。 10.XXXネットワークのデフォルト値である255.0.0.0を使用しているとします。そうでない場合は、別のネットマスクを使用してください。また、ソース(-s)とターゲット(-d)を指定するだけで十分かどうかはわかりません。ネットワークインタフェース(-i)、プロトコル(-p)などを追加する必要があるかもしれません。

関連情報