fail2ban Mails mit Hostname versehen

4 (80%) 1 vote

Problem: Wenn man mehr als einen Server mit fail2ban betreibt, kann man diese anhand der Ban-Mail nicht unterscheiden. Durch einfügen des Hostnames in der passenden Action wird kann man diesen dynamisch ergänzen.
Lösung: Die Actions sind Shellscripte in denen man durch Substitution Kommandos unterbringen kann. In diesem Fall einfach den Hostname (hostname -f oder hostname -s). Thats all.


TODO:
In /etc/jail.conf nachschauen welches Script fuer das versenden der Mails zuständig ist (sendmail oder mail) und welche action. Danach das passende script unter /etc/action.d/ – in meinem Fall sendmail-whois-lines.conf editieren.

1
2
3
4
5
6
7
8
actionban = printf %%b "Subject: [Fail2Ban] <strong>`hostname -s`</strong> <name>: banned <ip>
            From: Fail2Ban <<sender>>
            To: <dest>\n
            Hi,\n
            The IP <ip> has just been banned by Fail2Ban after
            <failures> attempts against <name>.\n\n
            Here are more information about <ip>:\n
            .....

danach fail2ban restarten mit

1
  /etc/init.d/fail2ban restart

und von einem Rechner der keine direkten Zugriffe benötigt fail2ban testen.

Wie Testen ?
Naja, einfach mal mit

1
2
3
4
5
6
7
8
9
10
11
   y@y> ssh testuser@testrechner.domain
    testuser@testrechner.domain's password: 
    Permission denied, please try again.
    testuser@testrechner.domain's password: 
    Permission denied, please try again.
    testuser@testrechner.domain's password: 
 
   y@y> ssh testuser@testrechner.domain
    testuser@testrechner.domain's password: 
    Permission denied, please try again.
....tot... !

und kein password + return connectieren. Nach der in jail.conf [ssh] eingestellten Anzahl von Versuchen sollte fail2ban dann die passende Mail verschicken. Nach dem in der config eingestellten Zeitraum

1
2
cat /etc/jail.conf | grep bantime
--> bantime  = 600

wird die Firewall den Host wieder freigeben.

oder testen der rules (z.B. sshd-rule) durch

1
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

als root ausführen. (THX marolu !)

ACHTUNG1: Nicht von dem Rechner aus testen mit dem man Zugriff gerade hat :-() Das ist der Ast auf dem Mann sitzt 🙂
ACHTUNG2: Wer in einer Firma/Keller sitzt und nach aussen nur eine/wenige IP’s hat, sperrt diese beim Testen !

3 comments

    • Tobi

      Ich habe es oben mit aufgenommen -> einfach per ssh ohne password eingeben (leer return) connectieren.
      Grüße
      Tobi

Kommentar verfassen

Sie können die folgenden HTML-Codes verwenden:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Leider ist CAPTCHA notwendig .... *