Je teste le déploiement de Discourse sur AlmaLinux 9 dérivé de CentOS avec SELinux activé et nginx externe configuré.
Comme le conteneur basé sur Ubuntu ne connaît pas SELinux, il remplace continuellement le socket de domaine Unix par un nouveau fichier non étiqueté en termes de sécurité à chaque démarrage du conteneur, et nginx n’est pas autorisé à y accéder tant que je n’ai pas exécuté restorecon sur le fichier pour lui donner un contexte de sécurité auquel nginx est autorisé à accéder. Évidemment, cela ne fonctionne pas comme solution de production.
Je ne souhaite pas vraiment exécuter semanage permissive -a httpd_t car j’aimerais profiter de SELinux sur le seul service réellement ouvert sur le monde extérieur. ![]()
Cela fonctionne si je fais un proxy vers un port réseau au lieu d’un socket de domaine Unix :
setsebool -P httpd_can_network_connect 1- ne pas utiliser
templates/web.socketed.template.yml expose: - "8008:80"- Dans nginx externe,
proxy_pass http://127.0.0.1:8008
Y a-t-il des inconvénients particuliers à cela ? Dois-je modifier des paramètres comme la limitation des connexions dans cette configuration ?
Je rédigerai cela plus en détail dans la documentation après des tests plus approfondis, et s’il y a des préoccupations supplémentaires, je pourrai les inclure dans ce que j’écrirai.