shorewall

Dubzland: Shorewall

Статус пайплайна Gitlab (самостоятельный хостинг)

Устанавливает и настраивает конструктор брандмауэра Shorewall.

Требования

Версия Ansible 2.0 или выше. Требуется пакет Python netaddr.

Переменные роли

Доступные переменные перечислены ниже вместе с их значениями по умолчанию (см. defaults/main.yml для получения дополнительной информации):

dubzland_shorewall_conf

dubzland_shorewall_conf:
  startup_enabled: "Да"
  verbosity: 1
  log_level: '"info"'
  log_martians: "Да"
  log_verbosity: 2
  log_zone: Оба
  logfile: /var/log/shorewall
  logformat: '"%s(%d) %s "'

Опции, которые должны быть установлены в /etc/shorewall/shorewall.conf. Имена опций могут быть указаны как в верхнем, так и в нижнем регистре (они будут записаны в файле заглавными буквами). Дополнительную информацию см. на странице man для shorewall.conf.

dubzland_shorewall_params

dubzland_shorewall_params: []

Список пар ключ-значение, которые будут записаны в /etc/shorewall/params. Для получения дополнительной информации об использовании параметров см. на странице man для params.

dubzland_shorewall_zones

dubzland_shorewall_zones:
  - name: fw
    type: брандмауэр
  - name: net
    type: ipv4
  - name: lan
    type: ipv4

Зоны, которые должны быть объявлены в /etc/shorewall/zones. Дополнительную информацию см. на странице man для zones.

dubzland_shorewall_interfaces

dubzland_shorewall_interfaces:
  - name: eth0
    zone: net
    options:
      - tcpflags
      - nosmurfs
      - routefilter
      - "sourceroute=0"
  - name: eth1
    zone: lan
    options:
      - tcpflags
      - nosmurfs
      - routefilter

Список интерфейсов, для которых должен быть настроен shorewall в /etc/shorewall/interfaces. Дополнительную информацию см. на странице man для interfaces.

dubzland_shorewall_hosts

dubzland_shorewall_hosts: []

Указывает на хосты, доступные маршрутизации, но не напрямую доступные для брандмауэра.

dubzland_shorewall_policies

dubzland_shorewall_policies:
  - source: "$FW"
    dest: all
    policy: ACCEPT
  - source: net
    dest: all
    policy: REJECT
  - source: all
    dest: all
    policy: REJECT
    log_level: info

Политики, используемые Shorewall для определения действия по умолчанию для данного пакета в зависимости от его маршрута. Дополнительную информацию см. на странице man для policies.

dubzland_shorewall_snat

dubzland_shorewall_snat:
  - action: MASQUERADE
    dest: eth0

Настраивает SNAT/маскировку для iptables. Необходимо, если вы хотите выполнять трансляцию сетевых адресов (NAT) для исходящего трафика. Дополнительную информацию см. на странице man для snat.

dubzland_shorewall_rules

dubzland_shorewall_rules:
  - section: NEW
    rulesets:
      - comment: PINGS
        rules:
          - action: Ping(ACCEPT)
            source: all
            dest: all
      - comment: Веб-трафик
        rules:
          - action: Web(ACCEPT)
            source: $FW,lan
            dest: net

Основная часть этой роли. Настраивает правила, которые Shorewall будет использовать для определения того, как обрабатывать пакеты, проходящие через его контролируемые интерфейсы. Дополнительную информацию см. на странице man для rules.

Зависимости

Нет.

Пример Playbook

Для машины с 2 сетевыми интерфейсами (eth0 — на интернете, eth1 — в локальной сети):

- hosts: firewall
  become: yes
  roles:
    - role: dubzland-shorewall
      vars:
        dubzland_shorewall_zones:
          - name: fw
            type: брандмауэр
          - name: net
            type: ipv4
          - name: lan
            type: ipv4
        dubzland_shorewall_interfaces:
          - name: eth0
            zone: net
            options:
              - tcpflags
              - nosmurfs
              - routefilter
              - "sourceroute=0"
          - name: eth1
            zone: lan
            options:
              - tcpflags
              - nosmurfs
              - routefilter
        dubzland_shorewall_policies:
          - source: "$FW"
            dest: all
            policy: ACCEPT
          - source: net
            dest: all
            policy: REJECT
          - source: all
            dest: all
            policy: REJECT
            log_level: info
        dubzland_shorewall_snat:
          - action: MASQUERADE
            dest: eth0
        dubzland_shorewall_rules:
          - section: NEW
            rulesets:
              - comment: Пинги
                rules:
                  - action: Ping(ACCEPT)
                    source: all
                    dest: all
              - comment: Веб-серфинг
                rules:
                  - action: Web(ACCEPT)
                    source: lan
                    dest: net
                  - action: ACCEPT
                    source: lan
                    dest: net
                    proto: udp
                    dest_ports:
                      - 80
                      - 443

Это позволит всем пинговать машину брандмауэра, а клиентам в локальной сети — пинговать хосты в интернете. Все клиенты из локальной сети также смогут серфить в интернете.

Лицензия

MIT

Автор

О проекте

Shorewall for Debian

Установить
ansible-galaxy install dubzland/ansible-role-shorewall
Лицензия
mit
Загрузки
60
Владелец
A lone greybeard