--- # Voir defaults/main.yml pour ce qu'est le relais, et d'ou viennent ses valeurs. - name: Le relais a tout ce qu'il faut pour exister ansible.builtin.assert: that: - serveur_relais_tunnel_adresse | length > 0 - serveur_relais_tunnel_port | int > 0 - serveur_relais_pair_adresse | length > 0 - serveur_relais_pair_cle_publique | length > 0 - serveur_relais_adresses_relayees | length > 0 - serveur_relais_cle_privee | length > 0 - serveur_relais_console not in serveur_relais_adresses_relayees fail_msg: >- Relais incomplet. Les valeurs viennent de la carte du site (reseau `relais`, hotes `role: relais` et `role: frontiere` avec `cle_publique`), de `opnsense.yml` (adresse du site et pool) et de la voute du site (`vault_relais_wg_cle_privee`). La console ne doit pas etre une adresse relayee : elle menerait au SSH par le tunnel. no_log: true - name: Installer WireGuard et nftables ansible.builtin.apt: name: "{{ serveur_relais_paquets }}" state: present update_cache: true cache_valid_time: 3600 # Faire suivre : sans lui, les paquets arrives pour une adresse relayee meurent ici. - name: Autoriser le transit IPv4 ansible.builtin.copy: dest: /etc/sysctl.d/90-relais.conf content: "net.ipv4.ip_forward = 1\n" owner: root group: root mode: "0644" notify: Appliquer les reglages noyau du relais # LLMNR et mDNS ecoutaient sur l'adresse publique (5355) : aucun service ici ne s'annonce. - name: Couper LLMNR et mDNS ansible.builtin.copy: dest: /etc/systemd/resolved.conf.d/90-relais.conf content: "[Resolve]\nLLMNR=no\nMulticastDNS=no\n" owner: root group: root mode: "0644" notify: Redemarrer systemd-resolved - name: Dossier de WireGuard ansible.builtin.file: path: /etc/wireguard state: directory owner: root group: root mode: "0700" - name: Cle privee du relais (depuis la voute du site) ansible.builtin.copy: dest: /etc/wireguard/relais.key content: "{{ serveur_relais_cle_privee }}\n" owner: root group: root mode: "0600" no_log: true notify: Redemarrer le tunnel du relais - name: Configuration du tunnel ansible.builtin.template: src: wg0.conf.j2 dest: "/etc/wireguard/{{ serveur_relais_interface_tunnel }}.conf" owner: root group: root mode: "0600" notify: Redemarrer le tunnel du relais # VALIDE AVANT D'ETRE POSE : un jeu de regles refuse par nft, recharge sur un VPS dont la # seule porte est le SSH, serait la fin de l'acces. - name: Pare-feu du relais ansible.builtin.template: src: nftables.conf.j2 dest: /etc/nftables.conf owner: root group: root mode: "0755" validate: "nft -c -f %s" notify: Recharger le pare-feu du relais - name: Tunnel actif au demarrage ansible.builtin.systemd: name: "wg-quick@{{ serveur_relais_interface_tunnel }}" enabled: true state: started - name: Pare-feu actif au demarrage ansible.builtin.systemd: name: nftables enabled: true