
私のシステムにはすでにファイアウォールがインストールされています。ファイアウォールは1000を超えるiptablesルールで構成されています。これらのルールの1つは、ドロップしたくないパケットをドロップすることです。 (私がフォローiptables-save
してみると、iptables -F
アプリが機能し始めたため、これを知っています。)手動でソートする必要があるルールが多すぎます。どのルールがパケットをドロップするかを表示する方法はありますか?
答え1
チェーンの最初にTRACEルールを追加して、パケットが通過する各ルールを記録できます。
iptables -L -v -n | less
Let You Searchルールを使用することをお勧めします。ポートと適用可能なインターフェイスルールを見てみましょう。ルールが多すぎるということを考えると、おそらくほぼ閉じたファイアウォールを実行していて、トラフィックの許可ルールがありません。
ファイアウォールはどのように構築されますか?ビルドルールよりもビルダールールを表示する方が簡単です。
答え2
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
これにより、追加されたルールのみを表示できます。
答え3
iptables -L -v -n
各テーブルとルールのパケットとバイトカウンタを表示するには、実行してください。
答え4
watch -n1 -d "iptables -tfilter -vnxL | grep -vE 'pkts|Chain' | sort -nk1hr | column -t"
これはテーブルの内容だけを表示することを忘れないでください。フィルター。
すべてのテーブルが必要な場合は、以下を試してください。
watch -n1 -d "(iptables -tfilter -vnxL;iptables -tnat -vnxL;iptables -tmangle -vnxL;iptables -traw -vnxL;iptables -tsecurity -vnxL) | grep -vE 'pkts|Chain' | sort -nk1,1hr | column -t"