chore: lots of changes
This commit is contained in:
54
ansible/roles/wireguard/tasks/failsafe.yml
Normal file
54
ansible/roles/wireguard/tasks/failsafe.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
# roles/wireguard/tasks/failsafe.yml
|
||||
# Sicherstellt, dass SSH über VPN funktioniert und ein Fallback vorhanden ist
|
||||
|
||||
- name: Stelle sicher, dass wireguard_network gesetzt ist
|
||||
assert:
|
||||
that:
|
||||
- wireguard_network is defined
|
||||
fail_msg: "wireguard_network muss gesetzt sein (z. B. 10.8.0.0/24)"
|
||||
|
||||
- name: Automatisch externe IP als fallback_ip setzen (nur wenn nicht gesetzt)
|
||||
shell: curl -s ifconfig.me
|
||||
register: detected_fallback_ip
|
||||
when: fallback_ip is not defined
|
||||
changed_when: false
|
||||
|
||||
- name: Setze fallback_ip dynamisch als Ansible-Fact (wenn nicht gesetzt)
|
||||
set_fact:
|
||||
fallback_ip: "{{ detected_fallback_ip.stdout }}"
|
||||
when: fallback_ip is not defined
|
||||
|
||||
- name: (Optional) Erlaube temporär Fallback-SSH von aktueller IP
|
||||
ufw:
|
||||
rule: allow
|
||||
port: 22
|
||||
proto: tcp
|
||||
from_ip: "{{ fallback_ip }}"
|
||||
|
||||
- name: Erlaube SSH-Zugriff über VPN
|
||||
ufw:
|
||||
rule: allow
|
||||
port: 22
|
||||
proto: tcp
|
||||
from_ip: "{{ wireguard_network }}"
|
||||
|
||||
- name: (Warnung) Prüfe ob VPN-Interface aktiv ist
|
||||
shell: ip a show dev wg0
|
||||
register: vpn_interface_check
|
||||
failed_when: false
|
||||
|
||||
- name: Hinweis, wenn VPN-Interface nicht aktiv ist
|
||||
debug:
|
||||
msg: "⚠️ VPN-Interface wg0 scheint nicht aktiv zu sein. SSH über VPN wird nicht funktionieren."
|
||||
when: vpn_interface_check.rc != 0
|
||||
|
||||
- name: (Optional) SSH von überall blockieren – nur wenn VPN aktiv
|
||||
when:
|
||||
- ssh_lockdown | default(false)
|
||||
- vpn_interface_check.rc == 0
|
||||
ufw:
|
||||
rule: deny
|
||||
port: 22
|
||||
proto: tcp
|
||||
from_ip: 0.0.0.0/0
|
||||
Reference in New Issue
Block a user