Mein Server wird angegriffen. Ich protokolliere folgende Angriffe:
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
Was kann ich tun, um diese Art von Zugriffsversuchen zu blockieren, etwa durch Blockieren der IP, wenn mehr als 3 Ablehnungen
Antwort1
Sie können die Anzahl der Anmeldeversuche pro Minute mit begrenzen
iptables
. Solche Regeln blockieren IP für eine Minute nach drei Anmeldeversuchen (entnommen ausTagebuch eines Geeks – Abwehr von SSH-Brute-Force-Angriffen mit Netfilter und demrecent
Modul):iptables -A INPUT -p tcp --dport 22 -m Status --state NEU -m aktuell --set --name SSH iptables -A INPUT -p tcp --dport 22 -m Status --state NEU -j SSH_WHITELIST iptables -A INPUT -p tcp --dport 22 -m Status --state NEU -m aktuell --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force iptables -A INPUT -p tcp --dport 22 -m Status --state NEU -m aktuell --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
Wenn Sie mehr konfigurierbare Sikytion wünschen, können Sie verwendenFehler2BanoderDenyHostszum Analysieren von SSH-Protokollen und Blockieren verdächtiger IP-Adressen.
Antwort2
Die beste Vorgehensweise besteht darin, alle nicht benötigten Ports mit iptables zu blockieren und Ihr SSH so einzurichten, dass es einen privaten Schlüssel für die Anmeldung verwendet. Ich weiß, dass Putty und MobaXterm (beides kostenlose SSH-Clients) die Anmeldung mit privatem Schlüssel unterstützen. Entfernen Sie dann in Ihrer /etc/ssh/sshd_config die
PermitRootLogin yes
und füge hinzu:
PermitRootLogin without-password
Dies führt dazu, dass Sie sich nicht mit dem Root-Passwort anmelden können, auch wenn Sie es kennen.
Sie können die iptables-Regeln verwenden, um sie zu drosseln, damit sie Ihren Server nicht zusätzlich belasten
Antwort3
Installieren Sie die Software Denyhosts. Sie listet solche Hacker-IPs automatisch in hosts.deny auf. Das Paket ist im Epel-Repository verfügbar.