Fail2ban auf einem Server ist wichtig – China greift mich an
Wer einen Linux-Server betreibt, der via Internet erreichbar ist, der sollte unbedingt fail2ban installiert haben.
Was ist fail2ban?
Kurz gesagt ist fail2ban eine Software, die eine bestimmte IP-Adresse nach einer konfigurierten Anzahl an missglückten Anmeldeversuchen für eine gewisse Zeit sperrt.
Die Komponente ist also eine Security-Maßnahme, um seinen Server entsprechend vor Brute-Force-Angriffen zu schützen. In meinem Fall wird immer wieder versucht, sich via ssh Zugriff auf den Server zu verschaffen. So wie das aussieht, ist es ein banaler Angriff via Brute Force – also Anmeldeversuche mit immer unterschiedlichen Passwörtern.
Mein Serverchen ist ebenfalls über das Internet erreichbar und scheinbar haben es Cracker aus China derzeit auf den Computer abgesehen. Möglicherweise (wahrscheinlich sogar) sind das Bots oder Scripte, die es halt immer wieder versuchen. Ich weiß nicht mal, ob die bösen Hacker direkt aus China sind. Die IP-Adressen gehören auf jeden Fall zu Netzwerken in China.
sudo tail -f /var/log/fail2ban.log
Die IP-Adressen lassen sich natürlich recht einfach mittels whois zuordnen.
Ich habe mein fail2ban eingestellt, dass eine IP-Adresse nach drei missglückten Anmeldeversuchen bei ssh binnen zehn Minuten die IP-Adresse für eine Stunde lang sperrt. Wenn die mich weiter nerven, dann sperre ich einfach zwölf Stunden oder gleich 24. Loggt sich wenn dann sowieso nur ich ein.
Fail2ban installieren
Die Security Software ist den Repositories der meisten Distributionen enthalten. Unter Ubuntu kannst Du das Programm einfach so installieren:
sudo apt-get install fail2ban
Die grundsätzliche Konfiguration danach ist ebenfalls wenig dramatisch. Du kopierst die Datei jail.conf nach jail.local, in der die Konfiguration vorgenommen wird:
cd /etc/fail2ban
sudo cp jail.conf jail.local
Diese Datei bearbeitest Du – sie ist im Endeffekt selbsterklärend. Interessant ist der Parameter ignoreip. Damit kannst Du eine Range angeben, die von fail2ban ausgeschlossen ist. Bei mir ist das mein internes Netzwerk.
Ist die Datei angepasst, dann startest Du die Software neu. Bei mir unter Ubuntu 14.04 LTS Server sieht das so aus:
sudo /etc/init.d/fail2ban restart
Was könnte man noch tun?
Mir reicht die Security-Maßnahme via fail2ban, da ich im Prinzip nichts weiter machen muss. Außerdem kann jemand mit meiner Konfiguration maximal 72 Anmeldeversuche pro Tag durchführen. Ok, er könnte alle zehn Minuten zwei Versuche machen, ohne gesperrt zu werden – das wären dann maximal 12*24=288 pro Tag – immer noch ziemlich wenig. Darüber hinaus sehe ich, dass die böswilligen Hacker oder Cracker versuchen, sich via ssh mit root anzumelden. Diese Option ist sowieso gesperrt und der Anwender root darf sich nicht direkt via ssh anmelden.
Wenn Du noch eine Schritt weiter gehen möchtest, dann könntest Du über die Firewall die IP-Adresse oder am besten gleich die ganze Range sperren. Die Syntax für das Sperren via iptables sieht so aus:
sudo iptables -A INPUT -s IP-ADDRESSE -j DROP
Entsprechend würde man die Range 58.218.204.* so blockieren:
sudo iptables -A INPUT -s 58.218.204.0/24 -j DROP
Auch für Raspberry Pi verfügbar
Durch den geringen Stromverbrauch betreiben sicherlich einige ein Raspberry Pi so, dass es aus dem Internet erreichbar ist – Stichwort IoT / Internet of Things / Internet der Dinge. Sollte das der Fall sein, dann hoffe ich oder gehe davon aus, dass Du die Standard-Anmeldung pi / raspberry geändet hast – zumindest das Passwort.
Auch für Raspbian ist fail2ban verfügbar und sollte auf jeden Fall installiert werden, wenn das Raspberry Pi aus dem Internet erreichbar ist. Das gilt natürlich auch, wenn Du Ubuntu oder irgendeine andere Distribution auf dem Winzling installiert hat. Der Aufwand ist echt gering und die Vorteile muss ich an dieser Stelle wohl nicht noch einmal erwähnen.
Nette Pi-Konstellation
Suchst Du ein VPN für den Raspberry Pi? NordVPN* bietet einen Client, der mit Raspberry Pi OS (32-Bit / 64-Bit) und Ubuntu für Raspberry Pi (64-Bit) funktioniert.
Solche Loginversuche sind völlig "normal", das sind vollautomatisierte Bots 😉
Die erste praktische Regel lautet, PermitRootLogin auf "no" in der sshd-conf zu setzen, und vorher einen eigenen User anzulegen für SSH-Zugriffe, wodurch die Bots schon beim User erraten scheitern 🙂 ansonsten natürlicu Zertifikate benutzen, aber für kleine Serverleins mag ich die auch nicht immer mit mir rumschleppen 🙂
Gleich mal nachgeschaut. Mein Provider macht das genauso: https://blog.uberspace.de/fail2ban/
Port ändern.......Ruhe....
Ja, diese "Angriffe" sind wirklich an der Tagesordnung. Port ändern + Fail2Ban und wie der Vorposter schreibt.. Ruhe..(erstmal). Es gibt auch die Möglichkeit einen permanenten Ban zu erzeugen. Es gibt da mehrere Wege, einer..: https://serverfault.com/questions/415040/permanent-block-of-ip-after-n-retries-using-fail2ban (aber aufpassen, das man sich beim testen nicht aussperrt 😉
Gruss