web-dev-qa-db-ja.com

ファイアウォールルールを半分に減らす-tcpとudpの1つのiptablesルール

ファイアウォールに次のようなiptablesルールがいくつかあります。

iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT

すべてのアドレスに対して、tcpとudpの2つのルールを持つショートカットはありますか?つまり、私はこのようなことをすることができます:

iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT
12
Big McLargeHuge

TCPおよびUDPパケットを受け入れる新しいチェーンを作成し、個々のIP /ポートの許容ルールからそのチェーンにジャンプします。

iptables -N ACCEPT_TCP_UDP
iptables -A ACCEPT_TCP_UDP -p tcp -j ACCEPT
iptables -A ACCEPT_TCP_UDP -p udp -j ACCEPT

iptables -A zone_lan_forward -d 1.2.3.0/24 -j ACCEPT_TCP_UDP

これにより、数行のオーバーヘッドが追加されますが、TCP/UDPルールの数は半分になります。

私はnot-p引数を省略します。これは、ICMPのファイアウォールだけでなく、他のプロトコルも開いているためです。 -pのiptables manページから:

指定するプロトコルは、tcp、udp、icmp、またはallのいずれか、またはこれらのプロトコルの1つまたは別のプロトコルを表す数値にすることができます。/etc/protocolsからのプロトコル名も許可されます。

TCP、UDP、およびICMP以外のプロトコルをリッスンしていない可能性があります現在が、将来の可能性を知っています。ファイアウォールを不必要に開いたままにしておくのは悪い習慣です。

免責事項:iptablesコマンドは頭から離れています。 ATMをテストするためのボックスにアクセスできません。

22
s.co.tt

ICMPトラフィック(とにかくルールでグローバルにブロックすることができます)を本当に気にしない場合は、-pフラグを省略するだけで、すべてのプロトコルをカバーできます。

2
Nathan C