GNU/Linux >> Linux Esercitazione >  >> Linux

Come limitare l'accesso alla directory e alle sottodirectory su Nginx

Ciao amici. In questo post, continueremo con alcuni trucchi per Nginx. Quindi oggi imparerai come limitare l'accesso alla directory e alle sottodirectory in Nginx. Procediamoci.

Primo, dovremmo farlo?

La risposta breve è SI. Decisamente. Perché in un'applicazione o in un sito Web, ci sono molte cartelle che contengono file sensibili affinché funzionino.

Per quanto sopra, è consigliabile stabilire regole per vietare l'accesso a queste cartelle e migliorare così la sicurezza del sito.

Queste restrizioni possono essere applicate dall'indirizzo IP, che ci consente di avere la flessibilità di applicare le configurazioni di cui abbiamo bisogno.

È facile. Procediamoci.

Prerequisiti

Prima di continuare, dobbiamo assicurarci di soddisfare i requisiti per completare il post senza problemi

  • È necessario che Nginx sia installato e configurato. Quindi assicurati di averlo utilizzando i repository ufficiali della tua distribuzione Linux.
  • La versione di Nginx deve essere successiva alla 1.9.5 Non dovresti avere problemi ad averla perché la maggior parte delle distribuzioni include versioni recenti.
  • Avere conoscenze di base sull'uso del terminale.
  • Un utente con accesso sudo o accesso root.

Procediamoci.

Come limitare l'accesso alla directory e alle sottodirectory in Nginx

È normale che sul server siano presenti diversi blocchi server. Ma se vuoi applicare la configurazione a livello globale, o non ne hai creata, devi modificare il /etc/nginx/nginx.conf – In caso contrario è necessario modificare il file di configurazione di ogni Blocco Server. Ad esempio,

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

Per questo post, lavorerò con una cartella chiamata data nella radice del sito web. Pertanto, il percorso relativo sarebbe /data .

La direttiva Nginx che esegue la negazione dell'accesso è Deny ma dobbiamo specificarlo all'interno di uno script riferito alla directory.

Se vuoi limitare l'accesso a quella directory, devi includerla nel file di configurazione

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

Puoi anche limitare l'accesso a un indirizzo IP specifico. Ad esempio:

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

Se sono presenti più indirizzi IP, puoi specificarli in questo modo

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

Puoi anche utilizzare intervalli di indirizzi IP

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

Salva le modifiche e chiudi l'editor. Per applicare le modifiche, riavvia Nginx.

sudo systemctl restart nginx

E il gioco è fatto.

Directory protetta da password in Nginx

Un'altra opzione utile è aggiungere una password. Questo metodo è molto sicuro e ti dà anche un maggiore controllo su chi può accedervi.

Per fare ciò, installa apache2-utils pacchetto su Debian, Ubuntu e derivati; e httpd-tools su RHEL, Rocky Linux e derivati.

Quindi, crea il file in cui verrà ospitata la password seguito dall'utente. Ad esempio:

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

Quando lo esegui, ti verrà chiesto di inserire una nuova password per l'utente.

Modifichiamo il file di configurazione Nginx o ServerBlocks

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

E aggiungi qualcosa del genere

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

Salva le modifiche, chiudi l'editor e riavvia Nginx.

sudo systemctl restart nginx

Ora, quando vorrai accedere alla cartella, ti verrà richiesta una password.

Conclusione

In questo breve e semplice post, abbiamo spiegato qualcosa di importante come limitare l'accesso alle cartelle sul nostro server web.

Documentazione Nginx


Linux
  1. Come contare il numero di file e sottodirectory all'interno di una determinata directory

  2. Come trovare il numero di file in una directory e sottodirectory

  3. Come accedere a phpMyAdmin e phpPgAdmin in cPanel

  4. Come accedere ai filesystem Linux in Windows 10 e WSL 2

  5. Come eliminare una directory e una cartella in Linux?

Come abilitare TLS 1.3 in Nginx su Ubuntu 18.04 e 16.04

Come disattivare la navigazione delle directory su Apache e Nginx

Come abilitare TLS 1.3 su Apache e Nginx

Come proteggere la directory con password su Nginx

Come installare e configurare Nginx in Ubuntu 20.04 e Ubuntu 21.04

Come installare e configurare Supervisor su Ubuntu 20.04