nickjj.fail2ban

Qu'est-ce qu'ansible-fail2ban ? Statut de construction

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

À propos du projet

Install and configure fail2ban.

Installer
ansible-galaxy install nickjj.fail2ban
Licence
mit
Téléchargements
50.7k
Propriétaire
Currently a self employed freelance developer & teacher. I mainly work with Flask, Rails, Bash, Docker, Kubernetes, Ansible & Terraform. Also a @docker captain.