Meu servidor está sob ataque. Estou registrando esse tipo de tentativa:
Sep 22 06:39:11 s1574**** sshd[16453]: Failed password for invalid user amber from 64.215.17.4 port 35182 ssh2
Sep 22 04:39:11 s1574**** sshd[16454]: Received disconnect from 64.215.17.4: 11: Bye Bye
Sep 22 06:39:11 s1574**** sshd[16457]: Invalid user amber from 64.215.17.4
Sep 22 04:39:11 s1574**** sshd[16458]: input_userauth_request: invalid user amber
Sep 22 06:39:11 s1574**** sshd[16457]: pam_unix(sshd:auth): check pass; user unknown
Sep 22 06:39:11 s1574**** sshd[16457]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=dns2.rsd.com
Sep 22 06:39:11 s1574**** sshd[16457]: pam_succeed_if(sshd:auth): error retrieving information about user amber
Sep 22 06:39:14 s1574**** sshd[16457]: Failed password for invalid user amber from 64.215.17.4 port 35842 ssh2
Sep 22 04:39:14 s1574**** sshd[16458]: Received disconnect from 64.215.17.4: 11: Bye Bye
O que posso fazer para bloquear esse tipo de tentativa de acesso, algo como bloquear ip quando mais de 3 negam
Responder1
Você pode limitar o número de tentativas de login por minuto com
iptables
. Essas regras bloquearão o IP por um minuto após três tentativas de login (retiradas deDiário de um geek – Mitigando ataques de força bruta SSH usando Netfilter e orecent
módulo):iptables -A INPUT -p tcp --dport 22 -m estado --state NOVO -m recente --set --name SSH iptables -A INPUT -p tcp --dport 22 -m estado --state NOVO -j SSH_WHITELIST iptables -A INPUT -p tcp --dport 22 -m estado --state NOVO -m recente --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force iptables -A INPUT -p tcp --dport 22 -m estado --state NOVO -m recente --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
Se você quiser um sikytion mais configurável, você pode usarfail2banouNegarHostspara analisar logs SSHd e bloquear endereços IP suspeitos.
Responder2
a melhor maneira de praticar é bloquear todas as portas desnecessárias com iptables e configurar seu ssh para usar uma chave privada para login. Eu sei que Putty e MobaXterm (ambos clientes SSH gratuitos) suportam login com chave privada. então dentro do seu /etc/ssh/sshd_config remova o
PermitRootLogin yes
e adicione:
PermitRootLogin without-password
isso fará com que mesmo que você saiba a senha do root, não será possível fazer login com ela.
você pode usar as regras do iptables para restringi-los, para que não atrapalhem seu servidor também
Responder3
Instale o software Denyhosts. Ele listará automaticamente esses IPs de hackers em hosts.deny. O pacote está disponível no repositório epel.