Estou sendo bombardeado com tentativas de hacks da China, todos com IPs semelhantes.
Como eu bloquearia o intervalo de IP com algo como 116.10.191.* etc.
Estou executando o Ubuntu Server 13.10.
A linha atual que estou usando é:
sudo /sbin/iptables -A INPUT -s 116.10.191.207 -j DROP
Isso só me permite bloquear um de cada vez, mas os hackers estão alterando os IPs a cada tentativa.
Para bloquear endereços 116.10.191.*:
$ sudo iptables -A INPUT -s 116.10.191.0/24 -j DROP
Para bloquear endereços 116.10.*.*:
$ sudo iptables -A INPUT -s 116.10.0.0/16 -j DROP
Para bloquear endereços 116.*.*.*:
$ sudo iptables -A INPUT -s 116.0.0.0/8 -j DROP
Mas tenha cuidado com o que você bloqueia usando esse método. Você não quer impedir que o tráfego legítimo chegue ao host.
edit : como apontado, o iptables avalia as regras em ordem sequencial. As regras superiores no conjunto de regras são aplicadas antes das regras inferiores no conjunto de regras. Portanto, se houver uma regra mais alta em seu conjunto de regras que permita esse tráfego, anexar (
iptables -A
) a regra DROP não produzirá o resultado de bloqueio pretendido. Nesse caso, insira (iptables -I
) a regra:sudo iptables -I ...
sudo iptables --line-numbers -vnL
digamos que mostra a regra número 3 permite o tráfego ssh e você deseja bloquear o ssh para um intervalo de ip.
-I
recebe um argumento de um inteiro que é o local em seu conjunto de regras que você deseja que a nova regra seja inseridaiptables -I 2 ...
sudo /sbin/iptables -A INPUT -s 116.10.191.0/24 -j DROP
Isso bloqueia o intervalo. Você pode expandir a sub-rede conforme necessário com o mesmo formato geral.
Como uma abordagem alternativa, você pode usar algo tão simples quanto fail2ban. Ele institui um tempo limite para sucessivas tentativas de login com falha e torna o bruteforceing inviável, pois eles têm apenas algumas chances por tempo limite. Eu configurei meu tempo limite para 30 minutos. Quando chegam uma ou duas horas, percebem que não conseguirão avançar e desistem.