Pierre-Alain Bandinelli : Entretenir et sécuriser ownCloud avec logrotate et fail2ban
vendredi 2 janvier 2015 à 14:02On ne présente plus ownCloud, plateforme de stockage et partage de fichiers fort aboutie. Pour ceux qui hébergent leur propre instance d'ownCloud, voici deux petites astuces pour bien entretenir et sécuriser l'installation.
La rotation des logs
La rotation des logs évite que le fichier owncloud.log n'occupe une place trop importante sur votre serveur. On pourra utiliser logrorate pour effectuer la rotation automatique et régulière.
Dans /etc/logrotate.d/owncloud, on placera le paramétrage (assez explicite) suivant :
/var/www/owncloud/data/owncloud.log { weekly missingok rotate 8 compress notifempty create 640 www-data www-data }
et le tour est joué. On prendra bien sûr le soin d'adapter le chemin vers le fichier et le nom de l'utilisateur créateur du fichier (ici www-data car c'est l'utilisateur propriétaire du serveur web sous Debian) !
Surveillance avec fail2ban
Fail2ban est capable de détecter des connexions non autorisées et de bannir (via iptables) l'adresse IP offensante. Un éventuel attaquant n'aura ainsi pas tout le loisir de tester les combinaisons nom d'utilisateur / mot de passe à son aise. Concrètement, on paramètre fail2ban pour vérifier régulièrement un fichier de log et pour détecter dans ce fichier les tentatives d'accès frauduleuses (i.e. qui se répètent). Puis, quand une tentative frauduleuse est repérée, on bannit l'adresse IP correspondante.
Nous allons créer un nouveau filtre pour fail2ban dans /etc/fail2ban/filter.d/owncloud.conf :
[Definition] failregex = {"app":"core","message":"Login failed:(.*)IP: ''
Si l'accès est contrôlé par un proxy, on pourra modifier la règle pour repérer l'adresse IP associée au champ X-Forwarded-for :
[Definition] failregex = {"app":"core","message":"Login failed:(.*)X-Forwarded-For: ''
On peut alors créer une nouvelle règle dans /etc/fail2ban/jail.local :
[owncloud] enabled = true port = http,https filter = owncloud logpath = /var/www/owncloud/data/owncloud.log maxretry = 6
et désormais, toute tentative d'accès répétée conduira à l'exclusion de l'IP douteuse !
Original post of Pierre-Alain Bandinelli.Votez pour ce billet sur Planet Libre.
Articles similaires
- Pierre-Alain Bandinelli : Entretenir et sécuriser Roundcube avec logrotate et fail2ban (26/10/2013)
- Pierre-Alain Bandinelli : Installation et paramétrage d'un serveur avec conteneurs LXC chez Online.net/Dedibox (10/11/2013)
- Pierre-Alain Bandinelli : Obtenir une bonne note chez SSLLabs avec Pound (10/11/2014)
- Guillaume Vaillant : OpenVPN: log et fail2ban (06/01/2014)
- Pierre-Alain Bandinelli : Apache derrière un 'reverse proxy' : la magie du X-Forwarded-For (16/10/2013)