nickjj.fail2ban

¿Qué es ansible-fail2ban? Estado de la Construcción

Es un rol de ansible para instalar y configurar fail2ban.

¿Qué problema resuelve y por qué es útil?

La seguridad es importante, y fail2ban es una herramienta excelente para reforzar la seguridad de tu servidor con una configuración mínima o incluso sin configuración.

Variables del rol

A continuación se presenta una lista de valores predeterminados junto con una descripción de lo que hacen.

# ¿Qué nivel de registro debería tener la salida?
# 1 = ERROR, 2 = WARN, 3 = INFO, 4 = DEBUG
fail2ban_loglevel: 3

# ¿Dónde se deben enviar las salidas de registro?
# SYSLOG, STDERR, STDOUT, archivo
fail2ban_logtarget: /var/log/fail2ban.log

# ¿Dónde se debe crear el socket?
fail2ban_socket: /var/run/fail2ban/fail2ban.sock

# ¿Qué dirección IP, marca CIDR o host DNS debe ser ignorado?
fail2ban_ignoreip: 127.0.0.1/8

# ¿Cuánto tiempo en segundos debe durar la prohibición?
fail2ban_bantime: 600

# ¿Cuántas veces pueden intentarlo antes de ser prohibidos?
fail2ban_maxretry: 6

# ¿Cómo se deben detectar los cambios en los archivos?
# gamin, polling, auto
fail2ban_backend: polling

# ¿A dónde se deben enviar los informes por correo electrónico?
fail2ban_destemail: root@localhost

# ¿Cómo debe aplicarse la prohibición?
# iptables, iptables-new, iptables-multiport, shorewall, etc.
fail2ban_banaction: iptables-multiport

# ¿Qué acción de correo electrónico debe usarse?
# sendmail o mail
fail2ban_mta: sendmail

# ¿Cuál debería ser el protocolo predeterminado?
fail2ban_protocol: tcp

# ¿En qué cadena se agregarían los JUMPs en iptables-*?
fail2ban_chain: INPUT

# ¿Cuál debería ser la acción de prohibición predeterminada?
# action_, action_mw, action_mwl
fail2ban_action: action_

# ¿Qué servicios debería monitorear fail2ban?
# Puedes definir fail2ban_services como una cadena vacía para no monitorizar nada.
# Puedes definir múltiples servicios como una lista estándar de yaml.
fail2ban_services:
    # El nombre del servicio
    # OBLIGATORIO.
  - name: ssh

    # ¿Está habilitado?
    # OPCIONAL: Por defecto es "true" (debe ser una cadena).
    enabled: "true"

    # ¿Qué puerto usa el servicio?
    # Separa múltiples puertos con una coma, sin espacios.
    # OBLIGATORIO.
    port: ssh

    # ¿Qué protocolo usa el servicio?
    # OPCIONAL: Por defecto es el protocolo mencionado arriba.
    protocol: tcp

    # ¿Qué filtro debería usar?
    # OBLIGATORIO.
    filter: sshd

    # ¿Qué ruta de registro debería monitorear?
    # OBLIGATORIO.
    logpath: /var/log/auth.log

    # ¿Cuántas veces pueden intentarlo antes de ser prohibidos?
    # OPCIONAL: Por defecto es el maxretry mencionado arriba.
    maxretry: 6

    # ¿Cuál debería ser la acción de prohibición predeterminada?
    # OPCIONAL: Por defecto es la acción mencionada arriba.
    action: action_

    # ¿Cómo debería aplicarse la prohibición?
    # OPCIONAL: Por defecto es la acción de prohibición mencionada arriba.
    banaction: iptables-multiport

# La cantidad en segundos para almacenar en caché apt-update.
apt_cache_valid_time: 86400

Ejemplo de playbook

Para este ejemplo, supongamos que tienes un grupo llamado app y tienes un archivo típico site.yml.

Para usar este rol, edita tu archivo site.yml para que se vea algo así:

---
- name: asegurar que los servidores de la app estén configurados
- hosts: app

  roles:
    - { role: nickjj.fail2ban, sudo: true, tags: fail2ban }

Supongamos que quieres editar algunos valores, puedes hacerlo abriendo o creando group_vars/app.yml, que se encuentra relativo a tu directorio de inventory, y hacerlo ver algo como esto:

---
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

Instalación

$ ansible-galaxy install nickjj.fail2ban

Requisitos

Probado en Ubuntu 12.04 LTS, pero debería funcionar en otras versiones similares.

Ansible galaxy

Puedes encontrarlo en el ansible galaxy si deseas calificarlo.

Licencia

MIT

Acerca del proyecto

Install and configure fail2ban.

Instalar
ansible-galaxy install nickjj.fail2ban
Licencia
mit
Descargas
50.7k
Propietario
Currently a self employed freelance developer & teacher. I mainly work with Flask, Rails, Bash, Docker, Kubernetes, Ansible & Terraform. Also a @docker captain.