1つのインターフェイスでiptablesを有効にする


16

iptablesに、WANに面している1つのインターフェースeth0のみをフィルタリングさせたい。これをどのように行うことができますか?そして、eth0でftpおよびsshポートを開いたままにします。


iptablesのmanページを読んでください-またはあなたの問題を誤解した場合は、質問をより具体的にしてください。
ヤリジョキネン

回答:


25

そのため、1つを除くすべてのインターフェイスについて、すべてのトラフィックを受け入れ、eth0でftpおよびsshを除くすべての着信トラフィックをドロップします。

まず、デフォルトですべてのトラフィックを受け入れるポリシーを設定できます。

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

その後、ファイアウォールルールをリセットできます。

iptables -F

これで、すでに許可した接続の一部であるeth0での着信トラフィックを許可したいと言うことができます。

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

また、eth0で着信ssh接続を許可することも必要です。

iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

しかし、eth0に着信する他のものはすべてドロップする必要があります。

iptables -A INPUT -i eth0 -j DROP

もう少し詳しくは、このCentOS wikiエントリを参照してください。

FTPはランダムポートを使用できるため、sshよりも扱いにくいので、この前の質問を参照してください。


4
警告!!!「iptables -F」の前に「iptables -P ...」を実行します。現在のルールがデフォルトでトラフィックをドロップするように設定されている場合、-Fを実行すると、ボックスからロックアウトされます。これが、許可するデフォルトポリシーを維持し、他のすべてのトラフィックをドロップするルールを明確に追加することが最良の実践である理由です。
コープ

8

このような何かが仕事をする必要があります:

iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT

1
ほぼスポット(WANインターフェイスの " ACCEPTすべてをドロップ"よりも良いかもしれませんが)?-フィルタリングするインターフェイス、および他のインターフェイスのすべてをフィルタリングするルールを作成します。
-voretaq7


4

iptablesルールを作成する場合、インターフェイスを指定する必要があるのは非常に簡単です。LANカードを指定するオプションiptables-i

ルールに従うことはあなたに良い例を与えることができます

iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset 

最後のルールは、最初の2つのルールに一致しない他のパケットを拒否することです。のすべてのルールiptablesは指定された順序で実行されるため、パケットを拒否するルールは常に最後になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.