DenyHosts kann dazu verwendet werden, BruteForce-Angriffe abzuwehren. DenyHosts durchsucht Logfiles auf fehlerhafte Logins und sperrt diese nach einer gewissen Anzahl. Blöd ist nur, wenn man sich selber raussperrt. Mit meinem kleinen Skript kann man eine IP-Adresse in DenyHosts wieder entsperren.
Manuell
Zuerst stoppt man den DenyHosts-Daemon:
Stopping DenyHosts: denyhosts.
Die IP-Adresse muss danach aus dem File /etc/hosts.deny gelöscht werden.
Dies genügt jedoch noch nicht ganz. Die IP-Adresse ist immer noch nicht erlaubt. DenyHosts führt seperate Listen in einem eigenen Verzeichnis. Das Verzeichnis findet man mit folgendem Befehl heraus:
WORK_DIR = /var/lib/denyhosts
Standardmässig wird das Verzeichnis /var/lib/denyhosts verwendet. In diesem Verzeichnis muss man die IP-Adresse ebenfalls aus den Files hosts-restricted, hosts-root, hosts-valid und users-hosts löschen. Das kann man z.B. mit dem VI-Editor machen:
Zum Schluss startet man den Daemon wieder:
Starting DenyHosts: denyhosts.
Skript
Das geht natürlich viel einfacher mit einem Skript! Folgendes Skript löscht eine IP-Adresse aus den nötigen Files:
#
# rmdenyhosts
# Entfernt DenyHosts-Eintraege
#
# Copyright 2011 Emanuel Duss
# Licensed under GNU General Public License
#
# 2011-07-03; Emanuel Duss; Erste Version
#
########################################################################
########################################################################
# Variabeln
DENYHOSTS="/etc/init.d/denyhosts"
DENYDIR="/var/lib/denyhosts"
GOODHOST="$1"
########################################################################
# Funktionen
usage() {
cat << EOF
Usage:
$0 IP-Adresse
EOF
}
########################################################################
# Main
# Variable gesetzt?
if [ -z "$GOODHOST" ]
then
echo "Keine IP-Adresse angegeben!"
usage
exit 1
fi
# DenyHosts stoppen
$DENYHOSTS stop
# Eintraege entfernen
for i in $DENYDIR/hosts \
$DENYDIR/hosts-restricted \
$DENYDIR/hosts-root \
$DENYDIR/hosts-valid \
$DENYDIR/users-hosts \
/etc/hosts.deny
do
sed '/'$GOODHOST'/d' $i > $i.tmp
mv $i.tmp $i
done
# DenyHosts starten
$DENYHOSTS start
# EOF
Download
rmdenyhosts.tar (MD5: b84463ec481766701ef48d0aa5d3ce59)
Weitere Informationen / Links
- DenyHosts auf SourceForge: http://denyhosts.sourceforge.net/
Dini M114 Doku isch scheisse.
Hemme ned chönne bruche am KN’ haha….
Schad. De mueschder halt selber eini schriibe! 😉
Die Anleitung zu denyhosts ist spitze. Danke vorallem für das Skript – funktioniert perfekt und ist eine tolle Erleichterung.
Danke! 😉
Das Skript ist wirklich eine grosse Arbeitserleichterung!
Es ist bestimmt ein gutes Programm.
Aber wie starte ich das Script, wenn ich mich ausgesperrt habe ?
mfg
Da gibt es viele Wege:
– Man loggt sich von einem Kollegen aus ein (→ Andere IP-Adresse)
– Man loggt sich via Handy über das Mobilnetz ein (→ Andere IP-Adresse)
– Man loggt sich über ein VPN ein (→ Andere IP-Adresse)
– Man loggt sich direkt ohne SSH ein (Wenn man physikalischen Zugang zum Server hat)
– Viele vServer-Anbieter geben einem die Möglichkeit, eine Konsole über das Webinterface zu öffnen, ohne dass der Server eine Netzwerkverbindung braucht (→ Lokale Anmeldung möglich)
Gruss
super Sache, hat prima geklappt und dein Tool ist auch schon auf meinem Server abgespeichert.
Vielen, vielen Dank!!!
LG, Szandor
Vielen lieben Dank, hat prima geklappt mit der spitzen Anleitung. Dein Skript hab ich auch schon auf meinem Server oben, funktioniert tadellos! Wundert mich dass hier niemand seit Jahren geantwortet hat, wobei jeder Deny Hosts installiert haben sollte… Von mir hast auf jeden Fall ein Plus gevoted bekommen 🙂