geerlingguy.firewall
Ansible-Rolle: Firewall (iptables)
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.
Simple iptables firewall for most Unix-like systems.
ansible-galaxy install geerlingguy.firewall