owncloud mit fail2ban und email alerts per ssmtp absichern
Verfasst: 27.01.2016 14:38:43
Hallo zusammen,
zunächst mal, ich bin neu hier, benutze seit Jahren debian und ubuntu auf verschiedenen Rechnern und profitiere wie viele davon, dass man für fast alle Probleme eine Lösung in den wikis, foren, howtos usw. findet
ich möchte etwas beschreiben, was mich doch einige Suche gekostet hat, vielleicht, damit andere es schneller finden, vielleicht hat auch jemand eine einfachere Lösung:
Bei mir läuft ein Server - Debian Jessie - mit owncloud (aktuell 8.2), Zugang auf den Server von remote über ssh (keys) und https-Zugang zu der owncloud, d.h. für das web-ui, owncloud-clients und webdav
owncloud für lokalen und remote zugriff ist das einzige, wozu der Server da ist (außer Sicherungen von /home Verzeichnissen anderer lokaler Rechner über ssh)
ich wollte den https-Zugang gegen brute force attacks absichern und habe fail2ban installiert, und für die Versendung von E-Mail Benachrichtigungen ssmtp
[fragt mich nicht warum ssmtp, ich bin da aus anderen Gründen drauf gekommen]
der Eintrag in der /etc/fail2ban/jail.local dazu lautet
d.h. fail2ban sperrt die IP, von der ein misslungener login-Versuch kommt, für 1 Stunde.
owncloud muss entsprechend eingestellt werden, damit das log in dieser Datei richtig geführt wird, also in der config.php (bei mir /var/www/owncloud/config/config.php)
Problem war, dass ich auch wissen wollte, wenn tatsächlich jemand falsche Benutzerdaten ausprobiert, ohne dauernd das log anzuschauen
dazu habe ich ssmtp installiert (alle Befehle als root)
(dabei wird exim deinstalliert)
die /etc/ssmtp/ssmtp.conf so geändert:
dabei ist empfaenger@adresse.de die Email-Adresse die die alerts bekommen soll, senderalias@senderdomain die Adresse, über deren smtp Server die Mail verschickt wird, smtp-server die Adresse des smtp-Servers (ist bei mir der des ISP), mit den Einstellungen darüber ist port 587 zu wählen; bei AuthUser und AuthPass sind natürlich Benutzername und Passwort des E-Mail-Accounts senderalias@senderdomain gemeint
in der /etc/ssmtp/revaliases steht
d.h. root verschickt unter der Email-Adresse senderalias@senderdomain über den Server smtp-server.de port 587 die Emails mit den in der ssmtp.conf gespeicherten Zugangsdaten.
die /etc/ssmtp/ssmtp.conf hat bei mir den Besitzer root:root
zur Absicherung des E-Mail Zugangspasswortes habe ich die Rechte geändert
jetzt kann man mit mail [-Optionen] mails verschicken
Wenn man möchte, dass der Mail-Absender nicht root heißt sondern etwas spezifischer, kann man mit
etwas besseres eingeben
damit fail2ban mails verschickt, muss die /etc/fail2ban/jail.local angepasst werden:
und
und
leider reicht das noch nicht ganz. Fail2ban schickt erst Mails, wenn im Ordner /etc/fail2ban/action.d/
die Dateien mail-buffered.conf, mail.conf, mail-whois.conf, mail-whois-lines.conf der Eintrag dest auf
gesetzt ist. Fail2ban schickt jetzt eine Mail pro konfiguriertem jail beim Starten und beenden und eine Mail mit Informationen, wenn eine IP geblockt wird.
Warum es nur genau so funktioniert, ist mir nicht ganz klar, weil es wie erwähnt schlecht dokumentiert ist (bei ssmtp und fail2ban).
Ich finde das insgesamt für meine Zwecke eine schön schlanke Lösung und hoffe, es hilft, falls jemand mal ein ähnliches Problem hat.
zunächst mal, ich bin neu hier, benutze seit Jahren debian und ubuntu auf verschiedenen Rechnern und profitiere wie viele davon, dass man für fast alle Probleme eine Lösung in den wikis, foren, howtos usw. findet
ich möchte etwas beschreiben, was mich doch einige Suche gekostet hat, vielleicht, damit andere es schneller finden, vielleicht hat auch jemand eine einfachere Lösung:
Bei mir läuft ein Server - Debian Jessie - mit owncloud (aktuell 8.2), Zugang auf den Server von remote über ssh (keys) und https-Zugang zu der owncloud, d.h. für das web-ui, owncloud-clients und webdav
owncloud für lokalen und remote zugriff ist das einzige, wozu der Server da ist (außer Sicherungen von /home Verzeichnissen anderer lokaler Rechner über ssh)
ich wollte den https-Zugang gegen brute force attacks absichern und habe fail2ban installiert, und für die Versendung von E-Mail Benachrichtigungen ssmtp
[fragt mich nicht warum ssmtp, ich bin da aus anderen Gründen drauf gekommen]
der Eintrag in der /etc/fail2ban/jail.local dazu lautet
Code: Alles auswählen
[owncloud]
enabled = true
filter = owncloud
port = https
logpath = /var/www/owncloud/data/owncloud.log
bantime = 3600
maxretry = 1
owncloud muss entsprechend eingestellt werden, damit das log in dieser Datei richtig geführt wird, also in der config.php (bei mir /var/www/owncloud/config/config.php)
Code: Alles auswählen
'logfile' => '/var/www/owncloud/data/owncloud.log',
'loglevel' => 1,
'log_authfailip' => true,
dazu habe ich ssmtp installiert (alle Befehle als root)
Code: Alles auswählen
apt-get install ssmtp
die /etc/ssmtp/ssmtp.conf so geändert:
Code: Alles auswählen
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=empfaenger@adresse.de
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
UseTLS=YES
UseSTARTTLS=YES
mailhub=smtp-server:587
# Where will the mail seem to come from?
rewriteDomain=sender-domain
# The full hostname
hostname=sender-alias
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
AuthMethod=LOGIN
AuthUser=senderalias@senderdomain
AuthPass=Passwort
in der /etc/ssmtp/revaliases steht
Code: Alles auswählen
# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:senderalias@senderdomain:smtp-server.de:587
die /etc/ssmtp/ssmtp.conf hat bei mir den Besitzer root:root
zur Absicherung des E-Mail Zugangspasswortes habe ich die Rechte geändert
Code: Alles auswählen
chmod 640 /etc/ssmtp/ssmtp.conf
Wenn man möchte, dass der Mail-Absender nicht root heißt sondern etwas spezifischer, kann man mit
Code: Alles auswählen
chfn -f 'irgendein Name' root
damit fail2ban mails verschickt, muss die /etc/fail2ban/jail.local angepasst werden:
Code: Alles auswählen
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = empfaenger@adresse.de
# Name of the sender for mta actions
sendername = Fail2Ban
# Email address of the sender
sender = senderalias@senderdomain
Code: Alles auswählen
# email action. Since 0.8.1 upstream fail2ban uses sendmail
# MTA for the mailing. Change mta configuration parameter to mail
# if you want to revert to conventional 'mail'.
mta = mail
Code: Alles auswählen
# Choose default action. To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc$
# globally (section [DEFAULT]) or per specific section
action = %(action_mwl)s
die Dateien mail-buffered.conf, mail.conf, mail-whois.conf, mail-whois-lines.conf der Eintrag dest auf
Code: Alles auswählen
dest = empfaenger@adresse.de
Warum es nur genau so funktioniert, ist mir nicht ganz klar, weil es wie erwähnt schlecht dokumentiert ist (bei ssmtp und fail2ban).
Ich finde das insgesamt für meine Zwecke eine schön schlanke Lösung und hoffe, es hilft, falls jemand mal ein ähnliches Problem hat.