Fail2Ban problémák

 ( spgabor | 2018. július 27., péntek - 12:06 )

Sziasztok!

Egy tesztelős levelező szerveren Debian 8-on van három Fail2Ban problémám, amelyekre ne migen találok magyarázatot.
Fail2Ban-t már letöröltem, újratelepítettem többször, 0.8.13-as verzióval. A jail.conf-ban csak a bantime lett rövidebbre véve tesztelés erejéig. A jail.local-ban a következő beállítások vannak:

[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3

[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 4

[postfix-sasl]
enabled = true
port = smtp
filter = postfix-sasl
logpath = /var/log/mail.log
maxretry = 3

A hivatkozott filterek a következő tartalommal rendelkeznek:
pureftpd:
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =

dovecot-pop3imap:
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex =

postfix-sasl:
# Fail2Ban filter for postfix authentication failures
#

[INCLUDES]

before = common.conf

[Definition]

_daemon = postfix/smtpd

failregex = ^%(__prefix_line)swarning: [-._\w]+\[\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$

# Author: Yaroslav Halchenko
ignoreregex =

Ha lekérem a Fail2Ban státuszát a /etc/init.d/fail2ban status paranccsal, akkor a következő eredményt kapom:
fail2ban.service - LSB: Start/stop fail2ban
Loaded: loaded (/etc/init.d/fail2ban)
Active: active (running) since p 2018-07-27 09:43:10 CEST; 1min 43s ago
Process: 10558 ExecStop=/etc/init.d/fail2ban stop (code=exited, status=0/SUCCESS)
Process: 10572 ExecStart=/etc/init.d/fail2ban start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/fail2ban.service
└─10584 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid

júl 27 09:43:10 mailteszt systemd[1]: Starting LSB: Start/stop fail2ban...
júl 27 09:43:10 mailteszt fail2ban[10572]: Starting authentication failure monitor: fail2ban.
júl 27 09:43:10 mailteszt systemd[1]: Started LSB: Start/stop fail2ban.

Az utolsó három üzenetet nem tudom megfejteni, hogy miért jönnek. A fail2ban.log-ban nem látok induláskor semmit. DEBUG módban is csak annyit, hogy hosszú időn keresztül a következőt írja ki:
2018-07-27 11:31:21,890 fail2ban.filter.datedetector[16561]: DEBUG Matched time template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,890 fail2ban.filter.datedetector[16561]: DEBUG Got time using template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,891 fail2ban.filter.datedetector[16561]: DEBUG Matched time template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,891 fail2ban.filter.datedetector[16561]: DEBUG Got time using template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,891 fail2ban.filter.datedetector[16561]: DEBUG Matched time template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,891 fail2ban.filter.datedetector[16561]: DEBUG Got time using template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,892 fail2ban.filter.datedetector[16561]: DEBUG Matched time template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,892 fail2ban.filter.datedetector[16561]: DEBUG Got time using template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,892 fail2ban.filter.datedetector[16561]: DEBUG Matched time template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,892 fail2ban.filter.datedetector[16561]: DEBUG Got time using template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,893 fail2ban.filter.datedetector[16561]: DEBUG Matched time template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,893 fail2ban.filter.datedetector[16561]: DEBUG Got time using template MONTH Day Hour:Minute:Second
2018-07-27 11:31:21,893 fail2ban.filter.datedetector[16561]: DEBUG Sorting the template list
2018-07-27 11:31:21,894 fail2ban.filter.datedetector[16561]: DEBUG Winning template: MONTH Day Hour:Minute:Second with 12350 hits
2018-07-27 11:31:21,894 fail2ban.filter [16561]: DEBUG Default Callback for Event:
2018-07-27 11:31:21,894 fail2ban.filter.datedetector[16561]: DEBUG Sorting the template list
2018-07-27 11:31:21,895 fail2ban.filter.datedetector[16561]: DEBUG Winning template: MONTH Day Hour:Minute:Second with 12350 hits

Mi váltja ki azt a két üzenetet a státusz alatt?

A második problémám, hogy a RoundCube percenként ellenőrzi az új e-mail-eket, ami a mail.log-ban látható is:
Jul 27 12:02:02 mailteszt dovecot: imap-login: Login: user=, method=PLAIN, rip=::1, lip=::1, mpid=18579, secured, session=<9XgDNPhxagAAAAAAAAAAAAAAAAAAAAAB>
Jul 27 12:02:02 mailteszt dovecot: imap(teszt@teszt.hu): Disconnected: Logged out in=1519 out=5479

De ezen IP támogatási probléma miatt elhal.
2018-07-27 09:48:03,338 fail2ban.filter [10985]: WARNING Unable to find a corresponding IP address for ::1: [Errno -9] Address family for hostname not supported
Olvastam egy fórumon, hogy a Fail2Ban ezen verziója nem támogatja az ipv6-ot, ezért nem kell foglalkozni a hibaüzenettel. Erre azért rákérdeznék, hogy biztos ne foglalkozzak vele?

A harmadik problémám mega következő hibaüzenet szintén a fail2ban.log-ból:
2018-07-27 09:48:02,398 fail2ban.filter [10985]: ERROR Error in FilterPyinotify callback: 'module' object has no attribute '_strptime_time'
Erre még nem is jöttem rá, hogy mikor és mi válthatja ki, ezért vele kapcsolatban teljesen tanácstalan vagyok.

Köszönöm, ha tudtok segíteni a kérdéseimben.

Üdv:
spgabor

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Mi váltja ki azt a két üzenetet a státusz alatt? - én nem pontosan értem, melyik kettőre gondolsz. Lehet, hogy csak én vagyok vaksi, de szerintem a státusz lekérdezésénél minden ok :)

ezért nem kell foglalkozni a hibaüzenettel. Erre azért rákérdeznék, hogy biztos ne foglalkozzak vele? - én másképp oldanám meg. Úgy emlékszem, a RoundCube tudja logolni a user eredeti IP címét is a "rip" mezőben (ill a user mezőben a usert...), és az viszont elég hasznos lehet. Mármint h a weben keresztüli próbálozásokat is ki tudod tiltani.

Erre még nem is jöttem rá, hogy mikor és mi válthatja ki, ezért vele kapcsolatban teljesen tanácstalan vagyok. - én sokszor már egyáltalán nem akarok rájönni, melyik problémát mi okozza. Csak simán utánanézek, és megoldom :). Ezt pl valszeg így meg lehet oldani: https://github.com/fail2ban/fail2ban/issues/755#issuecomment-280891470.

Azt látom, hogy nem ír hibát a státusznál. De az éles levelezőnkön a három alsó sor, amiben ezek szerepelnek, az nincs a státusznál:
Starting LSB: Start/stop fail2ban...
júl 27 09:43:10 mailteszt fail2ban[10572]: Starting authentication failure monitor: fail2ban.

Rákerestem a RoundCube elvileg pluginnel tudja az adatokat átadni. Gyorsan felraktam, de valami nem jó még mert nem nagyon akar működni.

Az utolsó hibára próbáltam a linkelt leírásban lévő backend = polling paramétert módosítani, de a hibaüzenetet később újra láttam.

Szerk.:
RoundCube most már szépen átadja az IP-t a lognak a dovecont_ident plugin-nek köszönöhetően. Most már csak a fail2ban-t kell beállítanom, hogy itt is menjen a tiltás, mert valamiért azt nem csinálja. De az már hétfőre marad valószínűleg..

Azt látom, hogy nem ír hibát a státusznál. De az éles levelezőnkön a három alsó sor, amiben ezek szerepelnek, az nincs a státusznál:

de itt hol van hiba? A Starting authentication failure monitor: fail2ban nem hiba, hanem a service elnevezése :).

Rákerestem a RoundCube elvileg pluginnel tudja az adatokat átadni

bocs, ez félrement: nem a mail.log-ot kell figyelned, hanem a RoundCube logját, a logs/userlogin fájl. Abban ilyen sorok vannak:

[06-Jul-2018 17:11:51 +0200]: <7ot62rsp> Failed login for jsmith from 172.60.40.1(X-Real-IP: 87.1.2.3,X-Forwarded-For: 87.1.2.3) in session 7ot51stquamhf6h2l085o5m1bq (error: 0)

A fail2ban-nak pedig van roundcube-auth modulja, ami ezt olvassa. A mail.log-ban levő ::1-et tedd whitelistre.

Amúgy úgy tudom 8-as Debian-hoz is van backport a fail2ban-ból, a 0.10-es ágból, és az már tud IPv6-ot.

Szia,

korábban frissítés előtt az üzenetek nem jelentek meg, azért volt furcsa és csak azért kérdeztem.

Fail2ban Roundcube esetében az utóbbira felraktam a dovecot-ident plugint, amivel a mail.log-ba átadja már az összes IP-t a Roundcube. Viszont ahogy írtad te is, a fail2ban filterei között található roundcube filterrel tiltom a bejelentkezési próbálkozásokat. Kicsit módosítottam a szabályt, mert nem működött a default, de most a tesztek alapján jó.

Most már csak azt kellene kipróbálnom, hogy tudom a bannolás logokat átadni a syslog szerverre, hogy kapjak értesítést ezekről.

Üdv:
spgabor

logtarget = SYSLOG

a fail2ban.conf-ba, és (elvileg) syslog-ba logol, onnantól meg gondolom már tudod.

Igen, köszönöm. Láttam korábban a beállítást a confban, de a végére akartam hagyni, amikor már megfelelően működik.

Viszont most felfedeztem egy hibát, a tiltásban.
A jail.local fájlban a roundcube beállításom a következő:

[roundcube-auth]
enabled = true
port = http,https
filter = roundcube-auth
action = iptables-multiport[name=roundcube, port="http,https"]
logpath = /var/log/roundcube/errors
maxretry = 3

A roundcube.conf pedig a következő regexet tartalmazza:

failregex = .*Login failed .* from \. .*$

A problémám az, hogy harmadik próbálkozás után mindig csak a http hozzáférést tiltja a tűzfalon. Ha https-en próbálkozom, akkor ugyanúgy tudok kapcsolódni. Ha az action és a port paramétereknél is szerepel a https is, akkor az miért nem kerül tiltásra?

Iptalbes-be a failban a következő sort írja be:
REJECT all -- 10.1.71.87 anywhere reject-with icmp-port-unreachable

Illetve még azt is észrevettem, hogy ha a jail.local-ban amelyik filternél van egyedi action paraméter beállítva, ott a fail2ban újraindításnál nem kapok értesítést email-ben jail leállásról és elindulásról. Bár a logban szerepel. A fenti hiba miatt a syslogot még nem állítottam be, továbbra is sima email értesítések jönnek .

Üdv:
spgabor