AA_PO-17957-Project_Photos-Reinhard_Eisele-A3201776.eps

© Reinhard Eisele

Gute Abwehr

IP-Adressen von Angreifern bockieren

09.10.2013
Wenn Sie auf dem Linux-PC einen Port für den Zugriff von außen freigeben, müssen Sie mit automatisierten Einbruchsversuchen rechnen. Fail2ban sperrt die IP-Adressen der Angreifer. Wir zeigen die Einrichtung für SSH-Logins und Dateitransfers mit der SSH-basierten FTP-Alternative SFTP.

Wenn Sie sich via SSH auf einem anderen Linux-Rechner anmelden, benötigen Sie im Normalfall den Benutzernamen und das Passwort. Geben Sie das Passwort falsch ein, erscheint direkt der nächste Passwort-Prompt und ermöglicht einen weiteren Versuch. Erst nach drei Falscheingaben bricht die Gegenseite die Verbindung ab. Doch hindert Sie nichts daran, es direkt erneut zu versuchen. Diese Möglichkeit nutzen auch Angreifer, welche die Kontrolle über im Internet erreichbare Linux-PCs übernehmen wollen: Sie bauen automatisiert immer wieder eine Verbindung mit dem SSH-Server auf und probieren der Reihe nach alle Benutzernamen und Passwörter aus einem Wörterbuch aus. Diese Art des Angriffs nennt sich Wörterbuchattacke, und sie gehört zu den so genannten Brute-Force-Attacken, bei denen man keine spezielle Schwachstelle ausnutzt, sondern einfach alle möglichen User-/Passwort-Kombinationen testet, bis der Login gelingt. Solche Angriffe sind oft erfolgreich, weil viele Anwender schwache Passwörter verwenden: Es ist z. B. keine gute Idee, als Passwort für den Administrator root ebenfalls root zu verwenden, weil diese Kombination oft vorkommt und Angreifer diese darum auch ausprobieren.

Das Programm Fail2ban [1] (Abbildung 1) schiebt diesen Angriffsversuchen einen Riegel vor: Es beobachtet die Logdatei /var/log/auth.log (Ubuntu) bzw. /var/log/messages (OpenSuse), in der das System alle erfolgreichen und fehlgeschlagenen Login-Versuche protokolliert. Versucht z. B. ein Angreifer von der IP-Adresse 11.22.33.44 aus, sich via SSH als User master einzuloggen, dann erscheint in der Protokolldatei folgender Eintrag:

Sep 18 15:45:39 quadamd sshd[5623]: Failed keyboard-interactive/pam for invalid user master from 11.22.33.44 port 41105 ssh2

Dabei spielt es keine Rolle, ob (wie im Beispiel) ein nicht vorhandener Benutzername verwendet oder zu einem gültigen Namen das falsche Passwort angegeben wurde.

Abbildung 1: Fail2ban bietet auf der englischsprachigen Projekt-Webseite auch Tipps zur Konfiguration.

Installation

Unter Ubuntu/Kubuntu können Sie Fail2ban über die grafische Paketverwaltung einrichten oder in einem Terminalfenster den Befehl

sudo apt-get install fail2ban

eingeben. OpenSuse-Anwender verwenden die Softwareverwaltung, um das Paket zu installieren oder geben im Terminalfenster

sudo zypper install fail2ban

