# fail2ban bannt nicht, update: regex-problem

## Jimini

Aloha.                               

Da meine Logs seit einiger Zeit um die Einträge einiger tausend SSH-Login-Versuche pro Woche anwachsen, will ich dieses Problem mit Hilfe von fail2ban ein wenig eindämmen. Blöderweise tut das nicht, was es soll - es bannt die IPs scheinbar nicht.                                                         

fail2ban.conf:

```
[Definition]

# Option:  loglevel

#          1 = ERROR                

#          2 = WARN                 

#          3 = INFO                 

#          4 = DEBUG                

loglevel = 3                        

                                                                                                                                                               

logtarget = /var/log/fail2ban.log                                                                                                                              

                                                                                                                                                               

socket = /var/run/fail2ban/fail2ban.sock
```

jail.conf (um nicht genutzte Jails gekürzt)

```
[DEFAULT]

ignoreip = 127.0.0.1                                                           

bantime  = 600                                             

findtime  = 60                                                              

maxretry = 3                                                    

backend = auto

[ssh-iptables]

enabled  = true

filter   = sshd

action   = iptables[name=SSH, port=ssh, protocol=tcp]

logpath  = /var/log/authlog-2010-03

maxretry = 3
```

fail2ban-client status ssh-iptables

```
Status for the jail: ssh-iptables

|- filter

|  |- File list:        /var/log/authlog-2010-03

|  |- Currently failed: 0

|  `- Total failed:     0

`- action

   |- Currently banned: 0

   |  `- IP list:

   `- Total banned:     0
```

fail2ban.log zeigt keinerlei Sperren an, ebenso verzeichnet mein aktuelles Authlog (authlog-2010-03) weiterhin täglich munter hunderte neue Einträge von erfolglosen Loginversuchen, meist im Abstand von 2, 3 Sekunden. Die Adressen, von denen die Versuche ausgehen, bleiben in der Regel über Stunden die gleichen. "findtime" und "maxretry" habe ich - finde ich - relativ strikt gesetzt, es dürfte also nicht sein, dass täglich dermaßen viele neue Loginversuche geloggt werden.

Den Loglevel habe ich testweise mal auf "4" (debug) gesetzt - aber bis auf massenweise Einträge à la 

```
2010-03-02 12:21:34,030 fail2ban.filter : DEBUG  /var/log/authlog-2010-03 has been modified

2010-03-02 12:21:34,032 fail2ban.filter.datedetector: DEBUG  Sorting the template list

2010-03-02 14:56:45,427 fail2ban.filter : DEBUG  /var/log/authlog-2010-03 has been modified

2010-03-02 14:56:45,428 fail2ban.filter.datedetector: DEBUG  Sorting the template list

2010-03-02 14:56:47,431 fail2ban.filter : DEBUG  /var/log/authlog-2010-03 has been modified

2010-03-02 14:56:47,432 fail2ban.filter.datedetector: DEBUG  Sorting the template list

2010-03-02 14:56:49,435 fail2ban.filter : DEBUG  /var/log/authlog-2010-03 has been modified

2010-03-02 14:56:49,437 fail2ban.filter.datedetector: DEBUG  Sorting the template list

2010-03-02 14:56:56,445 fail2ban.filter : DEBUG  /var/log/authlog-2010-03 has been modified

2010-03-02 14:56:56,447 fail2ban.filter.datedetector: DEBUG  Sorting the template list
```

taucht in fail2ban.log nichts weiter auf. Fail2ban scheint sich also nicht wirklich darum zu kümmern, was im Authlog festgehalten wird, nur, dass neue Einträge hinzukommen. 

Findet irgendjemand den Fehler bzw weiß, woran es liegen könnte?

MfG Jimini

P.S.: mein Authlog wird nach dem Namensschema "authlog-Jahr-Monat" erstellt. Wie kann ich den Logpath festlegen, dass fail2ban automatisch das aktuelle Log parst?

