大量の UDP パケットを送信してきた攻撃者の IP をブロックしました。
iptables -I 入力 1 -s 攻撃者のIP -j ドロップ
このルールはすべて正常に機能していました。
iptables -nvL --line-numbers
22G トラフィックは 2 ~ 3 日間ブロックされました。
num pkts bytes target prot opt in out source destination
1 3203K 22G DROP all -- * * ATTACKER_IP 0.0.0.0/0
しかし、ここ 2 ~ 3 日、このルールは機能しなくなりました。攻撃者は UDP パケットを送信していますが、iptables はそれをブロックしていません。
num pkts bytes target prot opt in out source destination
1 707K 3553M DROP all -- * * ATTACKER_IP 0.0.0.0/0
理由は何でしょう?
PS: ホスティング プロバイダーに連絡することを提案しないでください。彼らが助けになるなら、私はここにいないでしょう :)
編集
パケットを分析/キャプチャするために、wireshark/tcpdump を使用しました。すべてのパケットが UDP であることがわかります。iptables コマンド (前述のとおり) を使用して、iptables ルールによってブロックされたデータの量を確認します。上記は、iptables によってブロックされたデータの出力です。iptables がすべてのデータをブロックしていたとき、サーバーは正常に動作していました。
**IP Table rules**
# Generated by iptables-save v1.4.21 on Mon Jun 15 23:26:40 2015
*raw
:PREROUTING ACCEPT [8393:667810]
:OUTPUT ACCEPT [7043:795032]
COMMIT
# Completed on Mon Jun 15 23:26:40 2015
# Generated by iptables-save v1.4.21 on Mon Jun 15 23:26:40 2015
*nat
:PREROUTING ACCEPT [2517:112725]
:INPUT ACCEPT [2517:112725]
:OUTPUT ACCEPT [1018:179752]
:POSTROUTING ACCEPT [1018:179752]
COMMIT
# Completed on Mon Jun 15 23:26:40 2015
# Generated by iptables-save v1.4.21 on Mon Jun 15 23:26:40 2015
*mangle
:PREROUTING ACCEPT [8393:667810]
:INPUT ACCEPT [8393:667810]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [7043:795032]
:POSTROUTING ACCEPT [7043:795032]
COMMIT
# Completed on Mon Jun 15 23:26:40 2015
# Generated by iptables-save v1.4.21 on Mon Jun 15 23:26:40 2015
*filter
:INPUT ACCEPT [23:1500]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18:2068]
:fail2ban-ssh - [0:0]
-A INPUT -s xx.xxx.xx.xx/32 -j DROP
COMMIT
# Completed on Mon Jun 15 23:26:40 2015
答え1
iptables のリストや、それがどのようにしてそうなったのか、完全には理解していません。しかし、nat テーブルと mangle テーブルがあるように見えるので、問題のあるパケットが通常の INPUT チェーンを通過せず、事前ルーティング段階で別のパスを経由して iptables に送られる可能性は十分に考えられます (ちなみに、これは接続ごとに 1 回しか通過しません)。次のコードを追加してみてください。
sudo iptables -t raw -A PREROUTING -s IP_OF_ATTACKER -j DROP
テスト用コンピューターでこれを実行したところ、問題なく動作しているようです。
$ sudo iptables-save -c
# Generated by iptables-save v1.4.21 on Tue Jun 16 11:12:51 2015
*raw
:PREROUTING ACCEPT [40:2664]
:OUTPUT ACCEPT [33:4520]
[31:2696] -A PREROUTING -s 192.168.111.103/32 -j DROP
COMMIT
# Completed on Tue Jun 16 11:12:51 2015
# Generated by iptables-save v1.4.21 on Tue Jun 16 11:12:51 2015
*nat
:PREROUTING ACCEPT [15:1344]
...
注:私は同じ回答をあなたのUbuntuフォーラムへの投稿。