Ich habe vor kurzem beschlossen, einige Sicherheitsmaßnahmen durchzuführen. Ich habe meine Protokolle gesehen und es gab einige Versuche gegen meinen SSH-Server. Zuerst habe ich den SSH-Port von der Standardeinstellung 22 entfernt. Danach habe ich etwas über Fail2ban , BlockHosts und DenyHosts gelesen .
Ich habe mir das erste angesehen: Es ist einfach zu konfigurieren, alles ist verständlich; Aber als ich versuchte, "seinen Schutz zu prüfen", sind die Tests fehlgeschlagen . Alles scheint gut zu sein, aber ich kann trotzdem auf den Server zugreifen.
Ich habe auch die IPtables getestet: # iptables -I INPUT -j DROP
- Danach ging meine SSH-Verbindung verloren (also, was ich wollte). Dann # iptables -I INPUT -s 84.x.y.z -j DROP
hat das auch geklappt.
Aber welche Regeln hat der Fail2ban gemacht, das funktioniert nicht: ( $ sudo iptables -L
)
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-apache tcp -- anywhere anywhere multiport dports www,https
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-apache (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- 84.x.y.z anywhere
RETURN all -- anywhere anywhere
Chain fail2ban-ssh-ddos (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Kernelmodule geladen: ( $ lsmod | grep ip
)
iptable_nat 4680 0
nf_nat 15576 1 iptable_nat
nf_conntrack_ipv4 12268 3 iptable_nat,nf_nat
nf_conntrack 55540 4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport 2816 2
iptable_filter 2624 1
ip_tables 10160 2 iptable_nat,iptable_filter
x_tables 13284 5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6 235396 24
Versionen:
- Debian Lenny 5.06, Kernel 2.6.26-2-686
- IPtables 1.4.2-6
- Fail2ban 0.8.3-2sid1
openssh-server
1: 5.1p1-5
Test Nr. 1 Schritt für Schritt:
- Konfigurieren Sie Fail2ban auf niedrige Bantime. 60 Sek. Dann neu laden.
- Versuchen Sie, sich (mit SSH) direkt mit falschem Passwort anzumelden.
- Geben Sie zum 6. Mal das richtige Passwort ein (maximal 4 Versuche hier). Ich habe mich angemeldet. Ich kann auch auf die von diesem Server gehostete Webseite zugreifen.
iptables -L
zeigte mir wie oben erwähnt. Das Verbot war also aktiv, als ich eine Verbindung herstellte und meinen Server befahl.
Test Nr. 2 Schritt für Schritt:
- Stoppen Sie Fail2ban. Erstellen Sie ein
at
Skript, um die unten beschriebene Verbotsregel in Zukunft zu entfernen. (iptables -D INPUT 1
) - Erstellen Sie eine Verbotsregel:
iptables -I INPUT 1 -s 84.x.y.z -j DROP
- Ich konnte nichts anderes eingeben, die SSH-Verbindung ist unbrauchbar. Ich konnte nicht auf die Webseite zugreifen. Also, was ich von iptables wollte.
- Nach dem
at
Skript kann ich auf meinen Server zugreifen.
Ich sehe die Lösung nicht. Was soll ich tun, damit mein IPtables-Verbot (von Fail2ban) funktioniert?
Antworten:
Ich habe das Problem gefunden, was ich getan habe, bevor ich fail2ban installiert habe. Entschuldigung für Ihre Zeit.
Aus Sicherheitsgründen habe ich meinen sshd von Port 22 auf einen anderen verschoben. Die Referenz in
iptables
bezieht sich nur auf Port 22. Ich dachte, dass es eine Variable ist, die sich immer auf den aktuellen sshd-Port bezieht. Aber NICHT .Die genaue Lösung (wenn Sie Ihren Daemon von seinem ursprünglichen Port entfernt haben):
port
Abschnitt an allen . Beispiel:port = all
banaction
nach der Portzeile eine vorhandene Zeile mit dem Wert iptables-allports hinzu oder bearbeiten Sie sie . Beispiel :banaction = iptables-allports
.# service fail2ban restart
.Ich konnte keine Lösung finden, um die
port ssh
Richtlinie zu ändern oder dort eine Nummer zu schreiben. Wenn Sie eine Lösung haben, die nicht alle Ports umfasst, höre ich sie mir an!quelle
Ich hatte das gleiche Problem mit fail2ban, das nicht gesperrt wurde, nachdem ich meinen SSH-Server auf den nicht standardmäßigen Port 12345 verschoben hatte (sagen wir mal).
Damit fail2ban nach mehreren fehlgeschlagenen Authentifizierungsversuchen die richtigen Regeln erstellt, habe ich sie bearbeitet
/etc/fail2ban/jail.conf
.in
Ich gehe davon aus, dass ein ähnlicher Ansatz für andere Dienste an nicht standardmäßigen Ports funktionieren würde.
quelle
Die Einstellungen für fail2ban sind in
/etc/fail2ban/jail.local
. Bei einer Standardinstallation bin ich mir nicht sicher, ob es da ist. Dann kopieren Siejail.conf
injail.local
, sodass Sie beide Dateien haben/etc/fail2ban/
. Bearbeitenjail.local
, gehen Sie zu der Zeile mit[ssh]
und aktivieren Sie es wie folgt :Starten Sie danach fail2ban neu:
Es ist möglich, dass es jetzt funktioniert, ich habe es so eingerichtet und es funktioniert.
quelle
Sie haben "Fail2ban 0.8.3-2sid1" als installiert aufgeführt. Dies ist eine nicht unterstützte Konfiguration. Sid-Pakete sollten nicht in einer stabilen Umgebung installiert werden.
Ich verwende Debian 6 (Squeeze), das von Lenny aktualisiert wurde, in einer VM speziell als SSH-Server für mein Zuhause. Ich benutze auch fail2ban. Ich habe Ihren Test Nr. 1 durchgeführt und alles hat so funktioniert, wie es sollte. Ich konnte mich nicht für die maximale Anzahl von Versuchen anmelden, und dann wurden meine Anmeldeanforderungen für 60 Sekunden gelöscht.
Meine Versionsliste:
quelle
sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade
. Es ist ganz einfach.