ansibleguy.addons_nftables

<a href="https://netfilter.org/projects/nftables/index.html">
<img src="https://netfilter.org/images/netfilter-logo3.png" alt="Logo de NFTables" width="400"/>
</a>

# Rol de Ansible - Complementos de NFTables

Rol para implementar complementos de NFTables en servidores Linux.

<a href='https://ko-fi.com/ansible0guy' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Cómprame un café' />

[![Estado de la Prueba de Molecule](https://badges.ansibleguy.net/addons_nftables.molecule.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/molecule.sh.j2)
[![Estado de la Prueba de YamlLint](https://badges.ansibleguy.net/addons_nftables.yamllint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/yamllint.sh.j2)
[![Estado de la Prueba de PyLint](https://badges.ansibleguy.net/addons_nftables.pylint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/pylint.sh.j2)
[![Estado de la Prueba de Ansible-Lint](https://badges.ansibleguy.net/addons_nftables.ansiblelint.svg)](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/ansiblelint.sh.j2)
[![Ansible Galaxy](https://badges.ansibleguy.net/galaxy.badge.svg)](https://galaxy.ansible.com/ui/standalone/roles/ansibleguy/addons_nftables)

Registros de Molecule: [Corto](https://badges.ansibleguy.net/log/molecule_addons_nftables_test_short.log), [Completo](https://badges.ansibleguy.net/log/molecule_addons_nftables_test.log)

**Probado en:**
* Debian 11
* Debian 12

## Instalación

```bash
# última versión
ansible-galaxy role install git+https://github.com/ansibleguy/addons_nftables

# desde galaxy
ansible-galaxy install ansibleguy.addons_nftables

# o a una ruta personalizada
ansible-galaxy install ansibleguy.addons_nftables --roles-path ./roles

Documentación


Uso

¡Puedes gestionar la configuración base de NFTables usando el rol ansibleguy.infra_nftables!

Configuración

Puedes encontrar un ejemplo más detallado aquí: Ejemplo!

Define la configuración según sea necesario:

nftables_addons:
  enable:
    dns: true  # habilitar complemento de DNS
    dns_v6: true  # habilitar procesamiento IPv6 del complemento de DNS
    iplist: true  # habilitar complemento de IPList
    iplist_v6: true  # habilitar procesamiento IPv6 del complemento de IPList
    # timer: true  # podrías deshabilitar la gestión de temporizadores si deseas hacerlo tú mismo
    # systemd: true  # actualizar complementos usando un temporizador de systemd
    # cron: false  # actualizar complementos usando un trabajo cron
    # include: true  # deshabilitar la inclusión automática de complementos en /etc/nftables.conf

  config:
    iplists:
      iplist_tor_exit_nodes:  # nombre de variable
        urls: ['https://check.torproject.org/torbulkexitlist']
        separator: "\n"
        comment: '#'
    dns_records:
      ntp_servers: ['0.europe.pool.ntp.org', '1.europe.pool.ntp.org']
      repo_debian: ['deb.debian.org', 'debian.map.fastlydns.net', 'security.debian.org']

  ext: 'nft'  # extensión utilizada por los archivos de configuración de nftables
  path:
    base:
      config: '/etc/nftables.conf'
      dir: '/etc/nftables.d'
    addon:
      dir: '/etc/nftables.d/addons'

  timer:
    systemd:
      dns: '*:0/15'  # actualizar cada 15 minutos
      iplist: '*-*-* 00,12:00:00'  # actualizar dos veces al día

    # cron:
    #   dns:  # cada 15 minutos
    #     minute: '*/15'
    #   iplist:  # dos veces al día
    #     minute: '0'
    #     hour: '0,12'

Ejecución

Ejecuta el playbook:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml

También hay algunas etiquetas útiles disponibles:

  • dns
  • iplist
  • config (solo actualizar la configuración de los complementos)

Para depurar errores, puedes establecer la variable 'debug' en tiempo de ejecución:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

Funcionalidad

  • Configuración

    • Configuración predeterminada:

      • Temporizador de Systemd para ejecutar los complementos
      • Registro en Syslog
      • Apéndice para variables IPv6: '_v6'
        • Por ejemplo: variable 'repo_debian' => 'repo_debian_v6'
      • Temporizadores
        • DNS => actualizado cada 15 minutos
        • IP-List => actualizado dos veces al día
      • Systemd
        • ID de Syslog: 'nftables_addon_{ addon }'
        • Prefijo de Servicio/Temporizador: 'ansibleguy.addons_nftables-'
    • Opt-in predeterminado:

      • Temporizador para actualizar automáticamente las variables
      • Temporizador de Systemd
      • Agregar inclusión en '/etc/nftables.conf'
    • Opt-out predeterminado:

      • Complementos
        • DNS
          • Procesamiento de DNS IPv6
        • IP-Lists
          • Procesamiento de IPv6 para IP-List
      • Temporizador de trabajo Cron

Información

  • Nota: este rol actualmente solo es compatible con sistemas basados en Debian.

  • Nota: La mayoría de la funcionalidad del rol se puede optar por activar o desactivar.

    Para todas las opciones disponibles, consulta la configuración predeterminada ubicada en el archivo principal de configuraciones!

  • Advertencia: No todas las configuraciones/variables que proporciones serán verificadas por su validez. Una mala configuración podría romper el rol.

  • Nota: Cada variable definida será creada ya que una variable que falta podría romper tu configuración.

    Si un registro DNS no puede resolverse o no se devuelve ninguna entrada, se establecerá un valor de reserva (IPv4: 0.0.0.0, IPv6: ::)..

```

Acerca del proyecto

Ansible Role to provision Add-Ons for NFTables on Linux servers

Instalar
ansible-galaxy install ansibleguy.addons_nftables
Licencia
other
Descargas
2k
Propietario
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg