# Politique de sécurité – HAOS Project ## Principes fondamentaux ### 1. Exposition réseau minimale Aucun port entrant n'est ouvert sur le routeur/box. | Service | Exposition | Détail | | -------------- | -------------------- | ----------------------------------------- | | Home Assistant | Tunnel sortant | Cloudflared → Cloudflare → domaine perso | | SSH | VPN uniquement | Inaccessible hors WireGuard | | Samba | LAN uniquement | Partage réseau local uniquement | | MQTT | LAN uniquement | Mosquitto non exposé sur le WAN | | Zigbee2MQTT | LAN uniquement | Interface web sur port 8099 (LAN) | ### 2. Accès distant via tunnel sortant (Cloudflared) Le flux réseau est **sortant uniquement** depuis le serveur vers Cloudflare. ``` Utilisateur distant │ ▼ HTTPS Cloudflare Edge │ ▼ Tunnel chiffré (WireGuard/QUIC) Cloudflared add-on (HAOS) │ ▼ HTTP local Home Assistant ``` Avantages : - Aucun port ouvert sur la box - IP publique non exposée - HTTPS natif via certificat Cloudflare - Protection DDoS Cloudflare incluse ### 3. Administration via VPN (WireGuard) Toute administration système (SSH, Samba, Zigbee2MQTT UI) est restreinte au tunnel WireGuard. ### 4. Données locales Les données sensibles ne transitent pas vers des clouds tiers : | Donnée | Traitement | Justification | | --------------- | ----------- | ----------------------------------- | | Flux vidéo | Local | Frigate NVR sur le serveur | | Réseau Zigbee | Local | Zigbee2MQTT + Mosquitto locaux | | Capteurs ESP32 | Local | ESPHome sur réseau local | | Enedis | API officielle | Données de consommation uniquement | | Heatzy | API officielle | Commandes chauffage uniquement | ### 5. Principe du moindre privilège - Services limités au strict nécessaire - Chaque add-on n'a accès qu'à ses ressources propres - Mot de passe MQTT dédié (non partagé) - Code PIN alarme non stocké en clair dans les automatisations (secrets.yaml) ### 6. Sauvegardes & Maintenance - Sauvegardes automatiques régulières de la configuration HAOS - Mises à jour appliquées régulièrement (HAOS, add-ons, intégrations) - Surveillance des logs (HAOS, Zigbee2MQTT, Frigate) ## Gestion des secrets Tous les éléments sensibles sont stockés dans `secrets.yaml` (non commité) : ```yaml # secrets.yaml – NE PAS COMMITER telegram_chat_alexis: "XXXXXXXXX" telegram_chat_vanessa: "XXXXXXXXX" mqtt_password: "XXXXXXXXX" alarmo_pin: "XXXX" wifi_ssid: "XXXXXXXXX" wifi_password: "XXXXXXXXX" esphome_api_key: "XXXXXXXXX" esphome_ota_password: "XXXXXXXXX" esphome_ap_password: "XXXXXXXXX" ``` ## Ce que ce dépôt ne contient pas - ❌ Clés privées ou tokens - ❌ Mots de passe (MQTT, Telegram, Wi-Fi) - ❌ Adresses IP réelles du réseau local - ❌ Clé réseau Zigbee (network_key) - ❌ PAN ID / Extended PAN ID Zigbee - ❌ Adresses MAC des équipements Zigbee - ❌ Code PIN de l'alarme - ❌ Chat ID Telegram