ansibleguy.addons_nftables
<a href="https://netfilter.org/projects/nftables/index.html">
<img src="https://netfilter.org/images/netfilter-logo3.png" alt="Logo NFTables" width="400"/>
</a>
# Rôle Ansible - Add-ons NFTables
Rôle pour déployer des add-ons pour NFTables sur des serveurs 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='Offrez-moi 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)
Journaux Molecule : [Court](https://badges.ansibleguy.net/log/molecule_addons_nftables_test_short.log), [Complet](https://badges.ansibleguy.net/log/molecule_addons_nftables_test.log)
**Testé :**
* Debian 11
* Debian 12
## Installation
```bash
# dernière version
ansible-galaxy role install git+https://github.com/ansibleguy/addons_nftables
# depuis galaxy
ansible-galaxy install ansibleguy.addons_nftables
# ou pour un chemin de rôle personnalisé
ansible-galaxy install ansibleguy.addons_nftables --roles-path ./roles
Documentation
- NFTables : Wiki
- Découvrez l'Exemple !
- Gérer tout NFTables avec Ansible : ansibleguy.infra_nftables
Utilisation
Vous pouvez gérer la configuration de base de NFTables en utilisant le rôle ansibleguy.infra_nftables !
Configuration
Vous pouvez trouver un exemple plus détaillé ici : Exemple !
Définissez la configuration selon vos besoins :
nftables_addons:
enable:
dns: true # activer l'add-on DNS
dns_v6: true # activer le traitement IPv6 de l'add-on DNS
iplist: true # activer l'add-on IPList
iplist_v6: true # activer le traitement IPv6 de l'add-on IPList
# timer: true # vous pouvez désactiver la gestion des timers si vous souhaitez le faire vous-même
# systemd: true # mettre à jour les add-ons avec un timer systemd
# cron: false # mettre à jour les add-ons avec un cron-job
# include: true # désactiver l'inclusion automatique des add-ons dans /etc/nftables.conf
config:
iplists:
iplist_tor_exit_nodes: # nom 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' # extension utilisée par les fichiers de configuration nftables
path:
base:
config: '/etc/nftables.conf'
dir: '/etc/nftables.d'
addon:
dir: '/etc/nftables.d/addons'
timer:
systemd:
dns: '*:0/15' # mettre à jour toutes les 15 minutes
iplist: '*-*-* 00,12:00:00' # mettre à jour deux fois par jour
# cron:
# dns: # toutes les 15 minutes
# minute: '*/15'
# iplist: # deux fois par jour
# minute: '0'
# hour: '0,12'
Exécution
Exécutez le playbook :
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
Il y a aussi quelques tags utiles disponibles :
- dns
- iplist
- config (mettre à jour uniquement la configuration de l'addon)
Pour déboguer des erreurs, vous pouvez définir la variable 'debug' à l'exécution :
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Fonctionnalité
Configuration
Configuration par défaut :
- Timer Systemd pour exécuter les add-ons
- Journalisation dans Syslog
- Annexe pour les variables IPv6 : '_v6'
- Par exemple : variable 'repo_debian' => 'repo_debian_v6'
- Timers
- DNS => mis à jour toutes les 15 minutes
- Liste IP => mise à jour deux fois par jour
- Systemd
- ID Syslog : 'nftables_addon_{ addon }'
- Préfixe de Service/Timer : 'ansibleguy.addons_nftables-'
Choix par défaut :
- Timer pour mettre à jour automatiquement les variables
- Timer Systemd
- Ajout de l'inclusion dans '/etc/nftables.conf'
Options par défaut désactivées :
- Add-Ons
- DNS
- Traitement IPv6 du DNS
- Listes IP
- Traitement IPv6 de la liste IP
- DNS
- Timer Cron-Job
- Add-Ons
Infos
Remarque : ce rôle ne prend actuellement en charge que les systèmes basés sur Debian.
Remarque : La plupart des fonctionnalités du rôle peuvent être activées ou désactivées.
Pour toutes les options disponibles, voir la configuration par défaut située dans le fichier de défaut principal !
Avertissement : Tous les paramètres/variables que vous fournissez ne seront pas vérifiés pour leur validité. Une mauvaise configuration pourrait casser le rôle !
Remarque : Chaque variable définie sera créée car une valeur manquante pourrait casser votre configuration !
Si un enregistrement DNS ne peut pas être résolu ou si aucune entrée n'est retournée - une valeur de secours (IPv4 : 0.0.0.0, IPv6 : ::) sera définie.
```
Ansible Role to provision Add-Ons for NFTables on Linux servers
ansible-galaxy install ansibleguy.addons_nftables