ipset não está sendo aplicado ao iptables

2

Estou tentando filtrar um país que continua sondando meu servidor SMTP (CentOS6) e não consigo fazer com que o ipset funcione bem no iptables.

Eu baixei os endereços IP desses países do ipdeny.com e instalei a lista como um arquivo de texto. Originalmente, eu tinha todos os meus endereços IP da lista negra em uma grande cadeia de iptables, mas isso poderia afetar negativamente o CPU - daí eu querer usar um ipset.

Veja um trecho desse arquivo de endereços IP:

185.40.4.31
80.82.65.237
2.60.0.0/14

Então, agora estou tentando usar essa lista em um conjunto de ipset. Eu verifico que o conjunto ipset é preenchido usando 'lista de ipset'.

Name: blacklist
Type: hash:net
Header: family inet hashsize 2048 maxelem 65536
Size in memory: 108816
References: 1
Members:
....
185.40.4.31
185.40.152.0/22
...

Com este ipset, eu adiciono ao iptables:

iptables -A INPUT -p tcp -m set --set blacklist src -j DROP

Mas quando tento testar o conjunto usando o hping3, os pacotes ainda são processados.

hping3 --syn --destport 25 --count 3 -a 185.40.4.31 <server_ip>

Quando eu estava usando a longa cadeia do iptables, as coisas estavam funcionando como esperado.

Aqui está a saída abreviada de iptables -L -n (eu editei a maioria das 6200 entradas ipdeny)

Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       all  --  217.199.240.0/20     0.0.0.0/0
DROP       all  --  217.199.208.0/20     0.0.0.0/0
...
DROP       all  --  2.60.0.0/14          0.0.0.0/0
DROP       all  --  94.102.50.41         0.0.0.0/0
DROP       all  --  80.82.65.237         0.0.0.0/0
DROP       all  --  185.40.4.31          0.0.0.0/0
ACCEPT     all  --  192.168.2.0/24       0.0.0.0/0
ACCEPT     all  --  192.168.1.0/24       0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 state NEW
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:27944 state NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21 state NEW
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443 state NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:25
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:587
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:993
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:995
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:143
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:27940
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:110
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
LOG        all  --  0.0.0.0/0            0.0.0.0/0           LOG flags 0 level 4
DROP       all  --  0.0.0.0/0            0.0.0.0/0
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           match-set blacklist src

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
    
por cardinalPilot 26.07.2015 / 20:40

1 resposta

0

Sua regra nunca entra em vigor porque você a adicionou ao final da cadeia. Imediatamente antes, é uma regra eliminar todo o tráfego, portanto, sua regra nunca é atingida. No iptables, as regras são correspondidas em ordem; isso é diferente de muitos outros firewalls.

Para resolver o problema, mova a regra para anterior na cadeia. E se você realmente quiser colocar esses endereços na lista negra, ele deve estar o mais cedo possível na cadeia, por exemplo, a primeira regra.

    
por 28.07.2015 / 04:20