GNU/Linux >> Tutoriels Linux >  >> Linux

Comment restreindre l'accès au répertoire et aux sous-répertoires sur Nginx

Bonjour les amis. Dans cet article, nous continuerons avec quelques astuces pour Nginx. Donc, aujourd'hui, vous apprendrez à restreindre l'accès au répertoire et aux sous-répertoires dans Nginx. Allons-y.

D'abord, devrions-nous faire cela ?

La reponse courte est oui. Définitivement. Parce que dans une application ou un site Web, il existe de nombreux dossiers qui contiennent des fichiers sensibles pour que cela fonctionne.

En raison de ce qui précède, il est conseillé d'établir des règles pour interdire l'accès à ces dossiers et ainsi améliorer la sécurité du site.

Ces restrictions peuvent être appliquées par adresse IP, ce qui nous permet d'avoir la flexibilité d'appliquer les configurations dont nous avons besoin.

C'est sans effort. Allons-y.

Prérequis

Avant de continuer, nous devons nous assurer que nous remplissons les conditions requises pour terminer le message sans problème

  • Vous devez avoir installé et configuré Nginx. Assurez-vous donc de l'avoir en utilisant les dépôts officiels de votre distribution Linux.
  • La version de Nginx doit être supérieure à 1.9.5. Vous ne devriez avoir aucun problème à l'avoir car la plupart des distributions incluent des versions récentes.
  • Avoir des connaissances de base sur l'utilisation du terminal.
  • Un utilisateur avec un accès sudo ou un accès root.

Allons-y.

Comment restreindre l'accès au répertoire et aux sous-répertoires dans Nginx

Il est normal d'avoir plusieurs blocs serveur sur le serveur. Mais si vous voulez appliquer la configuration globalement, ou si vous n'en avez pas créé, vous devez modifier le /etc/nginx/nginx.conf – Sinon, vous devez modifier le fichier de configuration de chaque bloc serveur. Par exemple,

sudo nano /etc/nginx/sites-enabled/domain.conf

Pour ce post, je vais travailler avec un dossier appelé data à la racine du site Web. Par conséquent, le chemin relatif serait /data .

La directive Nginx qui effectue le refus d'accès est Deny mais nous devons le spécifier dans un script faisant référence au répertoire.

Si vous souhaitez restreindre l'accès à ce répertoire, vous devez l'inclure dans le fichier de configuration

location /data {
   ...
      deny all;
         ...
}

Vous pouvez également restreindre l'accès à une adresse IP spécifique. Par exemple :

location /data {
   ...
   deny 192.168.2.5;
   ...
}

S'il y a plusieurs adresses IP, vous pouvez les spécifier comme ceci

location /data {
   ...
   deny 192.168.2.5;
   deny 192.168.2.9;
   ...
}

Vous pouvez également utiliser des plages d'adresses IP

location /data {
   ...
   Deny 192.168.1.0/24;
   ...
}

Enregistrez les modifications et fermez l'éditeur. Pour appliquer les modifications, redémarrez Nginx.

sudo systemctl restart nginx

Et vous avez terminé.

Répertoire de protection par mot de passe dans Nginx

Une autre option utile consiste à ajouter un mot de passe. Cette méthode est très sécurisée et vous donne également plus de contrôle sur qui peut y accéder.

Pour cela, installez le apache2-utils package sur Debian, Ubuntu et dérivés ; et httpd-tools sur RHEL, Rocky Linux et dérivés.

Ensuite, créez le fichier où sera hébergé le mot de passe suivi de l'utilisateur. Par exemple :

sudo htpasswd -c /home/username/.htpasswd user

Lorsque vous l'exécuterez, vous serez invité à entrer un nouveau mot de passe pour l'utilisateur.

Nous éditons le fichier de configuration Nginx ou ServerBlocks

sudo nano /etc/nginx/sites-enabled/domain.conf

Et ajoutez quelque chose comme ça

location /data {
auth_basic "Restricted";
auth_basic_user_file /home/username/.htpasswd;
}

Enregistrez vos modifications, fermez l'éditeur et redémarrez Nginx.

sudo systemctl restart nginx

Désormais, lorsque vous souhaitez accéder au dossier, un mot de passe vous sera demandé.

Conclusion

Dans cet article court et simple, nous avons expliqué quelque chose d'aussi important que de restreindre l'accès aux dossiers sur notre serveur Web.

Documentation Nginx


Linux
  1. Comment trouver le nombre de fichiers dans un répertoire et des sous-répertoires

  2. Comment accéder à phpMyAdmin et phpPgAdmin dans cPanel

  3. Comment accéder aux systèmes de fichiers Linux dans Windows 10 et WSL 2

  4. Comment télécharger un répertoire entier et des sous-répertoires à l'aide de wget ?

  5. Comment configurer Kibana 4 et elasticsearch derrière nginx ?

Comment activer TLS 1.3 dans Nginx sur Ubuntu 18.04 et 16.04

Comment désactiver la navigation dans les répertoires sur Apache et Nginx

Comment activer TLS 1.3 sur Apache et Nginx

Comment protéger le répertoire avec un mot de passe sur Nginx

Comment installer et configurer Nginx dans Ubuntu 20.04 et Ubuntu 21.04

Comment installer et configurer Supervisor sur Ubuntu 20.04