ein. Im Auslieferungszustand ist Fail2ban unter Ubuntu bereits so konfiguriert, dass es Anmeldeversuche via SSH überwacht – OpenSuse-Anwender müssen erst die Konfiguration anpassen und dann den Fail2ban-Dienst starten – die folgenden Schritte sind also nur für OpenSuse-Anwender relevant:

  1. Im ersten Schritt erzeugen Sie mit Root-Rechten eine lokale Konfigurationsdatei jail.local, z. B. indem Sie in einem Terminalfenster das Kommando kdesu kwrite /etc/fail2ban/jail.local eingeben. (Unter OpenSuse schreiben Sie am Anfang kdesudo statt kdesu.)
  2. Tragen Sie hier die Zeilen

    [ssh-iptables]
    enabled  = true
    port     = ssh
    filter   = sshd
    action   = iptables-multiport
    logpath  = /var/log/messages
    maxretry = 6
    bantime  = 600

    ein und speichern Sie die Datei.

  3. Um den Fail2ban-Dienst zu aktivieren, starten Sie die Systemverwaltung YaST und wählen darin den Punkt System / Systemdienste (Runlevel). Es öffnet sich ein neues Fenster, das eine lange Liste mit verfügbaren Diensten anzeigt. Scrollen Sie hier bis zum Eintrag fail2ban und markieren Sie die Zeile (Abbildung 2). Wenn in der Spalte Aktiviert der Wert Nein steht, klicken Sie links unten auf Aktivieren, dadurch wechselt der Eintrag zu Ja.

    Abbildung 2: OpenSuse-Anwender müssen in YaST den Fail2ban-Dienst aktivieren.

Ab sofort läuft der Dienst – und er wird auch bei jedem Rechnerneustart automatisch eingeschaltet.

Generell verwendet Fail2ban zwei Konfigurationsdateien im Ordner /etc/fail2ban/: jail.conf enthält (meist deaktivierte) Voreinstellungen für verschiedene zu überwachende Dienste, und in jail.local können Sie Einstellungen eintragen, welche die Vorgaben aus jail.conf überschreiben.

In jail.conf finden Sie auch die nötigen Einträge für einen eventuell auf dem Rechner laufenden Webserver im Abschnitt [apache] (Ubuntu) bzw. [apache-tcpwrapper] (OpenSuse) oder verschiedene FTP-Server in den Abschnitten [vsftpd], [proftpd] und [wuftpd] (Ubuntu) oder [proftpd-iptables] und [vsftpd-iptables] (OpenSuse). Auf den Einsatz eines FTP-Servers sollten Sie aber meist verzichten, siehe Kasten Eigenen FTP-Server betreiben am Ende des Artikels. Um die Überwachung für solche Dienste zu aktivieren, öffnen Sie die Datei mit Root-Rechten in einem Editor (z. B. mit kdesu kwrite /etc/fail2ban/jail.conf bzw. bei Ubuntu kdesudo statt kdesu), suchen den passenden Abschnitt und ändern darin die Zeile enabled = false in enabled = true.

Erfolgsmeldungen

Sie können Fail2ban auch bei der Arbeit zusehen: Jedesmal, wenn es einen Rechner als Angreifer identifiziert, schreibt das Programm in die Logdatei /var/log/fail2ban.log. Für den obigen Angreifer mit der IP-Adresse 11.22.33.44 erscheint z. B. die Meldung

2013-09-18 15:45:56,299 fail2ban.actions: WARNING [ssh] Ban 11.22.33.44

in der Protokolldatei, wenn Fail2ban ihn sperrt.

Wollen Sie sehen, welche Rechner Fail2ban aktuell blockiert, können Sie sich mit Root-Rechten die Filtertabelle anzeigen lassen – das geht über das Kommando sudo iptables -L. Abbildung 3 zeigt die Ausgabe des Befehls – die hervorgehobene Zeile, die mit DROP beginnt, enthält die Regel, die Zugriffe vom Rechner angreifer.net verbietet. (Die IP-Adresse erscheint hier nicht, weil iptables stattdessen den Rechnernamen anzeigt.)

Abbildung 3: Die "DROP"-Zeile in der Ausgabe von "iptables" zeigt, dass Fail2ban Login-Versuche vom Rechner "angreifer.net" verbietet.

Einen weiteren Trick, mit dem Sie den SSH-Zugang sicherer machen können, finden Sie im Kasten Alternativen SSH-Port nutzen.

Alternativen SSH-Port nutzen

