0

入力と出力の両方でパケットをフィルタリングする「iptables」を使用してファイアウォール ルールを構築する方法はありますか? パケットの送信元 (INPUT) または宛先 (OUTPUT) に適用するように指定できる、次のようなルールしか見つけることができませんでした。

iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP.

ただし、特定の場所で送受信されるパケットをフィルタリングして、次のような fw テーブルになるようにすることは理にかなっています。

pkts bytes target     prot opt in     out     source               destination
   0     0 ACCEPT     all  --  *      *       172.152.4.0/24       92.3.0.0/16

助言がありますか?

ありがとう!

4

1 に答える 1

3

はいといいえ。

理由: iptables は、最初にチェーン (INPUT、OUTPUT、FORWARD、...) への分類に基づいてパケットを処理する方法を定義することによって機能し、次に特定の特性 (送信元または宛先アドレス、プロトコルの種類、送信元または宛先ポート、等)。特定のチェーンに適用されない iptable ルールを定義することはできません。

INPUT、OUTPUT、および FORWARD は、iptables システムのデフォルトのチェーンです。INPUT は、宛先 localhost ですべてをアドレス指定します (つまり、ネットワーク デバイスにアドレス指定されます)。OUTPUT は、ソースが localhost のすべて (つまり、コンピューターからのもの) に適用されます。

はいの理由: カスタム チェーンを定義できます。あなたはそのようにすることができます

sudo iptables -N MYCHAIN

次に、INPUT と OUTPUT (および FORWARD が必要な場合) チェーンの両方からパケットを MYCHAIN に送信できます。たとえば、INPUT からのすべての TCP パッケージです。

sudo iptables -A INPUT -p tcp -j MYCHAIN

または OUTPUT からのすべてのパッケージ

sudo iptables -A OUTPUT -j MYCHAIN

次に、mychain に必要なルールを定義できます。

sudo iptables -A MYCHAIN -s 172.152.4.0/24 -d 92.3.0.0/16 -j ACCEPT

これは多かれ少なかれあなたが望んでいたルールであるべきです

ただし、INPUT チェーンと OUTPUT チェーンを分離しておくことは確かに理にかなっていると主張する人もいるかもしれません。ほとんどのユーザーは、OUTPUT よりも INPUT および FORWARD に対してより厳密なルールを適用することを希望します。また、ルーティングに iptables を使用することもできます。この場合、着信パッケージまたは発信パッケージがある場合に根本的な違いが生じます。

于 2013-09-03T03:25:57.673 に答える