DenyHosts

Wie fail2ban

Quelle1)

Python-Skript DenyHosts durchforstet standardmäßig alle 30 Sekunden die syslog-Datei /var/log/auth.log nach verdächtigen SSH-Fehlversuchen (DAEMON_SLEEP = 30s) und trägt gefundene IP-Adressen in die Datei /etc/hosts.deny ein.

Konfigdaten: /etc/denyhosts.conf

Einstellungen, zb.B. Schwellwerte für Login-Versuche mit nicht existierenden Nutzernamen (DENY_THRESHOLD_INVALID) und solchen mit richtigen Nutzernamen aber falschen Passwörter (DENY_THRESHOLD_VALID) getrennt definieren.

So ist es möglich, auf das Durchprobieren von Nutzernamen schneller zu reagieren, als auf die Eingabe falsche Passwörter – denn seinen Nutzernamen gibt ein legitimer Anwender in der Regel kaum falsch ein.

Zu den selbst ermittelten IP-Adressen auf Basis von auth.log kann man auch die Ergebnisse anderer Systeme zu seiner Liste der geblockten Rechner hinzufügen. Dieser seit langem bei DenyHosts verfügbare Cloud-Service beruht auf der zentralen Erfassung der von anderen DenyHosts-Clients übermittelten Daten (SYNC_DOWNLOAD = yes).

Man selbst kann seine gesammelten ebenfalls an den DenyHost-Server übertragen – muss aber nicht (SYNC_UPLOAD = yes). Im Test übermittelte der Server nach der festgelegten Zeitspanne von 15 Minuten jeweils 50 IP-Adressen, die der Client zu /etc/hosts.deny hinzufügte.

Installation

sudo apt-get install denyhosts

DenyHosts ist nicht auf SSH allein beschränkt, prinzipiell schützt es auch andere Dienste, die ein Login oder eine Authentifizierung erfordern, etwa FTP, Telnet und SMTP. Diese Dienste müssen dann aber entweder via (x)inetd gestartet werden oder gegen libwrap gelinkt sein.

Problem: deny.hosts wächst ständig, zu gross. Lösung: DenyHosts löscht Daten nach best. Zeit wieder. Die Option PURGE_DENY = 1d legt beispielsweise die Dauer auf einen Tag fest. Mit der Option DAEMON_PURGE = 1d veranlasst man DenyHosts, automatisch einmal täglich den Löschprozess auszuführen.

Alternativ kann man DenyHosts stoppen und mit

sudo denyhosts --purge

manuell alle älteren Einträge löschen.

Anschließend muss man DenyHosts wieder starten.

Problem: Denyhost setzt immer wieder eine IP auf die hosts.deny

Quelle2)

Manuell: Siehe Quelle

Skript:

########################################################################
#
# 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
 
Nach oben
denyhosts.txt · Zuletzt geändert: 2024/02/29 13:36 von 127.0.0.1
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0
DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp   Dogecoin Donations Accepted Here    DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp  DFmW2CEce3htPL1uNQuHUVu4Tk6WXigFQp