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