Salut Koala784,
Je trouve ton install très sympa, j'élabore moi même quelque chose de similaire.
Je souhaite en plus potentiellement filtrer les requêtes DNS via une blacklist enregistrée sur un Pi-Hole, et installer un serveur openVPN pour les accès via WAN.
Je n'utilise pas encore de routeur autre que celui de la livebox, donc dans ton installation, j'ai cru comprendre que tu utilisais la fonction de Reverse-proxy d' OPNsense ?
As tu déjà pensé à utiliser un Reverse proxy directement sur Unraid ?
Car à ce que je sache Let's Encrypt n'en est pas un en soit ?
Pour ma part, concernant ta partie "unraid" j'ai déjà effectué une installation similaire mais sur un serveur distant.
Je pense notamment à un container Traefik, qui est une perle de transparence dans ce cas :• Pré-configuration du container Traefik pour qu'il écoute les ports 80 et 443 (http et https avec redirection automatique http vers https par exemple)
• Pré-configuration du challenge DNS pour l'obtention d'un unique certificat via Let's Encrypt valable pour le domaine et tous les sous domaines.
Seulement deux DNS Record Cloudflare (Passer la main à Cloudflare pour la gestion DNS via le panneau du registrar OVH pour n'avoir qu'un seul interlocuteur DNS) :
mondomaine.com > IP 45.45.45.45
*.mondomaine.com > IP 45.45.45.45 (le symbole
* permettant de rendre transparent l'ajout/suppression/modification de n'importe quelle adresse *.mondomaine.com via Traefik)
La partie concernant Let's Encrypt
dans la configuration de Traefik :
# Let's encrypt configuration
[acme]
email = "mail@domaine.com"
storage="/etc/traefik/acme/acme.json"
entryPoint = "https"
acmeLogging=true
onDemand = false
[acme.dnsChallenge]
provider = "cloudflare"
delayBeforeCheck = 300
[[acme.domains]]
main = "${DOMAINNAME}"
[[acme.domains]]
main = "*.${DOMAINNAME}"
• Configuration du routage des containers presque "à la volée" (comprendre quasi-automatique) via des labels très explicites sans exposer aucun port (sauf si l'on souhaite également un accès via LAN style
http://adresseserveurunraid:PORT)
Voici un exemple de labels ajoutés à un container plex dans un
docker-compose.yml labels:
- "traefik.enable=true"
- "traefik.backend=plex"
- "traefik.frontend.rule=Host:plex.${DOMAINNAME}"
- "traefik.port=32400"
- "traefik.protocol=http"
- "traefik.docker.network=traefik_proxy"
- "traefik.frontend.headers.SSLRedirect=true"
- "traefik.frontend.headers.STSSeconds=315360000"
- "traefik.frontend.headers.browserXSSFilter=true"
- "traefik.frontend.headers.contentTypeNosniff=true"
- "traefik.frontend.headers.forceSTSHeader=true"
- "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
- "traefik.frontend.headers.STSIncludeSubdomains=true"
- "traefik.frontend.headers.STSPreload=true"
- "traefik.frontend.headers.frameDeny=true"
# Traduction globale :
http://plex.mondomaine.com atteindra le container Traefik et sera redigirée vers le container "plex" au port interne du container "32400" ensuite ce sont des paramètres de sécurité qui permettent d'obtenir facilement un A+ sur
https://www.ssllabs.com/ssltest/Et voilà à quoi se résume la configuration du reverse proxy Traefik pour chaque container. Donc un gage de souplesse énorme pour effectuer des tests de containers jusqu'à satisfaction.
Il reste cependant potentiellement un problème auquel je ne saurais pas répondre car je ne l'utilise pas encore, la configuration de OPNsense pour qu'il route toutes les requêtes
*.mondomaine.com vers l'hôte unraid.
Mais l'avantage ici est que cela permettrait ensuite à unraid de gérer tout seul son petit routage interne, Traefik gérant automatiquement à la fois l'échange avec le DNS et le routage interne, sachant que les seuls ports exposés pour tout ce monde sont les ports par défaut HTTP(80) et HTTPS(443).
En résumé ça donnerait : monprécieux.mondomaine.com > 91.110.XXX.XXX > OPNsense > 192.168.1.101:80 > monprécieux(nom du container)
Voilà en espérant que cela soit utile, car malheureusement je n'utilise pas encore ni unraid ni opnsense !