web-dev-qa-db-ja.com

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

すでにファイアウォールが設定されているシステムを使用しています。ファイアウォールは1000以上のiptablesルールで構成されています。これらのルールの1つは、ドロップしたくないパケットをドロップすることです。 (私がしたので私はこれを知っていますiptables-save に続く iptables -Fとアプリケーションが動作し始めました。)手動で並べ替えるにはルールが多すぎます。パケットをドロップしているルールを示すために何かを行うことができますか?

35
Shawn J. Goff

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

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

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

21
BillThor

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

この方法では、増分したルールのみが表示されます。

15
Kyle Brandt

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

14
ninjalj

私の会社ではwatch -n 2 -d iptables -nvL、リクエスト間の変更を示します

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

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

追加 -t nat(またはフィルター以外に使用するテーブル)をiptables呼び出しに追加し、そこでルールを確認します。

5
sjas