Comprendre F5 · NGINX

NGINX : master, workers et permissions des fichiers

Relier les identités des processus NGINX aux accès aux fichiers statiques, journaux, caches et clés privées, sans ouvrir les permissions inutilement.

Thomas SAUTIER · Publié le · Révisions de certification

  • Référence de F5CAN1 consultée le · Objectifs abordés : F5CAN1 1.3.
  • Référence de F5CAN4 consultée le · Objectifs abordés : F5CAN4 1.2.
  • Référence de F5CANR consultée le · Objectifs abordés : F5CANR 1.3, F5CANR 4.2.

Ce guide concerne NGINX Open Source. Vérifiez la version, les modules compilés ou chargés et les particularités de votre paquet.

Identifier le processus qui effectue l’accès

Le processus master et les workers n’ont pas nécessairement la même identité. Le master lit la configuration et gère les workers ; ceux-ci prennent en charge les requêtes. La directive user concerne les credentials des workers lorsque le démarrage permet cette séparation de privilèges.

Avant de modifier les droits, identifiez l’utilisateur effectif, le mode de lancement et le fichier concerné. Le diagnostic diffère entre une clé chargée au démarrage, un fichier statique lu pour une requête et un répertoire de cache écrit pendant le service. Un accès réussi depuis votre shell ne prouve pas celui du worker.

Repère visuelmaster, workers et permissions des fichiers
master, workers et permissions des fichiers Une requête nécessite les droits du worker sur les parents puis le fichier, ainsi que le respect des restrictions du système. 01 Requête fichier demandé 02 Worker identité effective 03 Parents traversée autorisée 04 Fichier lecture requise 05 Restrictions contexte du système 06 Résultat accès ou refus
Une requête nécessite les droits du worker sur les parents puis le fichier, ainsi que le respect des restrictions du système.

Sources : NGINX / F5, Core functionality ; NGINX / F5, Controlling nginx.

Raisonner sur l’ensemble du chemin

Pour accéder à un fichier, les permissions des répertoires parents comptent autant que celles du fichier final. Sur un répertoire, le droit de traversée permet de rechercher un nom. Un fichier lisible peut donc rester inaccessible si un parent ne permet pas le passage à l’identité concernée.

Les restrictions de l’environnement peuvent aussi intervenir : montage en lecture seule, isolation du service ou contrôle d’accès supplémentaire. Commencez par les faits du journal et les identités, puis examinez ces contraintes. Évitez de remplacer l’analyse par des permissions ouvertes à tous.

Sur une distribution utilisant SELinux, les droits Unix ne sont qu’une partie du diagnostic. Examinez contexte du processus, labels des fichiers et refus enregistrés. La documentation RHEL 9 décrit aussi le contrôle des connexions sortantes du reverse proxy. Une modification de mode Unix ne corrige pas nécessairement un refus SELinux ; utilisez la procédure correspondant à votre distribution.

Inspecter processus et chemin pédagogiqueBash · Linux avec rg
ps -eo user,pid,ppid,args | rg "nginx:|nginx$"
ls -ld /srv /srv/revision /srv/revision/public
ls -l /srv/revision/public/index.html

Sources : NGINX / F5, Beginner’s Guide ; NGINX / F5, Core functionality ; Red Hat, Setting up and configuring NGINX.

Séparer lecture publique et données sensibles

Les pages publiques, clés privées, journaux et contenus de cache n’ont pas la même sensibilité. Le répertoire publié ne doit pas servir de stockage aux sauvegardes ou secrets. Le droit nécessaire pour servir un contenu ne doit pas donner à l’application la possibilité de remplacer la clé TLS.

Une modification de propriétaire ou de mode peut résoudre un symptôme tout en créant une exposition plus large. Définissez le droit attendu pour chaque acteur, puis utilisez le mécanisme d’administration adapté à votre distribution. La recette doit comporter un accès autorisé et un accès qui reste refusé.

Accès à justifier
ObjetBesoin à vérifier
Contenu statiqueLecture du fichier et traversée des parents
Cache/temporaireÉcriture par le processus approprié
Clé privéeAccès strictement limité à son chargement
ConfigurationModification réservée aux administrateurs

Sources : NGINX / F5, Core functionality ; NGINX / F5, Configuring HTTPS servers.

Exercice : un 403 après une migration de fichiers

Le même hôte répond, mais un fichier auparavant disponible produit un refus. Comparez le chemin attendu, l’identité des workers, les droits des parents et le journal d’erreur. Une absence de fichier d’index peut aussi être un problème de configuration ; ne concluez pas automatiquement à une permission.

Votre compte rendu doit établir quelle opération a échoué et pour quelle identité. Après correction minimale, validez la configuration et rejouez la requête ciblée. Contrôlez également qu’un fichier non public ne devient pas accessible au passage.

Sources : NGINX / F5, Module ngx_http_core_module ; NGINX / F5, Core functionality.

Sources et portée

Références consultées le . Les exemples utilisent des noms et adresses de documentation à remplacer. Les commandes de lecture affichent l’existant ; les captures et requêtes de diagnostic sont à limiter au périmètre autorisé.

Retrouver le parcours de lecture F5 NGINX

Continuer la série F5

Explorer tous les guides du parcours F5 NGINX

Découvrir l’expertise F5 de Samhan

Échange

Besoin d’éclaircir votre architecture F5 ?

Échangeons sur vos flux, vos contraintes de disponibilité et votre services applicatifs.