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é' />
[](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/molecule.sh.j2)
[](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/yamllint.sh.j2)
[](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/pylint.sh.j2)
[](https://github.com/ansibleguy/_meta_cicd/blob/latest/templates/usr/local/bin/cicd/ansiblelint.sh.j2)
[](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
- NFTables: Wiki
- Consulta el Ejemplo!
- Administra todo NFTables con Ansible: ansibleguy.infra_nftables
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
- DNS
- Temporizador de trabajo Cron
- Complementos
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: ::)..
```
Ansible Role to provision Add-Ons for NFTables on Linux servers
ansible-galaxy install ansibleguy.addons_nftables