パケットをドロップする原因となったiptablesルールを見つける方法はありますか?


31

ファイアウォールが既に設置されているシステムがあります。ファイアウォールは、1000を超えるiptablesルールで構成されています。これらのルールの1つは、ドロップしたくないパケットをドロップすることです。(私はなかったので、私はこれを知っているiptables-saveが続くiptables -Fと、アプリケーションが仕事を始めた。)手動によるソートする方法あまりにも多くのルールがあります。パケットをドロップしているルールを表示するために何かできますか?


1
fedorahosted.org/dropwatchも将来役に立つかもしれません。
ショーンJ.ゴフ

リアルタイムの使用中のカウンタの更新<BR/>の<code>見てのiptables -L -v -n </ code>を参照してください
クリス・ギブ

回答:


19

チェーンの早い段階でTRACEルールを追加して、パケットが通過するすべてのルールを記録できます。

iptables -L -v -n | lessルールの検索に使用することを検討します。私はポートに見えるでしょう。住所; 適用されるインターフェース規則。非常に多くのルールがあるため、ほとんど閉じたファイアウォールを実行している可能性が高く、トラフィックの許可ルールが欠落しています。

ファイアウォールはどのように構築されていますか?構築されたルールよりもビルダーのルールを見る方が簡単な場合があります。


この質問をした後、ルールがAPFからのものであることがわかりました。それを修正することができました。しかし、私はTRACEターゲットが大好きです。それは非常に効果的だったでしょう。
ショーンJ.ゴフ

2
TRACEターゲットの使用例は、serverfault.com / questions / 122157 / debugger-for-iptables / …にあります。
slm

14

実行iptables -L -v -nして、すべてのテーブルおよびすべてのルールのパケットおよびバイトカウンターを確認します。


1000個のルールと1000個のドロップされたパケットがあるので、これは良いことです。
ショーンJ.ゴフ

sortパケットカウンタでルールをソートするために使用します。
-ninjalj

13

以来iptables -L -v -nカウンターを持って次の操作を行うことができます。

iptables -L -v -n > Sample1
#Cause the packet that you suspect is being dropped by iptables
iptables -L -v -n > Sample2
diff Sample1 Sample2

これにより、増加したルールのみが表示されます。



5
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"

これは、テーブルfilterのみを表示することに注意してください。

-t natiptables呼び出しに(またはフィルター以外に使用するテーブル)を追加して、ルールをチェックします。

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