nickjj.fail2ban
Qu'est-ce qu'ansible-fail2ban ? 
C'est un rôle ansible pour installer et configurer fail2ban.
Quel problème cela résout-il et pourquoi est-ce utile ?
La sécurité est importante et fail2ban est un excellent outil pour renforcer la sécurité de votre serveur avec peu ou pas de configuration.
Variables du rôle
Voici une liste des valeurs par défaut avec une description de ce qu'elles font.
# Quel niveau de journalisation doit-il avoir ?
# 1 = ERREUR, 2 = AVERTIR, 3 = INFO, 4 = DEBUG
fail2ban_loglevel: 3
# Où les sorties de journal doivent-elles être envoyées ?
# SYSLOG, STDERR, STDOUT, fichier
fail2ban_logtarget: /var/log/fail2ban.log
# Où le socket doit-il être créé ?
fail2ban_socket: /var/run/fail2ban/fail2ban.sock
# Quelle adresse IP, marque CIDR ou hôte DNS doit être ignoré ?
fail2ban_ignoreip: 127.0.0.1/8
# Combien de temps en secondes la sanction doit-elle durer ?
fail2ban_bantime: 600
# Combien de fois peuvent-ils essayer avant d'être bannis ?
fail2ban_maxretry: 6
# Comment les changements de fichiers doivent-ils être détectés ?
# gamin, polling, auto
fail2ban_backend: polling
# Où les rapports par e-mail doivent-ils être envoyés ?
fail2ban_destemail: root@localhost
# Comment la sanction doit-elle être appliquée ?
# iptables, iptables-new, iptables-multiport, shorewall, etc.
fail2ban_banaction: iptables-multiport
# Quelle action d'e-mail doit être utilisée ?
# sendmail ou mail
fail2ban_mta: sendmail
# Quel doit être le protocole par défaut ?
fail2ban_protocol: tcp
# Dans quelle chaîne les JUMPs doivent-ils être ajoutés dans iptables-* ?
fail2ban_chain: INPUT
# Quelle doit être l'action de sanction par défaut ?
# action_, action_mw, action_mwl
fail2ban_action: action_
# Quels services fail2ban doit-il surveiller ?
# Vous pouvez définir fail2ban_services comme une chaîne vide pour ne rien surveiller.
# Vous pouvez définir plusieurs services comme une liste yaml standard.
fail2ban_services:
# Le nom du service
# OBLIGATOIRE.
- name: ssh
# Est-ce activé ?
# OPTIONNEL : Par défaut "true" (doit être une chaîne).
enabled: "true"
# Quel port utilise le service ?
# Séparez plusieurs ports par une virgule, sans espaces.
# OBLIGATOIRE.
port: ssh
# Quel protocole utilise le service ?
# OPTIONNEL : Par défaut, c'est le protocole listé ci-dessus.
protocol: tcp
# Quel filtre doit-il utiliser ?
# OBLIGATOIRE.
filter: sshd
# Quel chemin de journal doit-il surveiller ?
# OBLIGATOIRE.
logpath: /var/log/auth.log
# Combien de fois peuvent-ils essayer avant d'être bannis ?
# OPTIONNEL : Par défaut, c'est le maxretry mentionné ci-dessus.
maxretry: 6
# Quelle doit être l'action de sanction par défaut ?
# OPTIONNEL : Par défaut, c'est l'action listée ci-dessus.
action: action_
# Comment la sanction doit-elle être appliquée ?
# OPTIONNEL : Par défaut, c'est la banaction listée ci-dessus.
banaction: iptables-multiport
# Le temps en secondes pour mettre en cache l'apt-update.
apt_cache_valid_time: 86400
Exemple de playbook
Pour cet exemple, supposons que vous ayez un groupe appelé app et que vous ayez un fichier site.yml
typique.
Pour utiliser ce rôle, éditez votre fichier site.yml
pour qu'il ressemble à ceci :
---
- name: s'assurer que les serveurs d'application sont configurés
- hosts: app
roles:
- { role: nickjj.fail2ban, sudo: true, tags: fail2ban }
Disons que vous voulez modifier quelques valeurs, vous pouvez le faire en ouvrant ou en créant group_vars/app.yml
, qui se trouve par rapport à votre répertoire inventory
et en le faisant ressembler à ceci :
---
fail2ban_services:
- name: ssh
port: ssh
filter: sshd
logpath: /var/log/auth.log
- name: postfix
port: smtp,ssmtp
filter: postfix
logpath: /var/log/mail.log
Installation
$ ansible-galaxy install nickjj.fail2ban
Exigences
Testé sur ubuntu 12.04 LTS, mais cela devrait fonctionner sur d'autres versions similaires.
Ansible galaxy
Vous pouvez le trouver sur l'ansible galaxy officiel si vous souhaitez le noter.
Licence
MIT
ansible-galaxy install nickjj.fail2ban