iptableルールは時々しか機能しない

iptableルールは時々しか機能しない

大量の 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フォーラムへの投稿

関連情報