dubzland.shorewall

Dubzland: Shorewall

Gitlab-Pipeline-Status (selbst gehostet)

Installiert und konfiguriert den Shorewall-Firewall-Builder.

Voraussetzungen

Ansible Version 2.0 oder höher. Benötigt das netaddr Python-Paket.

Rollenvariablen

Verfügbare Variablen sind unten aufgeführt, zusammen mit ihren Standardwerten (siehe defaults/main.yml für weitere Informationen):

dubzland_shorewall_conf

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

Optionen, die in /etc/shorewall/shorewall.conf gesetzt werden. Die Optionen können in Groß- oder Kleinbuchstaben angegeben werden (sie werden in Großbuchstaben in die Datei geschrieben). Siehe die shorewall.conf Man-Seite für weitere Informationen.

dubzland_shorewall_params

dubzland_shorewall_params: []

Liste von Schlüssel-Werte-Paaren, die in /etc/shorewall/params geschrieben werden. Weitere Informationen zur Verwendung von Params finden Sie in der Params Man-Seite.

dubzland_shorewall_zones

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

Zonen, die in /etc/shorewall/zones deklariert werden. Siehe die Zonen Man-Seite für weitere Informationen.

dubzland_shorewall_interfaces

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

Liste der Schnittstellen, für die Shorewall konfiguriert werden soll in /etc/shorewall/interfaces. Siehe die Schnittstellen Man-Seite für weitere Informationen.

dubzland_shorewall_hosts

dubzland_shorewall_hosts: []

Gibt Hosts an, die routbar, aber nicht direkt von der Firewall-Maschine aus zugänglich sind.

dubzland_shorewall_policies

dubzland_shorewall_policies:
  - source: "$FW"
    dest: alle
    policy: AKZEPTIEREN
  - source: net
    dest: alle
    policy: ABLEHNEN
  - source: alle
    dest: alle
    policy: ABLEHNEN
    log_level: info

Richtlinien, die von Shorewall verwendet werden, um die Standardaktion für ein bestimmtes Paket basierend auf seiner Zonenüberquerung zu bestimmen. Siehe die Richtlinien Man-Seite für weitere Informationen.

dubzland_shorewall_snat

dubzland_shorewall_snat:
  - action: MASKIEREN
    dest: eth0

Konfiguriert SNAT/Masquerading für iptables. Notwendig, wenn Sie eine Netzwerkadressübersetzung (NAT) für ausgehenden Datenverkehr durchführen möchten. Siehe die SNAT Man-Seite für weitere Informationen.

dubzland_shorewall_rules

dubzland_shorewall_rules:
  - section: NEU
    rulesets:
      - comment: PINGS
        rules:
          - action: Ping(AKZEPTIEREN)
            source: alle
            dest: alle
      - comment: Webverkehr
        rules:
          - action: Web(AKZEPTIEREN)
            source: $FW,lan
            dest: net

Der Kern dieser Rolle. Konfiguriert die Regeln, die Shorewall verwenden wird, um zu bestimmen, wie Pakete behandelt werden, die über seine überwachten Schnittstellen laufen. Siehe die Regeln Man-Seite für weitere Informationen.

Abhängigkeiten

Keine.

Beispiel Playbook

Gegeben eine Maschine mit 2 Netzwerkkarten (eth0 im Internet, eth1 im LAN):

- hosts: firewall
  become: ja
  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: alle
            policy: AKZEPTIEREN
          - source: net
            dest: alle
            policy: ABLEHNEN
          - source: alle
            dest: alle
            policy: ABLEHNEN
            log_level: info
        dubzland_shorewall_snat:
          - action: MASKIEREN
            dest: eth0
        dubzland_shorewall_rules:
          - section: NEU
            rulesets:
              - comment: Pings
                rules:
                  - action: Ping(AKZEPTIEREN)
                    source: alle
                    dest: alle
              - comment: Surfen im Web
                rules:
                  - action: Web(AKZEPTIEREN)
                    source: lan
                    dest: net
                  - action: AKZEPTIEREN
                    source: lan
                    dest: net
                    proto: udp
                    dest_ports:
                      - 80
                      - 443

Dies würde jedem ermöglichen, die Firewall-Maschine anzupingen, und LAN-Clients könnten Hosts im Internet anpingen. Alle LAN-Clients könnten außerdem im Internet surfen.

Lizenz

MIT

Autor

Über das Projekt

Shorewall for Debian

Installieren
ansible-galaxy install dubzland.shorewall
GitHub Repository
Lizenz
mit
Downloads
74
Besitzer
A lone greybeard