Fail2Ban funktionslos?!

Merlok

New Member
Hallo zusammen,

ich habe heute auf meinem Server Fail2Ban und DenyHosts installiert.
DenyHosts funktioniert soweit (hat zum Glück auch schon entsprechende Hosts gesperrt), Fail2Ban funktioniert allem Anschein nach nicht.

Fail2Ban liegt bei mir im Ordner /home/fail2ban/.

Die jail.conf (welche wohl die Hauptconfig Datei ist) sieht so aus:
Code:
# Fail2Ban configuration file
#
# Author: Cyril Jaquier
#
# $Revision: 617 $
#

# The DEFAULT allows a global definition of the options. They can be override
# in each jail afterwards.

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 3

# "backend" specifies the backend used to get files modification. Available
# options are "gamin", "polling" and "auto". This option can be overridden in
# each jail too (use "gamin" for a jail and "polling" for another).
#
# gamin:   requires Gamin (a file alteration monitor) to be installed. If Gamin
#          is not installed, Fail2ban will use polling.
# polling: uses a polling algorithm which does not require external libraries.
# auto:    will choose Gamin if available and polling otherwise.
backend = auto


# This jail corresponds to the standard configuration in Fail2ban 0.6.
# The mail-whois action send a notification e-mail with a whois request
# in the body.

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=schumiskinn@gmx.de, sender=webmaster@ryzom-windforcer.de]
logpath  = /var/log/messages
maxretry = 5

[proftpd-iptables]

enabled  = false
filter   = proftpd
action   = iptables[name=ProFTPD, port=ftp, protocol=tcp]
           sendmail-whois[name=ProFTPD, dest=you@mail.com]
logpath  = /var/log/proftpd/proftpd.log
maxretry = 6

# This jail forces the backend to "polling".

[sasl-iptables]

enabled  = false
filter   = sasl
backend  = polling
action   = iptables[name=sasl, port=smtp, protocol=tcp]
           sendmail-whois[name=sasl, dest=you@mail.com]
logpath  = /var/log/mail.log

# Here we use TCP-Wrappers instead of Netfilter/Iptables. "ignoreregex" is
# used to avoid banning the user "myuser".

[ssh-tcpwrapper]

enabled     = true
filter      = sshd
action      = hostsdeny
              sendmail-whois[name=SSH, dest=schumiskinn@gmx.de]
ignoreregex = for myuser from
logpath     = /var/log/messages

# This jail demonstrates the use of wildcards in "logpath".
# Moreover, it is possible to give other files on a new line.

[apache-tcpwrapper]

enabled  = false
filter	 = apache-auth
action   = hostsdeny
logpath  = /var/log/apache*/*error.log
           /home/www/myhomepage/error.log
maxretry = 6

# The hosts.deny path can be defined with the "file" argument if it is
# not in /etc.

[postfix-tcpwrapper]

enabled  = false
filter   = postfix
action   = hostsdeny[file=/not/a/standard/path/hosts.deny]
           sendmail[name=Postfix, dest=you@mail.com]
logpath  = /var/log/postfix.log
bantime  = 300

# Do not ban anybody. Just report information about the remote host.
# A notification is sent at most every 600 seconds (bantime).

[vsftpd-notification]

enabled  = false
filter   = vsftpd
action   = sendmail-whois[name=VSFTPD, dest=you@mail.com]
logpath  = /var/log/vsftpd.log
maxretry = 5
bantime  = 1800

# Same as above but with banning the IP address.

[vsftpd-iptables]

enabled  = false
filter   = vsftpd
action   = iptables[name=VSFTPD, port=ftp, protocol=tcp]
           sendmail-whois[name=VSFTPD, dest=you@mail.com]
logpath  = /var/log/vsftpd.log
maxretry = 5
bantime  = 1800

# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.

[apache-badbots]

enabled  = false
filter   = apache-badbots
action   = iptables-multiport[name=BadBots, port="http,https"]
           sendmail-buffered[name=BadBots, lines=5, dest=you@mail.com]
logpath  = /var/www/*/logs/access_log
bantime  = 172800
maxretry = 1

# Use shorewall instead of iptables.

[apache-shorewall]

enabled  = false
filter   = apache-noscript
action   = shorewall
           sendmail[name=Postfix, dest=you@mail.com]
logpath  = /var/log/apache2/error_log

# This jail uses ipfw, the standard firewall on FreeBSD. The "ignoreip"
# option is overridden in this jail. Moreover, the action "mail-whois" defines
# the variable "name" which contains a comma using "". The characters '' are
# valid too.

[ssh-ipfw]

