IP-Adressen in DenyHosts wieder zulassen

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:

$ sudo /etc/init.d/denyhosts stop
Stopping DenyHosts: denyhosts.

Die IP-Adresse muss danach aus dem File /etc/hosts.deny gelöscht werden.

$ sudo vi /etc/hosts.deny

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:

$ grep ^WORK_DIR /etc/denyhosts.conf
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:

$ sudo vi `grep -l 23.42.05.13 *`

Zum Schluss startet man den Daemon wieder:

$ sudo /etc/init.d/denyhosts start
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

9 thoughts on “IP-Adressen in DenyHosts wieder zulassen”

  1. Die Anleitung zu denyhosts ist spitze. Danke vorallem für das Skript – funktioniert perfekt und ist eine tolle Erleichterung.

        • 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

  2. super Sache, hat prima geklappt und dein Tool ist auch schon auf meinem Server abgespeichert.
    Vielen, vielen Dank!!!

    LG, Szandor

  3. 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 🙂

Leave a Comment