dubzland.shorewall

Dubzland: Shorewall

Stan wielkości pipeline Gitlab (hostowany samodzielnie)

Instaluje i konfiguruje zaporę ogniową Shorewall.

Wymagania

Wersja Ansible 2.0 lub wyższa. Wymaga pakietu python netaddr.

Zmienne roli

Dostępne zmienne są wymienione poniżej wraz z ich wartościami domyślnymi (więcej informacji w defaults/main.yml):

dubzland_shorewall_conf

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

Opcje do ustawienia w /etc/shorewall/shorewall.conf. Nazwy opcji można podawać zarówno wielkimi, jak i małymi literami (zostaną zapisane wielkimi literami w pliku). Więcej informacji w stronie podręcznika shorewall.conf.

dubzland_shorewall_params

dubzland_shorewall_params: []

Lista par klucz-wartość do zapisania w /etc/shorewall/params. Więcej informacji o używaniu params w stronie podręcznika.

dubzland_shorewall_zones

dubzland_shorewall_zones:
  - name: fw
    type: firewall
  - name: net
    type: ipv4
  - name: lan
    type: ipv4

Strefy do zadeklarowania w /etc/shorewall/zones. Więcej informacji w stronie podręcznika.

dubzland_shorewall_interfaces

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

Lista interfejsów, które Shorewall powinien skonfigurować w /etc/shorewall/interfaces. Więcej informacji w stronie podręcznika.

dubzland_shorewall_hosts

dubzland_shorewall_hosts: []

Określa hosty, które są routowalne, ale nie bezpośrednio dostępne dla maszyny zapory.

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

Polityki używane przez Shorewall do określenia domyślnego działania dla danego pakietu w zależności od przejścia przez strefy. Więcej informacji w stronie podręcznika polityk.

dubzland_shorewall_snat

dubzland_shorewall_snat:
  - action: MASQUERADE
    dest: eth0

Konfiguruje SNAT/Masquerading dla iptables. Niezbędne, jeśli chcesz przeprowadzić translację adresów sieciowych (NAT) dla ruchu wychodzącego. Więcej informacji w stronie podręcznika snat.

dubzland_shorewall_rules

dubzland_shorewall_rules:
  - section: NEW
    rulesets:
      - comment: PINGS
        rules:
          - action: Ping(ACCEPT)
            source: all
            dest: all
      - comment: Ruch internetowy
        rules:
          - action: Web(ACCEPT)
            source: $FW,lan
            dest: net

Główna część tej roli. Konfiguruje zasady, które Shorewall będzie używać, aby określić, jak obsługiwać pakiety przechodzące przez jego monitorowane interfejsy. Więcej informacji w stronie podręcznika zasad.

Zależności

Brak.

Przykładowy playbook

Dla maszyny z 2 kartami sieciowymi (eth0 w internecie, eth1 w LAN):

- hosts: firewall
  become: yes
  roles:
    - role: dubzland-shorewall
      vars:
        dubzland_shorewall_zones:
          - name: fw
            type: firewall
          - 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: Pingi
                rules:
                  - action: Ping(ACCEPT)
                    source: all
                    dest: all
              - comment: Przeglądanie internetu
                rules:
                  - action: Web(ACCEPT)
                    source: lan
                    dest: net
                  - action: ACCEPT
                    source: lan
                    dest: net
                    proto: udp
                    dest_ports:
                      - 80
                      - 443

To pozwoli wszystkim na pingowanie maszyny zaporowej oraz klientom w LAN na pingowanie hostów w internecie. Wszyscy klienci w LAN będą mogli przeglądać strony internetowe.

Licencja

MIT

Autor

O projekcie

Shorewall for Debian

Zainstaluj
ansible-galaxy install dubzland.shorewall
Licencja
mit
Pobrania
74
Właściciel
A lone greybeard