Funk-lab/ansible/roles/gateway
ALI YESILKAYA cf09e404ef
feat(portal): accès Internet direct au portail (kaya.freeboxos.fr:9080) (#81)
* feat(wireguard): accès distant au lab via VPN (Freebox 51820/udp → s01)

- rôle wireguard : serveur wg0 (10.99.0.0/24) sur storage-01, profils
  clients générés dans /etc/wireguard/clients/ (fichier .conf / QR code)
- gateway : filtrage nftables par pair — full (tout le lab) / portal
  (uniquement Traefik :80 = portail Guacamole), masquerade VPN→cluster
- dnsmasq : bind-dynamic + écoute wg0 → *.lab.local résolu dans le tunnel
- pairs initiaux : alkatrazz (full), invite-01 (portal)
- vault : clés WireGuard + reprise de l'archive Authentik (remplace #78)
- doc : admin/infra/wireguard.md (onboarding pair, pièges, exploitation)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(portal): accès Internet direct — kaya.freeboxos.fr:9080

Choix simplicité (2026-07-07) : exposition directe du portail plutôt que
le VPN (WireGuard reste déployé mais dormant, sans redirection Freebox).

- gateway : DNAT 9080/tcp → Traefik (192.168.10.200:80) + rate-limit
  30 connexions neuves/min sur le trafic Internet (LAN non concerné)
- IngressRoute guacamole : host kaya.freeboxos.fr accepté
- Guacamole : formulaire local en premier ("*, openid") — l'accès externe
  passe par des comptes locaux, Authentik n'est pas exposé (SSO = LAN)
- doc : section « Accès externe » dans admin/k8s/auth-portal.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:13:45 +02:00
..
handlers feat(postfix): relay SMTP Gmail + suppression règles Conan nftables 2026-05-17 16:46:42 +02:00
tasks feat: initial commit — Ansible roles storage-01/gpu-01 opérationnels 2026-05-12 17:17:03 +02:00
templates feat(portal): accès Internet direct au portail (kaya.freeboxos.fr:9080) (#81) 2026-07-07 11:13:45 +02:00
README.md docs(ansible): README par rôle (19) + gaps IaC découverts à l'audit 2026-06-10 15:21:24 +02:00

gateway

Fait de storage-01 le routeur/firewall du LAN cluster : nftables + NAT + IP forwarding. Remplace firewalld (stoppé et désactivé).

Ce que fait le rôle

  • Désactive firewalld, installe nftables
  • Active net.ipv4.ip_forward
  • Déploie /etc/nftables.conf depuis templates/nftables.conf.j2 (policy drop en input/forward)

Ports ouverts (template nftables.conf.j2)

Port Source Service
22 LAN maison + cluster SSH
53 udp/tcp, 67 udp LAN cluster dnsmasq (DNS + DHCP)
111, 2049 LAN cluster NFS
5432, 6333/6334, 9000/9001 LAN cluster PostgreSQL, Qdrant, MinIO
9100, 9093 cluster + pods 10.42/16 node_exporter, alertmanager-webhook
8080 maison + cluster + pods Hermes gateway
9119 hermes_dashboard_allowed_ip uniquement Dashboard Hermes
4000 maison + cluster + pods LiteLLM
25 cluster + pods Postfix relay
9095 cluster + pods hermes-auto-improve trigger

NAT : masquerade du LAN cluster vers le WAN.

Variables

Pas de defaults — utilise lan_interface, wan_interface (host_vars) et hermes_dashboard_allowed_ip (defaults du rôle hermes_agent).

Caveat

Tout nouveau service réseau doit ajouter son port ici (modifier le template puis --tags gateway). C'est la cause de plusieurs incidents passés (voir admin/incidents.md 2026-05-13, port monitoring bloqué).