Mein Webserver wird ständig von verschiedenen IP-Adressen angegriffen. Sie versuchen es mit fünf Passwörtern und ändern dann die IP-Adresse.
Ich habe verschiedene Sperren vorgenommen, wie die Verwendung von SSH-Schlüsseln, das Nichtzulassen von Passwörtern und das Nichtzulassen der Remote-Root-Anmeldung.
Kann ich etwas tun, um diese Angriffsversuche loszuwerden? Wenn dies nicht der Fall ist, sollte ich bestimmte Abwehrmaßnahmen ergreifen?
Antworten:
Es ist in der Tat eine Tatsache des Lebens. Sie können Tools installieren, um Hosts herauszufiltern, die Sie nach einigen fehlgeschlagenen Versuchen angreifen.
DenyHosts analysiert Ihre Protokolldateien und fügt Ihrer
/etc/hosts.deny
Datei automatisch Angreifer hinzu .Lesen Sie in der Dokumentation nach, wie Sie es für Ihre Anforderungen konfigurieren können.
Update : einige wichtige Punkte in den Kommentaren vorgeschlagen
Stellen Sie sicher, dass Sie die Tools ordnungsgemäß als DenyHosts konfigurieren, da Sie sich selbst aussperren könnten (z. B. können Sie einen Computer oder ein Netzwerk konfigurieren, das niemals gefiltert wird).
DenyHosts erhöht nicht die Sicherheit Ihres Systems: Es filtert nur Angriffe auf IP-Ebene (es kann die Last auf kleinen Computern verringern und die Größe der Protokolldateien verringern, mehr jedoch nicht).
quelle
refs Q1.3
denyhosts.sourceforge.net/faq.html#1_0apt-get install denyhosts
hat mich aus meiner Maschine gesperrt.Ich habe diese Anweisungen befolgt , um jedem SSH-Anmeldeversuch mit falschem Kennwort eine Verzögerung von 7 Sekunden hinzuzufügen. Ich habe meine sshd zu einer "Plane" für die Brute-Force-Scanner gemacht.
Ich sollte auch hinzufügen, dass ich in meinem modifizierten, tarpit sshd die fehlgeschlagenen Passwörter protokolliere. Dies ist möglicherweise nicht ganz ethisch, da der Root-Benutzer einen Blick darauf werfen kann, was normale Benutzer als ihre eigenen Passwörter falsch eingeben. Da ich jedoch der einzige "echte" Benutzer bin, denke ich, dass dies in Ordnung ist.
Ich habe es nicht auf einem Nicht-Standard-Port laufen lassen, da der "Tarpit" -Aspekt nicht die Zeit von irgendjemandem verschwenden würde.
quelle
Wenn nur eine geringe Anzahl von Personen eine SSH-Verbindung zum System benötigt, sollten Sie in Betracht ziehen, SSH auf einen nicht standardmäßigen Port (z. B. 6422, 8080 usw.) zu verschieben. Dies allein reduziert die Anzahl der Anmeldeversuche erheblich (und schützt Sie möglicherweise vor ungepatchten Ports) Beispiel: SSH-Exploit-basierter Wurm.
quelle
Stimmen Sie der Antwort von @ Matteo zu; Was Sie sehen, sind im Wesentlichen Tausende von Zombie-Systemen, die einen verteilten Brute-Force-Angriff auf Ihren Server ausführen, weil eine Website darauf ausgeführt wird. Dies bedeutet, dass es möglicherweise Benutzer gibt, die möglicherweise ein Anmeldekonto haben, mit dem erraten werden kann Minimaler Aufwand seitens des Drehbuchkindes - er hat ein Programm, das den Tausenden von Zombies befiehlt, die Bruteforce-Versuche auf mehreren hundert Website-Hosts gleichzeitig durchzuführen und einfach eine Liste der erfolgreichen Renditen zusammenzustellen.
In ähnlicher Weise sehen Sie manchmal viele Permuationen von "http://your.web.host/phpmyadmin/" in Ihren
/var/log/apache2/access.log
Dateien. Hierbei handelt es sich um automatisierte Scans für die gängigsten Methoden zum Einrichten von PHPMyAdmin, und es werden eine Reihe bekannter Exploits versucht, falls einer gefunden wird Bleiben Sie auf dem neuesten Stand, anstatt ihre eigene Version zu installieren und zu vergessen, sie auf dem neuesten Stand zu halten.Abgesehen davon, dass er den ursprünglichen Befehl gesendet hat, kostet ihn das weder Zeit noch Bandbreite. Es ist Feuer und vergessen.
Eine weitere sehr nützliche Software für Situationen wie diese ist fail2ban , die iptables verwendet, um Verbindungsversuche nach mehreren eindeutig falschen Anmeldeversuchen oder anderen Exploitversuchen zu blockieren.
quelle
Versuchen Sie Fail2ban zu konfigurieren . Es bietet eine sehr flexible Möglichkeit, nach fehlgeschlagenen Versuchen zu suchen, und verfügt über Vorlagen für SSH, HTTP und allgemeine Dienste.
Fail2ban aktualisiert iptables entsprechend Ihren Aktionen. Ich liebe es.
quelle
Mit IPTABLES können Sie den Datenverkehr stoppen, ohne einen Daemon wie Fail2Ban oder DenyHosts auszuführen.
quelle
Wenn Sie es schaffen, finde ich den besten Weg, mit solchen Dingen umzugehen, indem Sie ein VPN verwenden. Auf diese Weise können sie nur das VPN als Ziel festlegen. Es sollte keine Dienste geben, die für die ganze Welt offen sind, mit Ausnahme derjenigen, auf die "jeder" zugreifen muss, wie z. B. Ihr Webserver. Alles andere sollte von der Firewall blockiert werden. Jetzt müssen Sie sich nur noch um die Sicherung Ihres VPNs kümmern. Wenn Sie können, holen Sie sich eine statische IP-Adresse für die Computer, von denen aus Sie Ihre Server verwalten, und sperren Sie Ihr VPN auf diese bestimmte IP-Adresse. Dies ist wirklich die einzige Möglichkeit, die Leute davon abzuhalten, die Passwörter brachial zu erzwingen.
quelle
Sshguard funktioniert großartig. Ich benutze es zusammen mit Iptables.
quelle