Ein weiterer beliebter Trick, um sich vor Angriffen zu schützen, ist der Einsatz eines alternativen Ports. SSH lauscht im Normalfall auf Port 22, und die meisten Anwender konfigurieren ihren DSL- oder Kabel-Router so, dass er Anfragen auf Port 22 an denselben Port des Linux-PCs weiterleitet. (So haben wir es auch im Artikel über die Router-Einrichtung ab Seite 36 beschrieben.) Das hat den Vorteil, dass Sie sich von außen einfach mit einem Befehl wie

ssh user@rechnername

auf dem heimischen Linux-PC anmelden können, weil das ssh-Kommando automatisch Port 22 verwendet, wenn Sie nichts anderes verlangen. Der Nachteil ist, dass auch Angreifer diesen Port für ihre Attacken verwenden. Ändern Sie die Portnummer, indem Sie den Router so umkonfigurieren, dass er einen zufällig gewählten Port (etwa Nummer 2323) auf Port 22 des Linux-PCs weiterleitet, müssen Sie beim Login mit ssh die alternative Portnummer angeben, das Kommando verlängert sich dann zu

ssh -p 2323 user@rechnername

Aus Sicht des Linux-PCs bleibt aber alles beim Alten, die Anfragen kommen weiterhin auf Port 22 herein.

Für PCs, die ohne einen Router direkt ans Internet angeschlossen sind, z. B. über ein DSL-Modem, gibt es die Möglichkeit, in der SSH-Konfiguration die Portnummer zu ändern: Dazu passen Sie als Administrator root in der Datei /etc/ssh/sshd_config die Zeile

Port 22

an und tragen z. B. Port 2323 ein. (Falls die Zeile auskommentiert ist, also #Port 22 lautet, müssen Sie zudem die Raute am Zeilenanfang entfernen.) Das verursacht aber nun ein Problem für Fail2ban, denn das Programm rechnet nur mit SSH-Logins auf Port 22.

Um die Portnummer in der Fail2ban-Konfiguration zu ändern, müssen Sie (mit Root-Rechten) die Konfigurationsdatei jail.conf (Ubuntu) bzw. jail.local (OpenSuse) bearbeiten und hier im durch die Zeile [ssh] (Ubuntu) bzw. [ssh-iptables] (OpenSuse) eingeleiteten Abschnitt den Eintrag port = ssh in port = 2323 ändern (wobei Sie 2323 durch die tatsächlich verwendete Portnummer ersetzen).

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Dienste vor Brute-Force- und Wörterbuch-Attacken schützen
    Fail2ban und Sshguard schützen Server-Dienste gegen Brute-Force- und Wörterbuchattacken, indem sie auffällig gewordene Störenfriede kurzerhand aussperren.
  • FTP-Clients NovaFTP und Filezilla im Vergleich
    Schneller Download gelingt am besten via FTP. Lohnt der Griff zum kommerziellen Client NovaFTP, oder tut's auch der freie Filezilla?
  • Aber sicher!
    Sicheres Arbeiten auf entfernten Rechnern und verschlüsselte Datenübertragung – das alles und noch viel mehr bietet SSH.
  • Tipptopp transportiert
    FTP-Clients gibt's wie Sand am Meer: Ob per Shellbefehl oder bequem aus den Dateimanagern Konqueror und Nautilus heraus transportieren sie Ihre Daten. FileZilla steckt die meisten Kollegen in die Tasche und besticht unter anderem durch eine übersichtliche grafische Oberfläche und zahlreiche Features.
  • X-Server und Shell-Tools für Windows
    Egal, ob Sie den Umstieg von Windows auf Linux erst planen, während der Umstiegsphase noch in beiden Welten zu Hause sind oder ohnehin abwechselnd unter Linux und Windows arbeiten, leistet ein X-Server für Windows gute Dienste – wie z. B. MobaXterm.
Kommentare

Infos zur Publikation

title_2014_04

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet EUR 9,80. Weitere Informationen zum Heft finden Sie auf der EasyLinux-Homepage.

Das EasyLinux-Jahresabo mit Prämie kostet ab EUR 33,30. Details zum EasyLinux-Jahresabo finden Sie im Medialinx-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.