84 lines
2.0 KiB
YAML
84 lines
2.0 KiB
YAML
# Beispiel: Passe jeden Task in dieser Datei so an:
|
|
- name: Aktiviere Firewall-Regeln für WireGuard
|
|
ufw:
|
|
rule: allow
|
|
port: "{{ wireguard_port }}"
|
|
proto: udp
|
|
become: true
|
|
when: ansible_connection != "local"
|
|
- name: Prüfe, ob UFW installiert ist
|
|
command: which ufw
|
|
register: ufw_installed
|
|
ignore_errors: true
|
|
changed_when: false
|
|
|
|
- name: Installiere UFW (falls nicht vorhanden)
|
|
apt:
|
|
name: ufw
|
|
state: present
|
|
update_cache: yes
|
|
when: ufw_installed.rc != 0
|
|
|
|
# Setze Standardrichtlinien (erst Konfiguration, dann am Ende aktivieren)
|
|
- name: Setze Policy für eingehenden Traffic auf "deny"
|
|
ufw:
|
|
direction: incoming
|
|
policy: deny
|
|
|
|
- name: Setze Policy für ausgehenden Traffic auf "allow"
|
|
ufw:
|
|
direction: outgoing
|
|
policy: allow
|
|
|
|
# WireGuard-Port freigeben (UDP)
|
|
- name: WireGuard-Port erlauben
|
|
ufw:
|
|
rule: allow
|
|
port: "{{ wireguard_port | default(51820) }}"
|
|
proto: udp
|
|
|
|
# SSH von bestimmter IP erlauben
|
|
- name: SSH von deiner IP erlauben (empfohlen)
|
|
ufw:
|
|
rule: allow
|
|
port: 22
|
|
proto: tcp
|
|
from_ip: "{{ fallback_ip }}"
|
|
when: fallback_ip is defined and fallback_ip | length > 0
|
|
|
|
# Temporär für Tests: SSH für alle erlauben (nur bei Bedarf!)
|
|
- name: SSH von überall erlauben (fail-safe, NUR während Setup/Test)
|
|
ufw:
|
|
rule: allow
|
|
port: 22
|
|
proto: tcp
|
|
when: (not (fallback_ip is defined and fallback_ip | length > 0)) or (enable_ssh_from_anywhere | default(false))
|
|
|
|
# Masquerading für WireGuard
|
|
- name: NAT für WireGuard aktivieren
|
|
iptables:
|
|
table: nat
|
|
chain: POSTROUTING
|
|
out_interface: "{{ wireguard_exit_interface | default('eth0') }}"
|
|
source: "{{ wireguard_network }}"
|
|
jump: MASQUERADE
|
|
|
|
- name: WireGuard Kernel-Modul laden
|
|
modprobe:
|
|
name: wireguard
|
|
state: present
|
|
|
|
# UFW ganz am Schluss aktivieren
|
|
- name: UFW aktivieren
|
|
ufw:
|
|
state: enabled
|
|
|
|
- name: Aktive UFW-Regeln anzeigen (zum Debuggen)
|
|
command: ufw status verbose
|
|
register: ufw_status
|
|
changed_when: false
|
|
|
|
- name: Zeige UFW-Regeln im Ansible-Output
|
|
debug:
|
|
var: ufw_status.stdout
|