Fail2ban Stratégie Backup

De EjnTricks

L'application Fail2ban est utilisée afin de bannir automatiquement les adresses IP, par ajout de règles dans Iptables, tentant de s'introduire sur une machine. Son installation est assez simple, mais elle nécessite quelques configurations. Cet article présente la mise en place d'une telle stratégie, sous Ubuntu, permettant de réaliser:

  • 1 sauvegarde complète une fois par mois, les configurations ne changeant pas régulièrement.
  • Export des sauvegardes vers un serveur "externe" via FTP.
  • 1 seule sauvegarde complète est conservée.

La synchronisation des sauvegardes s'effectue à l'aide de l'outil de backup Duplicity. Le fait d'externaliser les sauvegardes apporte une garantie supplémentaire. En effet, si le serveur venait à être en panne, les sauvegardes de Fail2ban resteront disponibles.

La planification s'effectue à l'aide de Anacron.


Hand-icon.png Votre avis

Current user rating: 74/100 (4 votes)

 You need to enable JavaScript to vote


Viewer icon.png Objectif

Les fichiers de configurations, pour une installation sous Ubuntu, se situe dans le répertoire /etc/fail2ban. Ce répertoire, et uniquement celui-ci, va être sauvegardé.

Sous Ubuntu, il existe le répertoire /var/backups, utilisé par aptitude, dpkg, OpenLDAP ... Cependant, il ne sera pas utilisé dans le cadre de cet article, pour ne pas engendrer d'éventuels effets de bord. Tous les scripts et données seront stockés dans un nouveau répertoire /var/opt/backups (pour l'ensemble des stratégies) et plus particulièrement dans le répertoire /var/opt/backups/fail2ban. Concernant les logs, elles seront toutes placées dans le répertoire /var/log/backups.

#sudo mkdir /var/opt/backups
#sudo mkdir /var/opt/backups/fail2ban
#sudo chmod 740 /var/opt/backups/fail2ban
#sudo chown root:root /var/opt/backups/fail2ban
#sudo mkdir /var/log/backups


Icon-database-process.png Sauvegardes

Les configurations, et installations, sont sauvegardées à l'aide de l'outil Duplicity.

Command-icon.png Source

Le script fail2ban_backup.sh est mis en place, avec des sécurités autorisant uniquement le compte root à le modifier, dans le répertoire /var/opt/backups/fail2ban avec le code suivant:

Attention à l'utilisation de l'instruction export, surtout pour la PASSPHRASE. En effet, si celle-ci contient des espaces, il est impératif de la placer entre le caractère ".

Le script est créé avec un droit de modification et exécution uniquement pour le compte root:

#sudo chmod 740 /var/opt/backups/fail2ban/fail2ban_backup.sh
#sudo chown root:root /var/opt/backups/fail2ban/fail2ban_backup.sh

Le fonctionnement de ce script est assez simple. Deux variables d'environnement sont mises en place:

  • PASSPHRASE: Phrase pour le cryptage des données par duplicity.
  • FTP_PASSWORD: Le mot de passe FTP utilisé pour se connecté via duplicity.

La première instruction, avec l'argument remove-all-but-n-full 1, va conserver uniquement la dernière sauvegarde complète. Puis la seconde instruction, avec l'argument full effectue une sauvegarde complète sur répertoire /etc/fail2ban.

Les fichiers sont ensuite synchronisés sur un serveur FTP, configuré par la value HOST, en utilisant le login FTP_LOGIN et le mot de passe USER_PASSWORD placé dans la variable FTP_PASSWORD. Les sauvegardes sont stockées à l'emplacement backup/fail2ban à la racine du compte après connexion sur FTP.

Enfin, les exécutions sont tracées dans la log /var/log/backups/fail2ban_backup.log.

Examples-icon.png Exemples

Le script n'accepte aucun argument. L'exécution s'effectue simplement par la ligne suivante:

#./fail2ban_backup.sh


Scheduled-Tasks-icon.png Planification

Une fois que le script de sauvegarde est mis en place, il est possible de l'exécuter manuellement. Mais l'objectif est de l'exécuter automatiquement et régulièrement sans s'en préoccuper. Dans le cadre de cette implémentation, la planification est réalisée à l'aide de l'outil Anacron disponible sur les systèmes Linux. Afin d'exécuter le script mensuellement, il suffit de créer un lien dans le répertoire /etc/cron.monthly/

#sudo ln -s /var/opt/backups/fail2ban/fail2ban_backup.sh /etc/cron.monthly/fail2ban


Icon-log.png Gestions des logs

Un fichier de log est créé par le script mis en place, à l'emplamcent /var/log/backups/fail2ban_backup.log. Comme pour l'ensemble des produits, une rotation de ces logs est mise en place, à l'aide de l'outil Logrotate. La configuration permet une rotation annuelle, en conservant 1 rotation, avec un accès en modification au compte root.

Cette configuration est mise en place dans le fichier fail2ban_backup, sous le répertoire /etc/logrotate.d

/var/log/backups/fail2ban_backup.log {
        yearly
        missingok
        rotate 1
        compress
        delaycompress
        notifempty
        create 640 root root
}