Shell-Skripteinstellungen zum Verhindern von Brute-Force-SSH

Shell-Skripteinstellungen zum Verhindern von Brute-Force-SSH

Das Shell-Skript richtet die Zugriffskontrolle ein und die IP wird nach mehreren fehlgeschlagenen Anmeldungen blockiert, um Brute-Force-Cracking von SSH zu verhindern.

Wenn festgestellt wird, dass ein Host eine SSH-Remoteverwaltung für den Server durchführt und innerhalb von 10 Minuten dreimal das falsche Kennwort eingegeben wird, wird Firewalld verwendet, um zu reagieren und eine erneute Verbindung dieser IP zu untersagen. Die Verbindung wird nach 6 Stunden wieder zugelassen.

1. System: Centos7.1 64-Bit

2. Methode: Lesen Sie /var/log/secure und suchen Sie nach dem Schlüsselwort Failed

 4. Januar 16:29:01 centos7 sshd[1718]: Fehlgeschlagenes Passwort für Root von 192.168.120.1 Port 2171 ssh2
4. Januar 16:29:02 centos7 sshd[1718]: pam_succeed_if(sshd:auth): Anforderung „uid >= 1000“ vom Benutzer „root“ nicht erfüllt
4. Januar 16:29:04 centos7 sshd[1718]: Fehlgeschlagenes Passwort für Root von 192.168.120.1 Port 2171 ssh2
4. Januar 16:29:06 centos7 sshd[1718]: Fehler: Trennung von 192.168.120.1 Port 2171:0 empfangen: [preauth]
4. Januar 16:45:53 centos7 sshd[1758]: Fehlgeschlagenes Passwort für Root von 192.168.120.134 Port 40026 ssh2
3. Shell-Code, test.sh erstellen
#!bin/bash
#Illegale IP-Adressen abfangen
Monat=$(LANG=C Datum +"%b")
Tag=$(LANG=C Datum +"%e")
jetzt=$(LANG=C Datum +"%T")
zehn=$(LANG=C date -d "vor 10 Minuten" +"%T")

cat /var/log/secure |awk '$1=="'$month'" && $2=='"$day"' && $3>="'$ten'" && $3<="'$now'" { print}' |grep 'Fehlgeschlagen'|awk -F'from' '{ print $2}' |awk '{ print $1}'|sort |uniq -c > baduser.txt

#Anzahl der Berechnungen
mal=`awk '{ print $1 }' baduser.txt`

#verbotene IP-Adresse
Folge = 1
für i in $times
Tun
   ip=`sed -n ''$seq'p' baduser.txt |awk '{ print $2}'`
   wenn [ $i -ge 3 ]
   Dann
   Firewall-Befehl – ​​add-rich-rule = „Regelfamilie = IPv4 Quelladresse = „$IP“ Port Port = 22 Protokoll = TCP Ablehnen“ – Timeout = 6h
   fi
seq=`Ausdruck $seq + 1`
Erledigt
4. Fügen Sie das Skript test.sh in die geplante Cron-Aufgabe ein und führen Sie es alle 60 Minuten aus.
# crontab -e
*/60 * * * * sh /root/test.sh

Bildbeschreibung hier einfügen

5. Testen

1. Öffnen Sie ein Terminalfenster, stellen Sie per SSH eine Verbindung zum Server her und stellen Sie mehrmals mit dem falschen Kennwort eine Verbindung zum Server her.
Bald gab es Einträge in der Blacklist-Datei baduser.txt auf dem Server:

Bildbeschreibung hier einfügen

Die IP wurde zur Datei baduser.txt des Servers hinzugefügt, kann keine Verbindung zum Server herstellen und wird abgelehnt:

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über Shell-Skripteinstellungen, um Brute-Force-Cracking von SSH zu verhindern. Weitere relevante Inhalte zu Shell-Skripten zum Schutz vor Brute-Force-Cracking finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Was ist SSH-Portweiterleitung? Was nützt das?
  • Was ist SSH? Wie benutzt man? Was sind die Missverständnisse?
  • Detaillierte Erläuterung der Wissenspunkte zur Linux-Remoteverwaltung und SSHD-Dienstüberprüfung
  • So ändern Sie die SSH-Portnummer in der Centos8-Umgebung
  • SSH-Remoteverwaltungsdienst

<<:  Detailliertes Beispiel zum Einfügen benutzerdefinierter HTML-Datensätze im Quill-Editor

>>:  Sechs mit CSS3 implementierte Randübergangseffekte

Artikel empfehlen

Tipps zum Escapen von HTML-Texten

Heute habe ich auf CSDN einen kleinen Trick zum Es...

Analysieren Sie, wie eine SQL-Abfrageanweisung in MySQL ausgeführt wird

Inhaltsverzeichnis 1. Übersicht über die logische...

So verstehen Sie die Modularität von JavaScript

Inhaltsverzeichnis 1. Browserunterstützung 2. Exp...

Transplantieren des Befehls mkfs.vfat in Busybox unter Linux

Um die Lebensdauer der Festplatte zum Speichern v...

Erkunden Sie die gängigen VMware ESXI CLI-Befehle

Inhaltsverzeichnis 【Allgemeine Befehle】 [Zusammen...

JS realisiert den Effekt der Baidu News-Navigationsleiste

In diesem Artikel wird der spezifische JS-Code zu...

Verwenden Sie Typescript-Konfigurationsschritte in Vue

Inhaltsverzeichnis 1. TypeScript wird in das alte...

Detaillierte Beschreibung der chinesischen ffmpeg-Parameter

Details zu den Parametern der Version FFMPEG 3.4....

Frage zu benutzerdefinierten Attributen von HTML-Tags

In der vorherigen Entwicklung haben wir die Stand...

Was ist das Basis-Tag und was macht es?

Der <base>-Tag gibt die Standardadresse ode...

Das WeChat-Applet realisiert den Effekt des Siebschüttelns

In diesem Artikel wird der spezifische Code des W...