Ich habe mich heute Morgen bei meinem VPS angemeldet, um Millionen fehlgeschlagener Anmeldeversuche für den Benutzer root
und andere Benutzer zu finden, die noch nicht einmal existieren. Ich habe die folgenden Maßnahmen ergriffen, um die (seit Monaten andauernden) Bemühungen der Angreifer zu verschleiern.
Frage (n)
- Ist dies eine angemessene Antwort?
- Was kann noch getan werden?
- Kann ich mit einer Liste dieser IPs etwas Wertvolles tun? ol>
- Deaktivierte Root-Anmeldungen
- Geändert SSH-Port
- Installieren Sie & konfiguriert fail2ban
- Deaktivieren Sie die Kennwortauthentifizierung. & aktiviert die Authentifizierung mit öffentlichem Schlüssel Über Chrome Secure Shell Client und AFAIK gibt es keine Unterstützung für öffentliche Schlüssel.
Systeminformationen für einen Centos7 vps
uname - ainux vm01 3.10.0-327.22.2.el7.x86_64 # 1 SMP Do 23. Juni 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux
Schritt 1
Erstellt ein Skript zum Abrufen aller IP-Adressen, die sich nicht aus dem sicheren Protokoll anmelden konnten. ( / var / log / secure
)
# get_ips.shgrep "Passwort für" / var / log / secure \ | fehlgeschlagen grep -Po "[0-9] + \. [0-9] + \. [0-9] + \. [0-9] +" \ | sort \ | uniq -c
Schritt 2
Schreiben Sie ein Skript, um Firewall-Regeln zum Blockieren der IP-Adresse zu erstellen, die in Schritt 1 aus dem Skript gefunden wurden. Dieses Skript ist ip_list_to_rules.sh
#! / bin / bash # ip_list_to_rules.sh # Skript zum Analysieren der Ausgabe von get_ips.sh und Erstellen von Firewall-Regeln # zum Blockieren von ssh-Anforderungen, wenn [-z $ 1 ]; dann echo "arg1 muss Pfad zu einer Liste der Form sein <COUNT> <IP> \ n" exitfiLIST = $ (readlink -f $ 1) SSH_IP = $ (echo $ SSH_CLIENT | head -n1 | awk '{print $ 1;}') echo " Lesen von IPs aus $ {LIST} "echo" SSH-Client-IP wird ignoriert ($ {SSH_IP}) ", während COUNT IP gelesen wird; Echo "Regel für $ {IP} erstellen" firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source $ IP -p tcp --dport 22 -j REJECT firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source $ IP / 24 -p tcp --dport 22 -j REJECTdone<<< "$ (cat $ {LIST} | grep -v $ {SSH_IP})"
Schritt 3
Führen Sie alles aus und speichern Sie die Regeln.
./get_ips.sh > attack_ips.list./ip_list_to_rules.sh attack_ips.listfirewall-cmd --reload
Update
Nachfolgend sind die Maßnahmen aufgeführt, die ich aus den Antworten ergriffen habe.