regras do iptable funcionam apenas às vezes

regras do iptable funcionam apenas às vezes

Bloqueei um IP invasor que estava me enviando muitos pacotes UDP.

iptables -I ENTRADA 1 -s IP_OF_ATTACKER -j DROP

Esta regra estava funcionando bem.

iptables -nvL --line-numbers

O tráfego 22G foi bloqueado por 2 a 3 dias:

num   pkts bytes target     prot opt in     out     source               destination
1    3203K   22G DROP       all  --  *      *       ATTACKER_IP          0.0.0.0/0

No entanto, nos últimos 2 a 3 dias, esta regra não funciona mais. O invasor está enviando pacotes UDP e o iptables não os está bloqueando.

num   pkts bytes target     prot opt in     out     source               destination
1     707K 3553M DROP       all  --  *      *       ATTACKER_IP         0.0.0.0/0

Qual seria a razão?

PS: Por favor, não sugira entrar em contato com o provedor de hospedagem se eles pudessem ajudar, eu não estaria aqui :)

Editar

Usei wireshark/tcpdump para analisar/capturar pacotes. Mostra que todos os pacotes são UDP. Eu uso o comando iptables (como mencionado acima) para ver quantos dados a regra iptables bloqueou. Acima está a saída dos dados bloqueados do iptables. Quando o iptable estava bloqueando todos os dados, nosso servidor estava funcionando bem.

**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

Responder1

Não entendo completamente sua listagem de iptables ou como isso aconteceu. No entanto, parece haver tabelas nat e mangle e, portanto, é inteiramente concebível que seus pacotes problemáticos não atravessem a cadeia INPUT normal, mas sejam direcionados através do iptables através de outro caminho no estágio de pré-roteamento (que só seria percorrido uma vez por conexão, aliás). Você pode tentar adicionar:

sudo iptables -t raw -A PREROUTING -s IP_OF_ATTACKER -j DROP

Fiz isso no meu computador de teste e parece estar funcionando bem:

$ 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]
...

Nota: postei esta mesma resposta no seuPostagem em fóruns do Ubuntu.

informação relacionada