geerlingguy.firewall

Ansible-Rolle: Firewall (iptables)

CI

Installiert eine auf iptables basierende Firewall für Linux. Unterstützt sowohl IPv4 (iptables) als auch IPv6 (ip6tables).

Diese Firewall zielt auf Einfachheit ab und öffnet nur einige spezielle Ports für eingehenden Datenverkehr (konfigurierbar über Ansible-Variablen). Wenn Sie grundlegende Kenntnisse über iptables und/oder Firewalls im Allgemeinen haben, sollte diese Rolle ein guter Ausgangspunkt für eine sichere Systemfirewall sein.

Nachdem die Rolle ausgeführt wurde, ist ein firewall-Init-Dienst auf dem Server verfügbar. Sie können service firewall [start|stop|restart|status] verwenden, um die Firewall zu steuern.

Anforderungen

Keine.

Rollen-Variablen

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

firewall_state: started
firewall_enabled_at_boot: true

Steuert den Zustand des Firewall-Dienstes; ob er laufen soll (firewall_state) und/oder beim Systemstart aktiviert sein soll (firewall_enabled_at_boot).

firewall_flush_rules_and_chains: true

Ob alle Regeln und Ketten gelöscht werden sollen, wenn die Firewall neu gestartet wird. Setzen Sie dies auf false, wenn andere Prozesse iptables verwalten (z. B. Docker).

firewall_template: firewall.bash.j2

Die Vorlage, die beim Erstellen der Firewall-Regeln verwendet wird.

firewall_allowed_tcp_ports:
  - "22"
  - "80"
  ...
firewall_allowed_udp_ports: []

Eine Liste von TCP- oder UDP-Ports (jeweils), die für eingehenden Datenverkehr geöffnet werden sollen.

firewall_forwarded_tcp_ports:
  - { src: "22", dest: "2222" }
  - { src: "80", dest: "8080" }
firewall_forwarded_udp_ports: []

Leitet den src-Port an den dest-Port weiter, entweder TCP oder UDP (jeweils).

firewall_additional_rules: []
firewall_ip6_additional_rules: []

Alle zusätzlichen (benutzerdefinierten) Regeln, die zur Firewall hinzugefügt werden sollen (im gleichen Format, wie Sie sie über die Befehlszeile hinzufügen würden, z. B. iptables [regel]/ip6tables [regel]). Einige Beispiele, wie dies verwendet werden könnte:

# Erlaubt nur der IP 167.89.89.18 den Zugriff auf Port 4949 (Munin).
firewall_additional_rules:
  - "iptables -A INPUT -p tcp --dport 4949 -s 167.89.89.18 -j ACCEPT"

# Erlaubt nur der IP 214.192.48.21 den Zugriff auf Port 3306 (MySQL).
firewall_additional_rules:
  - "iptables -A INPUT -p tcp --dport 3306 -s 214.192.48.21 -j ACCEPT"

Siehe Iptables Essentials: Common Firewall Rules and Commands für weitere Beispiele.

firewall_log_dropped_packets: true

Ob verworfene Pakete im Syslog protokolliert werden sollen (Nachrichten werden mit "Dropped by firewall: " vorangestellt).

firewall_disable_firewalld: false
firewall_disable_ufw: false

Auf true setzen, um firewalld (standardmäßig in RHEL/CentOS installiert) oder ufw (standardmäßig in Ubuntu installiert) zu deaktivieren.

firewall_enable_ipv6: true

Auf false setzen, um die Konfiguration von ip6tables zu deaktivieren (zum Beispiel, wenn Ihre GRUB_CMDLINE_LINUX ipv6.disable=1 enthält).

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: server
  vars_files:
    - vars/main.yml
  roles:
    - { role: geerlingguy.firewall }

In vars/main.yml:

firewall_allowed_tcp_ports:
  - "22"
  - "25"
  - "80"

Lizenz

MIT / BSD

Autoreninformation

Diese Rolle wurde 2014 von Jeff Geerling erstellt, Autor von Ansible for DevOps.

Über das Projekt

Simple iptables firewall for most Unix-like systems.

Installieren
ansible-galaxy install geerlingguy.firewall
Lizenz
mit
Downloads
1.2M
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns