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é' />

[![Statut du Test 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)
[![Statut du Test 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)
[![Statut du Test 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)
[![Statut du Test 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)
[![Galaxy d'Ansible](https://badges.ansibleguy.net/galaxy.badge.svg)](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


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
      • Timer Cron-Job

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.

```

À propos du projet

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

Installer
ansible-galaxy install ansibleguy.addons_nftables
Licence
other
Téléchargements
2k
Propriétaire
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg