Intervalo de blocos de endereços IP

49

Estou sendo bombardeado com tentativas de hackers da China, todos com IPs semelhantes.

Como eu bloquearia o intervalo de IPs 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 cada um de cada vez, mas os hackers estão alterando os IPs a cada tentativa.

Stephen Cioffi
fonte
4
você deve dar uma olhada no fail2ban. É realmente bom banir dinamicamente endereços IP incômodos.
user9517 suporta GoFundMonica
Também gosto de adicionar knockd para eliminar praticamente 100% das tentativas de acesso com falha dos meus logs. help.ubuntu.com/community/PortKnocking
Bruno Bronosky
pam_shield pode ser útil aqui. github.com/jtniehof/pam_shield
Daniel

Respostas:

87

Para bloquear os endereços 116.10.191. *:

$ sudo iptables -A INPUT -s 116.10.191.0/24 -j DROP

Para bloquear os endereços 116.10. *. *:

$ sudo iptables -A INPUT -s 116.10.0.0/16 -j DROP

Para bloquear os 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 deseja impedir que o tráfego legítimo alcance o host.

edit : como apontado, o iptables avalia as regras em ordem seqüencial. As regras mais altas no conjunto de regras são aplicadas antes das regras mais baixas no conjunto de regras. Portanto, se houver uma regra mais alta no seu conjunto de regras que permita o tráfego mencionado, anexar ( iptables -A) a regra DROP não produzirá o resultado de bloqueio pretendido. Nesse caso, insira ( iptables -I) a regra:

  • como a primeira regra

sudo iptables -I ...

  • ou antes da regra de permissão

sudo iptables --line-numbers -vnL

diga que mostra que a regra número 3 permite tráfego ssh e você deseja bloquear o ssh para um intervalo de ip. -Irecebe um argumento de um número inteiro que é o local no seu conjunto de regras que você deseja que a nova regra seja inserida

iptables -I 2 ...

Riacho
fonte
Verifique arin.net e bloqueie toda a gama de intervalos de IP pertencentes a Amsterdã . Esse lugar é RIPE com aranhas sondadoras - duvido que exista algum tráfego legítimo.
WEBjuju
Observe que isso pode não funcionar dependendo da ordem das regras iptable , ver a resposta serverfault.com/a/507502/1
Jeff Atwood
2
o snap @JeffAtwood Estou honrado pelo seu comentário. Resposta atualizada;)
Creek
E como você desbloqueia um certo intervalo?
bzero
11

sudo /sbin/iptables -A INPUT -s 116.10.191.0/24 -j DROP

Isso bloqueia o alcance. Você pode expandir a sub-rede conforme necessário com o mesmo formato geral.

Nathan C
fonte
isso funcionará em toda a faixa do 4º set? Como é o 0/24 apenas 0-24. Tentei por exemplo 500, mas não funcionou. Will 0/24 cobertura todos os outros números nos 100s e 200s
Stephen Cioffi
3
@ Stephen É uma gama CIDR. Se você precisar calculá-lo para um intervalo diferente, use o seguinte: subnet-calculator.com/cidr.php #
Nathan C
4

Como uma abordagem alternativa, você pode usar algo tão simples quanto o fail2ban. Ele institui um tempo limite para tentativas sucessivas de login com falha e inviabiliza a aplicação de força bruta, pois elas só têm algumas chances por tempo limite. Defino meu tempo limite para 30 minutos. Quando chegam uma ou duas horas, percebem que não serão capazes de avançar e desistir.

temet
fonte
Além disso, bloquear países inteiros pode inibir o uso autorizado.
Esa Jokinen
Eu percebo que esse tópico tem mais de um ano, mas eu queria que as pessoas soubessem alguma coisa. Tenho o fail2ban instalado e em execução, mas também verifico regularmente os logs do meu servidor. Há esse intervalo de IPs 89.248.x.xque continua tentando logons de email diferentes aproximadamente uma hora após a última tentativa, ao longo do dia. Aparentemente, manter o findtimefail2ban em 30 minutos não é mais suficiente para manter todos os pequenos scripts desagradáveis ​​fora.
precisa saber é o seguinte