Ich wollte eine Anmeldeverzögerung angeben, während ich mich über ssh anmelde. Ich habe verschiedene Möglichkeiten ausprobiert, konnte aber das gewünschte Ergebnis nicht finden.
Ich habe Schritte ausprobiert, die über den angegebenen Link bereitgestellt wurden.
http://hostingfu.com/article/ssh-dictionary-attack-prevention-with-iptables
iptables -N SSH_CHECK
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_CHECK
iptables -A SSH_CHECK -m recent --set --name SSH
iptables -A SSH_CHECK -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
Ich habe kein Pam-Modul auf meinem Computer installiert und kann daher keine Änderungen an Pam-Dateien vornehmen
Also lässt mich irgendein Körper einen anderen Weg vorschlagen, um dasselbe zu tun?
Ich habe einen nackten Linux-Kernel, der auf einer eingebetteten Plattform läuft.
linux
networking
ssh
sshd
RAM
quelle
quelle
fail2ban
verwendet genau die Infrastruktur, die Sie bereits haben - SSH-Protokolle und Iptables-Regeln.Antworten:
Methode 1 - Deaktivieren Sie die Kennwortanmeldungen
Wenn Sie keine Kennwortanmeldungen zulassen müssen, erhalten Sie den gewünschten Effekt, wenn Sie diese einfach nicht zulassen. Fügen Sie einfach diese Zeile hinzu zu
/etc/ssh/sshd_config
:Darüber hinaus können Sie die Verwendung von Kennwörtern auf bestimmte Benutzer beschränken, indem Sie den
Match
Operator verwendensshd_config
:Methode 2 - iptables
Sie können auch
iptables
fehlgeschlagene Anmeldeversuche verfolgen und nach einem bestimmten Schwellenwert löschen. Dies ähnelt Ihrem Beispiel von HostingFu, ist jedoch leichter zu verstehen.HINWEIS: In der ersten Zeile wird grundsätzlich eine Regel erstellt, die nur für Pakete gilt, die für neue Verbindungsversuche am SSH-Port verwendet werden. Die zweite Zeile besagt, dass bei mehr als 4 Versuchen von einer IP innerhalb von 60 Sekunden jeglicher Datenverkehr von dieser IP mit einem Blackholing versehen werden sollte. Diese Lösung kümmert sich nicht darum, ob die Versuche auf verschiedenen Benutzerkonten ausgeführt werden.
Methode 3 - Verwenden Sie PAM
Mir ist klar, dass Sie gesagt haben, dass Sie kein PAM zur Verfügung haben, aber wenn Sie dies getan haben, können Sie auf diese Weise fehlgeschlagene Anmeldeversuche verzögern. Wenn Sie einfach SSH-Anmeldefehler verzögern möchten, können Sie das PAM-Modul verwenden
pam_faildelay
. Dieses PAM-Modul ist im Allgemeinen im Standardmix enthalten.Auf meinem Fedora 19-System ist es Teil der Standardinstallation.
Beispiel
Suchen Sie nach Dateien im Zusammenhang mit
pam_faildelay
.Sehen Sie, von welcher Drehzahl sie bereitgestellt werden:
Verwendung
Um eine Verzögerung bei einem Fehler zu erzeugen, fügen Sie Ihrer
sshd
pam-Konfigurationsdatei einfach eine Zeile wie diese hinzu . Auch auf Fedora / CentOS / RHEL-Systemen befindet sich diese Datei hier :/etc/pam.d/sshd
.So erstellen Sie eine Verzögerung von 10 Sekunden:
Eine Verzögerung von 60 Sekunden:
Beispiel
Mit einer Verzögerung von 20 Sekunden unter Verwendung der obigen Methode habe ich meine PAM-
sshd
Konfigurationsdatei wie folgt geändert :Wenn ich mich jetzt anmelde:
Verweise
quelle
--hitcount 4
überschritten wird, wird die Regel die beleidigende IP-Adresse für 60 Sekunden schwarz lochen.Passwörter deaktivieren. Keine Passwörter, kein Brute-Force-Angriff.
Sie können SSH-Schlüssel zum Anmelden verwenden - dies sollte viel sicherer und viel schwieriger zu hacken sein.
quelle
Bei einer Neuinstallation von Ubuntu 16.04 mit
openssh-server
gibt es bereits eine Verzögerung für einen falschen Kennwortversuch mit mehr als null Zeichen. Die Verzögerung scheint mehr als 1 Sekunde zu betragen .Bei einem falschen Kennwortversuch mit null Zeichen gibt es keine Verzögerung, sodass der Angreifer sofort feststellt, dass Ihr Kennwort nicht die leere Zeichenfolge ist, wenn es tatsächlich nicht die leere Zeichenfolge ist. Da die leere Zeichenfolge wahrscheinlich nicht als Kennwort zulässig ist, wissen sie das bereits, sodass sie die leere Zeichenfolge nicht ausprobieren werden.
quelle