Qual ferramenta ou técnica você usa para evitar ataques de força bruta contra sua porta ssh. Percebi nos meus logs de segurança, que tenho milhões de tentativas de efetuar login como vários usuários através do ssh.
Isso está em uma caixa do FreeBSD, mas eu imagino que seria aplicável em qualquer lugar.
security
ssh
brute-force-attacks
entristecer
fonte
fonte
TARPIT
destino, se você estiver se sentindo desagradável (de xtables-addons).Uma coisa pequena que você pode fazer é usar algo como DenyHosts:
http://denyhosts.sourceforge.net/
Ele usa o hosts.allow / hosts.deny interno para bloquear os agressores do SSH.
fonte
fonte
Uma das maneiras mais fáceis de evitar esses ataques é alterar a porta na qual o sshd escuta
fonte
Como Chris aponta, use chaves de criptografia em vez de senhas.
Adicione a isso:
Quantas pessoas ou locais (com IPs públicos flutuantes) você realmente precisa acessar suas conexões ssh públicas?
Dependendo do número de hosts públicos ssh que você está mantendo e se você pode restringir seus critérios gerais de conexão, pode ser uma configuração mais simples e sustentável para limitar o acesso a alguns hosts externos.
Se isso funcionar para você, pode realmente simplificar sua sobrecarga de administração.
fonte
Além das outras boas sugestões, uma coisa realmente fácil de fazer é limitar as conexões de entrada de taxa. Limite de 3 conexões por minuto por IP:
fonte
Use a opção "AllowUsers" no sshd_config para garantir que apenas um pequeno conjunto de usuários possa efetuar login. Todos os outros serão rejeitados, mesmo que seu nome de usuário e senha estejam corretos.
Você pode até restringir os usuários a logins de um host específico.
por exemplo,
Isso reduzirá o espaço de pesquisa e evitará os usuários antigos que foram deixados acidentalmente ou ativados (embora, é claro, eles devam ser desativados de qualquer maneira, essa é uma maneira fácil de impedir que eles sejam usados para uma entrada baseada em SSH).
Isso não impede totalmente os ataques de força bruta, mas ajuda a reduzir o risco.
fonte
Use algo parecido com o PF:
A tabela <ssh-brute> persiste o
bloco no log rápido do rótulo ssh_brute
transfere o $ ext_if proto tcp para ($ ext_if) o estado do módulo ssh da porta \
(max-src-conn-rate 3/10, sobrecarga global de descarga)
fonte
Bater à porta é uma maneira bastante sólida de manter esse tipo de coisa de fora. Um pouco complicado, às vezes irritante, mas definitivamente faz o problema desaparecer.
fonte
O contexto é importante, mas eu recomendaria algo assim:
fonte
Além da sugestão de limitação de taxa de Sherbang , a duração do atraso é importante. Ao aumentar o atraso entre os grupos de três tentativas de login de 2 minutos para 20 minutos, o número de endereços IP diferentes que fizeram mais de três tentativas de login diminuiu, comparando períodos de duas semanas em uma máquina minha, de 44 tentativas para 3 Nenhum desses três endereços continuou tentando por mais de 11 horas.
Muito anedótico, mas o auth.log se tornou muito mais legível para mim ...
fonte
Eu simplesmente não me importo com isso. Deixe que eles se afastem no porto, eles não vão usar uma força bruta.
fonte
instale o OSSEC. não apenas monitora logins repetidos, mas também insere um bloco temporário com iptables para o ip incorreto. E no final, ele enviará um relatório informando os detalhes. ele registra tudo, o que é legal. Alguém já tentou mais de 8000 nomes de login para fazer login. Analisei os logs e consegui uma boa lista de usuários;)
fonte