SSH ist ein gutes Tool, mit dem Sie remote auf Ihren Computer / Server zugreifen und Änderungen daran vornehmen können, als ob Sie sich vor dem Computer befinden. Wenn Sie einen SSH-Server haben, haben wir Ihnen gezeigt, wie Sie einen öffentlichen / privaten Schlüssel generieren und verwenden können, damit Sie sich sicher mit dem entfernten Server verbinden können, aber das bedeutet nicht, dass Ihr SSH-Server sicher ist. Im Gegenteil, die meisten SSH-Server sind anfällig für Brute-Force-Attacken und wenn Sie nicht aufpassen, können Hacker leicht in Ihren Server hacken und alles zerstören / stehlen, was Sie haben.

Fail2Ban ist ein einfaches, aber nützliches Tool, das Ihren Server vor bösartigen Angriffen überwachen und sie blockieren kann, bevor sie Schaden anrichten können.

Installation

Fail2Ban ist im Ubuntu-Repository verfügbar, sodass Sie es einfach mit dem folgenden Befehl installieren können:

 sudo apt-get installieren fail2ban 

Für Red Hat- oder Centos-Benutzer können Sie Fail2Ban über das EPEL-Repository installieren.

Nachdem Sie Fail2Ban installiert haben, ist der nächste Schritt, die Konfigurationsdatei in einen lokalen Ordner zu verschieben, damit Sie die Hauptkonfigurationsdatei nicht versehentlich ändern.

 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 

Aufbau

Nach der Installation beginnt Fail2Ban automatisch mit der Überwachung Ihres Servers auf bösartige Angriffe. In den meisten Fällen reichen die Standardeinstellungen aus, um Ihre Site zu schützen. Wenn Sie jedoch eine benutzerdefinierte Serverkonfiguration (z. B. einen anderen Port für den SSH-Zugriff) haben oder andere Dienste aktivieren möchten, können Sie Folgendes tun:

 sudo nano /etc/fail2ban/jail.local 

Die Konfigurationsdatei ist in verschiedene Abschnitte unterteilt. Der erste, dem Sie begegnen werden, ist [DEFAULT].

 [DEFAULT] # "ignogeip" kann eine IP-Adresse, eine CIDR-Maske oder ein DNS-Host sein. Ignoreip = 127.0.0.1/8 bantime = 600 maxretry = 3 # "backend" gibt das Backend an, das zum Abrufen von Dateien verwendet wird. Verfügbare # Optionen sind "gamin", "polling" und "auto". # yoh: Aus irgendeinem Grund hat Debian python-gamin nicht wie erwartet geliefert. # Dieses Problem hat ToDo verlassen, also ist polling das Standard-Backend für jetzt backend = auto # # Ziel-E-Mail-Adresse, die nur für die Interpolationen in # jail verwendet wird. lokale} Konfigurationsdateien. destemail = root @ localhost 

Die wenigen Parameter, die Sie hier beachten müssen, sind ignoreip, bantime und maxretry .

  • ignogeip - das ist der Ort, an dem Sie die IP- Adresse, die Sie nicht blockieren möchten, auf die weiße Liste setzen . Der Standardwert ist der localhost (127.0.0.1/8). Sie können dem Feld zusätzliche IPs hinzufügen, indem Sie jede IP mit einem Leerzeichen trennen.
  • bantime - Dies ist die Zeit in Sekunden, die der Zugriff der IP auf Ihren Server blockiert wird. Die Standardeinstellung ist 10 Minuten (600 Sekunden)
  • maxretry -dies ist die Anzahl der fehlgeschlagenen Anmeldeversuche, bevor die IP blockiert wird.

Es gibt auch das destemail Feld, in dem Sie eine E-Mail-Adresse angeben können, um zu benachrichtigen, wo ein bösartiger Angriff entdeckt wurde. Beachten Sie, dass dies nur funktioniert, wenn Sie einen Mail-Server installiert haben.

Der nächste Abschnitt ist die "Aktionen".

 # ACTIONS # # Default banning action (zB iptables, iptables-neu, # iptables-multiport, shorewall, etc) Er wird benutzt um # action_ * Variablen zu definieren. Kann global oder pro # -Abschnitt innerhalb der Datei jail.local banaction = iptables-multiport # per E-Mail überschrieben werden. Seit 0.8.1 verwendet upstream fail2ban sendmail # MTA für das Mailing. Ändern Sie den Konfigurationsparameter mta in Mail #, wenn Sie auf die herkömmliche Mail zurückschalten möchten. mta = sendmail # Standardprotokoll protocol = tcp # Gibt die Kette an, in der Sprünge in iptables hinzugefügt werden sollen. - * actions chain = INPUT # # Aktionskürzel. Zu verwendende Aktionsparameter # Die einfachste Aktion: ban only action_ =% (banaction) s [Name =% (__ Name __) s, Port = "% (Port) s", Protokoll = "% (Protokoll) s ", chain ="% (chain) s "] # ban & sende eine e-mail mit whois report an den destemail. action_mw =% (banaction) s [Name =% (__ Name __) s, Port = "% (Port) s", Protokoll = "% (Protokoll) s", Kette = "% (Kette) s"]% (Mta) s-whois [name =% (__ name __) s, dest = "% (destemail) s", protokoll = "% (protokoll) s", chain = "% (kette) s"] # ban & sende eine e-mail mit Whois-Bericht und relevanten Protokollzeilen # zum Destemail. action_mwl =% (banaction) s [Name =% (__ Name __) s, Port = "% (Port) s", Protokoll = "% (Protokoll) s", Kette = "% (Kette) s"]% (Mta) s-whois-lines [Name =% (__ Name __) s, Ziel = "% (Destemail) s", Protokollpfad =% (Protokollpfad) s, Kette = "% (Kette) s"] # Wählen Sie die Standardaktion. Um dies zu ändern, überschreiben Sie einfach den Wert von 'action' mit der # interpolation auf die gewählte Aktionsverknüpfung (zB action_mw, action_mwl, etc) in jail.local # global (Abschnitt [DEFAULT]) oder pro bestimmten Abschnitt action =% (action_) s 

Die meisten Einstellungen hier können standardmäßig banaction sei denn, Sie möchten die banaction und das protocol ändern. Die Standard "banaction" ist über die IPTable. Sie können festlegen, dass die Multi-Port-Einstellung verwendet oder ein neues IpTable-Objekt erstellt wird. Der Standardwert für das "Protokoll" ist tcp, aber Sie können es in UDP ändern, je nachdem, welche Verbindung Sie verwenden.

Der letzte Teil des Abschnitts "Jail", in dem Sie Fail2Ban zur Überwachung Ihres Apache-Servers, FTP-Servers, Mail-Servers und DNS-Servers konfigurieren können.

 [ssh] aktiviert = wahr port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6 

In den meisten Fällen müssen Sie lediglich die Einstellung " enabled = false " in " enabled = true " ändern und sie wird für diesen Dienst aktiviert. Wenn Sie nicht den üblichen Port 20 für SSH verwenden, können Sie auch die Portnummer in der obigen Einstellung ändern.

Sobald Sie mit der Konfiguration fertig sind, drücken Sie "Strg + o" zum Speichern und "Strg + x" zum Beenden.

Zuletzt starten Sie den Fail2Ban-Dienst mit folgendem Befehl neu:

 Sudo-Dienst fail2ban Neustart 

Welche anderen Möglichkeiten nutzen Sie, um Ihren SSH-Server zu schützen?