Qual é a maneira mais fácil de configurar o máximo de tentativas de login em um ambiente LAMP (sshd instalado via yum)? Existe um pacote ou regra de firewall simples?
Qual é a maneira mais fácil de configurar o máximo de tentativas de login em um ambiente LAMP (sshd instalado via yum)? Existe um pacote ou regra de firewall simples?
Respostas:
Eu uso Fail2ban ; Eu usei Denyhosts no passado e funciona muito bem também. Eu sou a favor do Fail2ban agora porque é mais configurável e mais capaz de gerenciar o monitoramento de vários serviços diferentes - por exemplo, a página de login do seu sshd e seu aplicativo da web simultaneamente (desde que você registre falhas).
Outro método que você pode considerar é implementar uma regra LIMIT iptables; Infelizmente, não posso ajudá-lo com isso, a menos que você queira instalar o Shorewall e, em seguida, eu simplesmente aponto para a excelente documentação desse site sobre como configurar uma regra LIMIT para limitar a capacidade de alguém para brutal -force seu servidor.
Não gosto de usar ferramentas de terceiros. Por isso, usei uma combinação de configurações ssh e de firewall. Com a solução a seguir, um invasor pode produzir exatamente 3 logins de falha em 2 minutos ou ele será bloqueado por 120 segundos.
1) Adicione a seguinte linha a /etc/ssh/sshd_config
MaxAuthTries 1
Isso permitirá apenas 1 tentativa de login por conexão. Reinicie o servidor ssh.
2) Adicione as seguintes regras de firewall
Crie uma nova cadeia
iptables -N SSHATTACK
iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
iptables -A SSHATTACK -j DROP
Bloqueie cada endereço IP por 120 segundos, o que estabelece mais de três conexões em 120 segundos. No caso da quarta tentativa de conexão, a solicitação é delegada à SSHATTACKcadeia, responsável por registrar o possível ataque ssh e, por fim, elimina a solicitação.
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i eth0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK
3) Veja as entradas de log de possíveis ataques ssh em /var/log/syslog
Dec 27 18:01:58 ubuntu kernel: [ 510.007570] Possible SSH attack! IN=eth0 OUT= MAC=01:2c:18:47:43:2d:10:c0:31:4d:11:ac:f8:01 SRC=192.168.203.129 DST=192.168.203.128 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=30948 DF PROTO=TCP SPT=53272 DPT=1785 WINDOW=14600 RES=0x00 SYN URGP=0
Não há um pacote específico associado ao SSH para configurar isso. No entanto, você pode instalar o CSF, que é o ConfigServer & Firewall.
Duas alterações de configuração que eu sugiro que seriam feitas no arquivo: / etc / ssh / sshd_config
Limite o número máximo de conexões não autenticadas que o servidor ssh manipulará ao mesmo tempo. Quanto menor, mais difícil é para as crianças de script fazerem tentativas de cracking paralelas e coordenadas com várias conexões. edite sshd_config e altere MaxStartups do padrão de "10" para "3:50:10". Os valores separados por dois pontos dizem ao servidor ssh para "permitir que 3 usuários tentem efetuar login ao mesmo tempo e descartar aleatoriamente e cada vez mais tentativas de conexão entre 3 e o máximo de 10". Nota: isso deve ser aumentado em servidores com um número substancial de usuários ssh válidos que efetuam login.
Reduza o tempo máximo permitido para efetuar login com êxito antes de desconectar. O padrão de 2 minutos é muito tempo para manter aberta uma tentativa de conexão não autenticada (veja acima); 30 segundos é tempo mais do que suficiente para fazer login:
Eu uso essas regras do IPTables para isso:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 4 --rttl --name SSH -j DROP
Isso permitirá apenas 4 pacotes TCP / SYN para a porta 22 de um endereço IP em 5 minutos. Se fizer mais tentativas, a porta estará fechada até 5 minutos.
-A INPUT -p tcp -m tcp --dport 22 -m limit --limit 48/hour -j ACCEPT.
existe uma opção que você pode colocar no seu arquivo sshd_config para o servidor:
MaxAuthTries
Specifies the maximum number of authentication attempts permitted per
connection. Once the number of failures reaches half this value, additional
failures are logged. The default is 6.