So blockieren Sie die IP in SSH

So blockieren Sie die IP in SSH

Eine sehr hartnäckige Person versucht seit einigen Tagen kontinuierlich, (unbefugten) Zugriff auf mein System zu erhalten ... Es gibt zig Einträge, wie zum Beispiel /var/log/auth.log:

Jun 21 03:55:15 cloudy sshd[32487]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.20  user=root
Jun 21 03:55:16 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:19 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:21 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:21 cloudy sshd[32487]: Received disconnect from 116.31.116.20: 11:  [preauth]
Jun 21 03:55:21 cloudy sshd[32487]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.20  user=root

Ich möchte um Rat bitten, wie ich diese Person daran hindern kann, Ressourcen des Computers zu verbrauchen. Gibt es eine Möglichkeit, die IP „hart zu blockieren“, sodass sie überhaupt keine SSH-Verbindung herstellen kann? Bitte beachten Sie, dass ich Debian 8 als Betriebssystem verwende.

Antwort1

Antwort2

Sie können auchiptables

Erstellen Sie eine Datei mit den IP-Adressen, die Sie blockieren möchtenblocked.ips.txt

Erstellen und führen Sie nun ein Skript mit dem folgenden Inhalt aus:

blocked=$(egrep -v -E "^#|^$" ./blocked.ips.txt)
for ip in $blocked
do
    iptables -I INPUT -s $ip -p tcp --dport ssh -j DROP
done

Beim Ausführen iptables -Lsollte eine Ausgabe der verworfenen Pakete erfolgen

Antwort3

Der iptables-Ansatz ist der direkteste Weg. Erik Handriks hat ihn als Skript vorgeschlagen.

Zwei Abers: – Das Skript müsste nach jedem Neustart gestartet werden (sofern die Tabellen nicht intern mit iptables gesichert werden). – Wenn das Skript zweimal oder öfter aufgerufen wird, werden die Einträge dupliziert.

Versuchen Sie einfach, den Bösewicht mit Folgendem zu erwischen:

iptables -I INPUT -s BAD_IP -p tcp --dport ssh -j DROP

In den meisten Distributionen verfügt iptables über einen eigenen Mechanismus zum Speichern und Wiederherstellen von Regeln. Überprüfen Sie, ob „/var/lib/iptables/rules-save“ vorhanden ist. Bei Ihrer Distribution könnte es woanders liegen (hier: Gentoo).

Nachdem Sie jede einzelne FEHLERHAFTE IP hinzugefügt haben, versuchen Sie:

iptables-speichern > /var/lib/iptables/regeln-speichern

Überprüfen Sie nach dem Neustart mit „iptables -L“, was da draußen ist …

Antwort4

Auf meinem Server (Ubuntu 16.04) verwende ich UFW (UncomplicatedFireWall), eine Vereinfachungsschicht über iptables, die auf Ubuntu-Servern so ziemlich zum Standard zu gehören scheint (aber auch für andere Distributionen verfügbar sein sollte). Für diese Fälle verwende ich:

ufw insert 1 deny from nnn.nnn.nnn.nnn

Mit UFW können Sie auch die Anzahl der Verbindungen begrenzen

ufw limit ssh/tcp

Beachten Sie, dass dies auch für erfolgreiche Verbindungen gilt. Wenn Sie also Skripte verwenden, die mehrere SSH-Befehle verwenden, müssen Sie diese Beschränkung für Ihre IP deaktivieren, indem Sie Folgendes eingeben:

ufw insert 1 allow in from nnn.nnn.nnn.nnn

verwandte Informationen