dubzland.shorewall

Dubzland : Shorewall

Statut de la pipeline Gitlab (auto-hébergé)

Installe et configure le constructeur de pare-feu Shorewall.

Exigences

Version d'Ansible 2.0 ou supérieure. Nécessite le package python netaddr.

Variables de Rôle

Les variables disponibles sont répertoriées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml pour plus d'informations) :

dubzland_shorewall_conf

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

Options à définir dans /etc/shorewall/shorewall.conf. Les noms d'option peuvent être spécifiés en majuscules ou minuscules (ils seront écrits en majuscules dans le fichier). Voir la page de manuel shorewall.conf pour plus d'infos.

dubzland_shorewall_params

dubzland_shorewall_params: []

Liste des paires clé-valeur à écrire dans /etc/shorewall/params. Pour plus d'informations sur l'utilisation des paramètres, voir la page de manuel params.

dubzland_shorewall_zones

dubzland_shorewall_zones:
  - name: fw
    type: pare-feu
  - name: net
    type: ipv4
  - name: lan
    type: ipv4

Zones à déclarer dans /etc/shorewall/zones. Voir la page de manuel zones pour plus d'infos.

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 des interfaces à configurer pour Shorewall dans /etc/shorewall/interfaces. Voir la page de manuel interfaces pour plus d'infos.

dubzland_shorewall_hosts

dubzland_shorewall_hosts: []

Spécifie les hôtes accessibles par le réseau, mais pas directement par la machine pare-feu.

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

Politiques utilisées par Shorewall pour déterminer l'action par défaut à prendre pour un paquet donné en fonction de sa zone de passage. Voir la page de manuel policy pour plus d'infos.

dubzland_shorewall_snat

dubzland_shorewall_snat:
  - action: MASQUERADE
    dest: eth0

Configure SNAT/Masquerading pour iptables. Nécessaire si vous souhaitez effectuer une traduction d'adresse réseau (NAT) sur le trafic sortant. Voir la page de manuel snat pour plus d'infos.

dubzland_shorewall_rules

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

La partie principale de ce rôle. Configure les règles que Shorewall utilisera pour déterminer comment gérer les paquets traversant ses interfaces surveillées. Voir la page de manuel rules pour plus d'infos.

Dépendances

Aucune.

Exemple de Playbook

Étant donné une machine avec 2 NICs (eth0 sur Internet, eth1 sur le LAN) :

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

Cela permettrait à tout le monde de pinguer la machine pare-feu, et aux clients du LAN de pinguer des hôtes sur Internet. Tous les clients LAN pourraient également naviguer sur le web.

Licence

MIT

Auteur

À propos du projet

Shorewall for Debian

Installer
ansible-galaxy install dubzland.shorewall
Licence
mit
Téléchargements
74
Propriétaire
A lone greybeard