
誰かが UDP パケットでサーバーをあふれさせています。その IP をブロックするために iptable ルールを設定しました。しかし、iftop コマンドを実行すると、サーバーに大量のトラフィックが来ていることがわかります。iptables でブロックされたトラフィックの量を確認したところ、その特定の IP に対して数 MB のデータがブロックされたことしか表示されません。大量のトラフィックがブロックされたことが表示されるべきではないでしょうか。
tcpdump を使用してパケットを分析すると、tcpdump ログにその IP が表示されません。iftop ではその IP からの着信トラフィックが非常に多く表示されるのに、tcpdump ではその IP の痕跡がまったくないのはなぜでしょうか。
iptable ルールを使用して IP をブロックしました: iptables -I INPUT 1 -s XX.XX.XX.XX -j DROP
iftop は x.ip-xX-XX.net からのトラフィックを表示しています。これは IP ではないため、これが原因でしょうか? iptables を使用してこのアドレスをブロック リストに追加しようとしましたが、iptable はこれを IP アドレスとして解決してブロックします。
質問:
1 - iptables がサーバー内へのトラフィックをブロックしているのに、iftop が大量のトラフィックを表示するのはなぜですか?
2 - iptables がブロックしようとしているのに、ブロックされた大量のトラフィックが表示されないのはなぜですか?
3 - iptables で IP アドレスとドメイン アドレスをブロックすることに違いはありますか?
アップデート
tcpdump はトラフィックをキャプチャします。攻撃が eth1 に対して行われている間に、eth0 に対してコマンドを実行していました。
tcpdump -C 50 -W 3 -p -n -nn -s 0 -i eth1 -w pkts.pcap
答え1
iptables がサーバー内へのトラフィックをブロックしているのに、iftop が大量のトラフィックを表示するのはなぜですか?
pcap ユーティリティは、netfilter (iptables) ルールが適用される前に、インターフェースからデータをキャプチャするからです。
トラフィックをブロックするルールにより、そのトラフィックが転送されたり、サーバー上で実行されているソフトウェアによって処理されたりすることが防止されます。Netfilter は、そもそもパケットがシステムに到達するのを阻止することはできません。そのためには、上流で何らかのフィルタリングを行う必要があります。
iptables で IP アドレスとドメイン アドレスをブロックすることに違いはありますか?
Netfilter (iptables) は、主にネットワーク モデルの第 3 層で動作します。認識しているのは IP アドレスとポートだけです。カーネル (netfilter) にルールを追加する iptables ツールは、ルールの DNS 解決を試行しますが、これはルールがカーネルに挿入されたときに行われます。