enabled  = true
filter   = sshd
action   = ipfw[localhost=192.168.0.1]
           sendmail-whois[name="SSH,IPFW", dest=schumiskinn@gmx.de]
logpath  = /var/log/messages
ignoreip = 168.192.0.1

# These jails block attacks against named (bind9). By default, logging is off
# with bind9 installation. You will need something like this:
#
# logging {
#     channel security_file {
#         file "/var/log/named/security.log" versions 3 size 30m;
#         severity dynamic;
#         print-time yes;
#     };
#     category security {
#         security_file;
#     };
# }
#
# in your named.conf to provide proper logging.
# This jail blocks UDP traffic for DNS requests.

[named-refused-udp]

enabled  = false
filter   = named-refused
action   = iptables-multiport[name=Named, port="domain,953", protocol=udp]
           sendmail-whois[name=Named, dest=you@mail.com]
logpath  = /var/log/named/security.log
ignoreip = 168.192.0.1

# This jail blocks TCP traffic for DNS requests.

[named-refused-tcp]

enabled  = false
filter   = named-refused
action   = iptables-multiport[name=Named, port="domain,953", protocol=tcp]
           sendmail-whois[name=Named, dest=you@mail.com]
logpath  = /var/log/named/security.log
ignoreip = 168.192.0.1

Das Problem ist nun dass Fail2Ban scheinbar gar nicht reagiert wenn in der Datei /var/log/messages entsprechende Logeinträge erscheinen.
DenyHosts hingegen schon.

Eine Statusabfrage per status Argument zeigt mir an dass 0 Jails aktiv sind. Ich gehe mal davon aus dass es mindestens 1 sein müsste?!

Woran kann es liegen dass Fail2Ban scheinbar nichts tut? Hat jemand eine Idee?
 
Hat denn niemand eine Idee/Ahnung woran es liegen könnte?

Habe ich etwas vergessen oder komplett falsch konfiguriert?
Ich wäre wirklich dankbar für Hilfe!:o
 
Nach wievielen Versuchen bannt DenyHosts denn?

Fail2Ban würde nach:
Code:
maxretry = 5
5 Versuchen bannen. Wenns DenyHosts jetzt schon nach beispielsweisen 3 Verschen macht, kommt es in den Logs ja logischerweise zu keinem 4 und 5ten Versuch mehr, also wird Fail2Ban nicht aktiv.
 
Also Denyhosts blockt bei mir nach 5 Fehlschlägen.

Code:
#######################################################################
#
# DENY_THRESHOLD_INVALID: block each host after the number of failed login 
# attempts has exceeded this value.  This value applies to invalid
# user login attempts (eg. non-existent user accounts)
#
DENY_THRESHOLD_INVALID = 5
#
#######################################################################

Sollte ich den Wert in fail2ban dann runtersetzen? Beispielsweise auf 4?

Und wenn ich das tue, hebel ich dann damit nicht auch Denyhosts aus?
 
Hmmmm das macht es mir ja nicht wirklich einfach.

Was würdest Du mir denn raten?
1. Fail2Ban nach 4 Versuchen, Denyhosts nach 5. Denyhosts bekommt somit nur noch die globalen Updatelisten und wirkt präventiv
2. Fail2ban deinstallieren und ausschließlich Denyhosts. Sperre nach 5 Logins
 
Was findest du besser: Porsche oder Ferrari? ;)

Das kommt ganz drauf an worauf du mehr Wert legst:
Fail2Ban ist natürlich ganz gut wenn du auch noch andere Logfiles, wie die vom Apache beispielsweise analysieren willst und die auch sperren willst.

Denyhosts bietet natürlich, wie du schon sagst, die globalen Listen.

Natürlich kannst du auch beides kombinieren:
Fail2Ban SSH bannen lassen und denyhosts als präventiv Maßnahme durch die globalen Listen.
 
Ok. Ich werd da mal ne Nacht drüber schlafen. Jetzt hab ich da keinen Nerv mehr für. :D

Und zu Deiner Frage: Ich mag Ferrari lieber. ;-)

Ach und das Ruby Skript scheint bei mir nich zu funzen.
Wenn ich in das Verzeichnis von dem File gehe und eingebe
Code:
./notify_isp.rb IP-Adresse
dann passiert seltsamerweise nichts. Die Konsole bleibt einfach stehen. Es erscheint nicht mal ein Fehler.
Hast Du eine Ahnung an was das liegen kann? Ruby habe ich installiert.

Code:
vs170107:~ # rpm -q ruby
ruby-1.8.6.p36-20.4
 
Back
Top