09 draft L1

OPNsense — Config automatique (firewall, NAT, DHCP, DNS, WG)

OS Cible
Progression 0% 0 / 8

Contexte

Configuration complète OPNsense via Ansible : firewall, NAT outbound, port forward, DHCP Kea, Unbound DNS, WireGuard. Toutes les règles préfixées '🤖 minfra:' pour identifier l'automation IaC.

Actions

8
  • Contexte 1 cmd
    $ Commandes
    $ WAN (vtnet0 192.168.1.2) ←→ Box SFR (DMZ → 192.168.1.2) │ ├─ Port forward → endor Traefik (10.0.1.15:80/443) ├─ NAT outbound : LAN + DMZ → WAN (masquerade) ├─ WireGuard listen UDP 51820 │ LAN (vtnet1 10.0.1.1/24) — gateway + Unbound DNS + DHCP Kea │ DMZ (vtnet2 10.0.2.1/24) — gateway + Unbound DNS + DHCP Kea │ WG (wg0 10.10.10.1/24) — clients VPN nomades
  • Lancer le déploiement 1 cmd 1 verify
    $ Commandes
    PS> cd D:\git\minfra-v2 task opnsense:config
    ✓ Vérifications
    task opnsense:postcheck
  • Règles Firewall déployées
  • NAT déployé
  • WireGuard server + peers 3 cmd 3 verify
    $ Commandes
    PS> task vpn:add-peer NAME=mobile-sacha IP=10.10.10.5
    PS> task vpn:delete-peer NAME=mobile-sacha
    $ opnsense_wireguard_clients: - name: "iac-mobile-sacha" enabled: "1" pubkey: "..." privkey: "..." # garde priv pour regen .conf si fichier local perdu tunneladdress: "10.10.10.5/32" persistentkeepalive: "25"
    ✓ Vérifications
    Wipe + reflash template OPNsense → peers restaurés
    Terraform destroy + apply VM 200 → peers restaurés
    Disaster Recovery complet → SOPS git = source de vérité
  • Services force-start 1 cmd
    $ Commandes
    $ configctl template reload OPNsense/Kea # régénère /usr/local/etc/kea/*.conf configctl kea restart # démarre daemon Kea DHCPv4 configctl hostwatch restart # démarre host discovery service
  • Sécurité — cleanup automatique avant upsert 1 cmd 2 verify
    $ Commandes
    $ # Supprime toute rule dont description commence par "minfra:" SANS 🤖 - name: "Supprimer rules legacy 'minfra:' (sans 🤖)" ... loop: rules where description matches '^minfra:' AND NOT '^🤖'
    ✓ Vérifications
    Renommer un préfixe (`minfra:` → `🤖 minfra:`) ne crée jamais de doublons
    Les rules manuelles UI **sans préfixe minfra:** sont préservées
  • Tasks utiles 1 cmd
    $ Commandes
    PS> task opnsense:config # full chain idempotent (recommandé) task opnsense:postcheck # vérif seule (sans changement) task opnsense:fw:sync # sync rapide FW/NAT seulement (skip user/aliases/wg/dhcp) task opnsense:get-rules # GET toutes les rules actuelles (FW + NAT + port forwards) task vpn:add-peer NAME=mobile-sacha IP=10.10.10.5 # ajoute client WG + QR task vpn:delete-peer NAME=mobile-sacha # retire client WG