addons_nftables

<a href="https://netfilter.org/projects/nftables/index.html">
<img src="https://netfilter.org/images/netfilter-logo3.png" alt="Логотип NFTables" width="400"/>
</a>

# Ansible Роль - Дополнения для NFTables

Роль для развертывания дополнений для NFTables на серверах 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='Купите мне кофе' />

[![Статус теста 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)
[![Статус теста 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)
[![Статус теста 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)
[![Статус теста 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)

Логи Molecule: [Короткие](https://badges.ansibleguy.net/log/molecule_addons_nftables_test_short.log), [Полные](https://badges.ansibleguy.net/log/molecule_addons_nftables_test.log)

**Тестировалось на:**
* Debian 11
* Debian 12

## Установка

```bash
# последняя версия
ansible-galaxy role install git+https://github.com/ansibleguy/addons_nftables

# из galaxy
ansible-galaxy install ansibleguy.addons_nftables

# или для настраиваемого пути роли
ansible-galaxy install ansibleguy.addons_nftables --roles-path ./roles

Документация


Использование

Вы можете управлять основной конфигурацией NFTables с помощью роли ansibleguy.infra_nftables!

Конфигурация

Вы можете найти более подробный пример здесь: Пример!

Определите конфигурацию по мере необходимости:

nftables_addons:
  enable:
    dns: true  # включить дополнение DNS
    dns_v6: true  # включить обработку DNS для IPv6
    iplist: true  # включить дополнение IPList
    iplist_v6: true  # включить обработку IPList для IPv6
    # timer: true  # вы можете отключить управление таймером, если хотите делать это сами
    # systemd: true  # обновлять дополнения с помощью таймера systemd
    # cron: false  # обновлять дополнения с помощью cron-задачи
    # include: true  # отключить авто-включение дополнений в /etc/nftables.conf

  config:
    iplists:
      iplist_tor_exit_nodes:  # имя переменной
        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'  # расширение, используемое в конфигурационных файлах nftables
  path:
    base:
      config: '/etc/nftables.conf'
      dir: '/etc/nftables.d'
    addon:
      dir: '/etc/nftables.d/addons'

  timer:
    systemd:
      dns: '*:0/15'  # обновление каждые 15 минут
      iplist: '*-*-* 00,12:00:00'  # обновление дважды в день

    # cron:
    #   dns:  # каждые 15 минут
    #     minute: '*/15'
    #   iplist:  # дважды в день
    #     minute: '0'
    #     hour: '0,12'

Выполнение

Запустите плейбук:

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

Также доступны полезные теги:

  • dns
  • iplist
  • config (обновить только конфигурацию дополнения)

Чтобы отладить ошибки - вы можете установить переменную 'debug' во время выполнения:

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

Функциональность

  • Конфигурация

    • Стандартная конфигурация:

      • Таймер systemd для запуска дополнений
      • Логирование в Syslog
      • Приложение для переменных IPv6: '_v6'
        • Например: переменная 'repo_debian' => 'repo_debian_v6'
      • Таймеры
        • DNS => обновляется каждые 15 минут
        • IP-список => обновляется дважды в день
      • Systemd
        • Идентификатор Syslog: 'nftables_addon_{ addon }'
        • Префикс службы/таймера: 'ansibleguy.addons_nftables-'
    • Стандартные опции:

      • Таймер для автоматического обновления переменных
      • Таймер systemd
      • Добавление include в '/etc/nftables.conf'
    • Стандартные отключенные опции:

      • Дополнения
        • DNS
          • Обработка DNS для IPv6
        • IP-списки
          • Обработка IP-списка для IPv6
      • Таймер Cron-задачи

Информация

  • Примечание: эта роль в настоящее время поддерживает только системы на базе debian.

  • Примечание: большинство функций роли можно включить или отключить.

    Для всех доступных опций смотрите стандартную конфигурацию в главном файле настроек!

  • Предупреждение: Не каждая настройка/переменная, которую вы предоставляете, будет проверена на корректность. Плохая конфигурация может нарушить работу роли!

  • Примечание: Каждая определенная переменная будет создана так как отсутствие переменной может сломать вашу конфигурацию!

    Если DNS-запись не может быть разрешена или нет возвращаемого значения - будет установлено значение по умолчанию (IPv4: 0.0.0.0, IPv6: ::) .

```

О проекте

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

Установить
ansible-galaxy install ansibleguy/addons_nftables
Лицензия
other
Загрузки
1721
Владелец
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg