Fail2Ban und Owncloud 8.2.x und 9.x

ownCloud ist eine freie Software für das Speichern von Daten (Filehosting) auf einem eigenen Server. Bei Einsatz eines entsprechenden Clients wird dieser automatisch mit einem lokalen Verzeichnis synchronisiert. Dadurch kann von mehreren Rechnern auf einen konsistenten Datenbestand zugegriffen werden.
(Quelle: Wikipedia)

Um fehlgeschlagene Anmeldungen mit fail2ban abzufangen, müssen neue Filterregeln definiert werden.

Filterdatei erstellen: /etc/fail2ban/filter.d/owncloud.conf

[Definition]
failregex={"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: '.*' (Remote IP: '')","level":2,"time":".*"}

ignoreregex =

Nun kann der Filter in die Jail Definitionen aufgenommen werden /etc/fail2ban/jail.conf:

[owncloud]
enabled = true
filter  = owncloud
port    =  http,https
logpath = /var/www/owncloud/data/owncloud.log

Es sollte darauf geachtet werden, dass, sollte der Server nicht unter der UTC laufen, die config.php von Owncloud angepasst werden muss.

/**
 * The default timezone for logfiles is UTC. You may change this; see
 * http://php.net/manual/en/timezones.php
 */
'logtimezone' => 'Europe/Berlin',

https://github.com/owncloud/

Falls keine Fehlanmeldungen im Log auftauchen, muss eventuell ebenfalls das Loglevel angepasst werden:

/**
 * Loglevel to start logging at. Valid values are: 0 = Debug, 1 = Info, 2 =
 * Warning, 3 = Error. The default value is Warning.
 */
'loglevel' => 2,

https://github.com/owncloud/

Fail2Ban neustarten
service fail2ban restart

Testen kann man die Konfiguration via
fail2ban-regex /var/www/owncloud/data/owncloud.log /etc/fail2ban/filter.d/owncloud.conf

Fail2Ban und Rainloop

Rainloop ist ein schlanker Mailclient, der sich via IMAP an diverse Anbieter koppeln lässt.

Um die Nutzung abzusichern und Einbruchsversuche zu blockieren, kann es in Kombination mit Fail2Ban verwendet werden.

Anpassungen in der jail.conf:

[rainloop]

enabled = true
filter = rainloop
port = http,https
logpath = /var/www/rainloop/data/_data_/_default_/logs/fail2ban/auth.log
maxretry = 3

Änderungen an Rainloop (../rainloop/data/_data_/_default_/configs/application.ini):

auth_logging = On
auth_logging_filename = "fail2ban/auth.log"
auth_logging_format = "[{date:Y-m-d H:i:s}] Auth failed: ip={request:ip} user={imap:login} host={imap:host} port={imap:port}"

Filter für Fail2Ban (/etc/fail2ban/filter.d/rainloop.conf)

failregex = Auth failed: ip=<HOST> user=.* host=.* port=.*
ignoreregex =

Sollten die Jails nicht greifen, kann es am falschen Zeitstempel im Log liegen. Dazu in der application.ini “timeffset” anpassen (time_offset = 2 // 2h => UTC+2).