こんにちは。私はiptableロギングをテストしていて、練習のためにいくつかのルールを追加し始めました。私の問題は、この単純なルールであるiptablesにあります。-A FORWARD -p ICMP -j LOG
この規則に従って、私はネットワーク内のすべてのpingを記録しようとしましたが、ホストに接続できない場合にのみ記録します。 pingが成功すると、何も記録されません。 pingは常に同じIPルールセットを使用する同じホストで発生します。
自宅にルーターとLinuxサーバーで作られたスイッチを備えたLANがあります。私がやりたいことはiptablesをよりよく理解することです。それで、何が起こっているのかを調べるためにテストを始めました。私がここで言及しているのは、私のコンピュータから別のコンピュータへのpingです。どちらもスイッチに接続され、このコンピュータはルーター(Linux)に接続されています。ログで確認する方が簡単なため、pingを使用していますが、残りのプロトコルにも同じことがわかりません。そのため、ホストAからホストBにpingを送信しましたが、iptablesにルータにあることを示すログインはありません.
答え1
パケットが送信されない限り渡すあなたが話しているデバイスは規則に従わないFORWARD
。
また、一般的なスイッチネットワークでは、ホストに転送されるか、ブロードキャストパケットでない限り、ほとんどのパケットを見ることはできません。
ホストとの間で送受信されるすべての転送を記録するには、ping
次のルールペアを使用する必要があります。
iptables -I INPUT --protocol icmp --icmp-type 8 -j LOG
iptables -I OUTPUT --protocol icmp --icmp-type 8 -j LOG
応答も必要な場合は、ICMP タイプ 0 ルールの 2 番目のペアが必要です。前と同様に、2つのルールを提供します。 1 つはこのホストからの応答を返すための規則、もう 1 つはこのホストの他の場所で応答するための規則です。
iptables -I INPUT --protocol icmp --icmp-type 0 -j LOG
iptables -I OUTPUT --protocol icmp --icmp-type 0 -j LOG