P.P.S.: ich nutze übrigens iptables-1.4.3.2, shorewall-3.4.8 und Gentoo Hardened 2.6.28-r9. fail2ban arbeitete unter der selben Kombination (bis auf den Kernel, der war älter), auf einer anderen Kiste schon anstandslos, leider komme ich zur Zeit nicht an das entsprechende System heran.

P.P.P.S.: ich habe mir erlaubt, ein Crossposting im englischen Forum zu erstellen.

----------

## Jimini

UPDATE

Es scheint als hätte ich das Problem gefunden - meine Regex' passen nicht. Die Einträge in meinem authlog sehen wie folgt aus:

```
[2010-03-05 12:54:18] info auth sshd Invalid user gt05 from 112.65.216.15
```

/etc/fail2ban/filter.d/sshd.conf enthält:

```
failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from <HOST>\s*$

            ^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from <HOST>\s*$

            ^%(__prefix_line)sFailed (?:password|publickey) for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$

            ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$

            ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$

            ^%(__prefix_line)sUser \S+ from <HOST> not allowed because not listed in AllowUsers$

            ^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=<HOST>(?:\s+user=.*)?\s*$

            ^%(__prefix_line)srefused connect from \S+ \(<HOST>\)\s*$

            ^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT!*\s*$

            ^%(__prefix_line)sUser \S+ from <HOST> not allowed because none of user's groups are listed in AllowGroups$

            ^%(__prefix_line)sInvalid user .* from <HOST>$
```

Ich habe den Filter mittels fail2ban-regex getestet, eine Übereinstimmung wird dabei nicht gefunden.

Wo liegt der Fehler?

MfG Jimini

----------

## Hollowman

Hi

Hast du das Loglevel in der sshd_config auf VERBOSE gestellt? Das musste ich laut Anleitung machen. Ich habs aber nie ohne probiert. Bei mir geht das mit iptables, openssh und fail2ban problemlos.

/etc/ssh/sshd_config

```

# Logging

# obsoletes QuietMode and FascistLogging

#SyslogFacility AUTH

LogLevel VERBOSE

```

So sieht das bei mir aus.

Sebastian

----------

## Jimini

Danke für deine Antwort!

Ich habe das Loglevel mal von "INFO" auf "VERBOSE" gesetzt. Allerdings würde es mich wundern, wenn es daran liegen würde, denn mein authlog ist wie gesagt voll mit Einträgen von Loginversuchen, die über Stunden zig Usernamen durchprobieren. Zudem meine ich mich zu erinnern, dass das Loglevel vom SSHD auf dem alten System auch nur auf "INFO" stand - aber ich kann es nicht beschwören. Mal schauen, ob das andere Loglevel in den kommenden 12 Stunden neue Erkenntnisse bringt.

MfG Jimini

----------

## Hollowman

Hi

Also ich hab nichts anderes gemacht als fail2ban installiert, die conf und das jail angepasst und das LOGLEVEL eändert. Danach ging das sofort.

Halt, da war nochwas:

```

And don't forget to add/change:

LogLevel VERBOSE

in your sshd configuration file /etc/ssh/sshd_config. Else, password failures are not logged correctly.

The log prefix needs adaption /etc/fail2ban/filter.d/common.conf:

__daemon_re = [\[\(]?%(_daemon)s(?:\([^\)]+\))?[\]\)]?:?

because of pam_unix(sshd:auth). 
```

Lies ma das hier: http://en.gentoo-wiki.com/wiki/Fail2ban

Sebastian

----------

## Jimini

Leider hat das nichts gebracht - ich habe das Problem jetzt erstmal so umschifft, dass ich das Loggingformat von syslog-ng wieder auf die Standardeinstellungen gesetzt habe. Für mich keine befriedigende Lösung, aber immerhin arbeitet fail2ban jetzt ohne Probleme. Wenn ich viel Zeit und Motivation habe, werde ich die regex des Filters mal meinen Filterregeln anpassen...

Dennoch vielen Dank für deine Hilfestellung!

MfG Jimini

----------

