Evitar ataques SSH


9

Estou tentando configurar as regras do iptables para permitir apenas 3 tentativas por um IP por minuto para conectar-se ao serviço via SSH e largar todas as conexões depois para evitar ataques SSH; mas parece que estou fazendo algo errado!

-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

obrigado

Respostas:


10

Eu acho que é melhor você usar fail2ban, porque as regras do seu ipfilter também bloqueiam conexões legítimas. fail2bansó bloqueará IPs após falhas nas conexões.

Em seguida, uma prática comum é banir IPs quando eles tentam se conectar à porta 22 e vincular seu servidor ssh a outra porta. Você enfrenta apenas algumas conexões ilegítimas por semana, se o seu computador não for um alvo bem conhecido.

Para a pergunta exata que você fez:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

1
Como o servidor é um vps de baixo custo, estou tentando reduzir ao mínimo o consumo de recursos, mantendo-o o mais seguro possível. Eu já mudei a porta do servidor ssh. Devo manter essas regras (acima) na nova porta e banir a padrão (22)?
MGP

O Fail2ban é, de fato, a melhor solução, mesmo para VPS baixo
MGP

7

Você pode implementar o que deseja com as 2 regras a seguir

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

Observe que o uso de -Aregras que adiciona regras ao final da cadeia pode prejudicar a maneira como as regras do iptables são processadas, ou seja, para que, se houver uma regra geral de DROP ou de permissão antes que a sua seja alcançada, elas nunca serão acionadas.

Dito isto, você também pode encontrar o fail2ban é a melhor maneira de implementar esse tipo de bloco.


Quando tento adicionar essas regras, recebo uma mensagem de erro: iptables: Nenhuma cadeia / destino / correspondência com esse nome.
MGP

Voto positivo para fail2ban.
Michael B

4

Você pode tentar o módulo LIMIT.

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.