Ayúdanos a seguir proporcionándote tutoriales gratuitos y de calidad desactivando tu bloqueador de anuncios. suscriptores a nuestro sitio.

Cómo configurar la contraseña de autenticación para Nginx en Debian 9

27 feb 2021 3 min di lettura
Cómo configurar la contraseña de autenticación para Nginx en Debian 9
Tabla de contenidos

Introducción

Si su intención es configurar una contraseña de inicio de sesión para Nginx en un servidor Debian 9 remoto, siga leyendo; de lo contrario, si desea configurar una contraseña para Nginx en su computadora local, omita el primer párrafo "Conectarse al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará la contraseña para la autenticación.

Para conectarse al servidor como root, escriba este comando:

ssh [email protected]_DEL_SERVER

A continuación, se le pedirá que ingrese la contraseña del usuario root.

Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie el primer parámetro:

ssh [email protected]_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

Ahora está conectado a su servidor, está listo para iniciar la configuración de Nginx.

Prerrequisitos

Instale Nginx en su servidor escribiendo desde la consola:

sudo apt-get update
sudo apt-get install nginx

Crea el archivo de contraseña

Para comenzar, necesitamos crear el archivo que contendrá nuestros datos de inicio de sesión: nombre de usuario y contraseña. Puede hacer esto usando la herramienta OpenSSL que puede que ya esté disponible en el servidor. Alternativamente, puede utilizar la herramienta htpasswd incluida en el paquete.

Cree el archivo de contraseña usando OpenSSL

Si tiene OpenSSL instalado en su servidor, puede crear un archivo de contraseña sin paquetes adicionales. Crearemos un archivo oculto llamado .htpasswd en el directorio de configuración /etc /nginx para almacenar nuestros datos de inicio de sesión: nombre de usuario y contraseña.

Puede agregar un nombre de usuario al archivo usando este comando. Usamos grok como nuestro nombre de usuario, pero puede usar el nombre que desee:

sudo sh -c "echo -n 'grok:' >> /etc/nginx/.htpasswd"

A continuación, agregue la entrada de contraseña cifrada para el nombre de usuario elegido escribiendo:

sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

Puede repetir este proceso para usuarios adicionales. Puede ver cómo se almacenan los usuarios y las contraseñas cifradas en el archivo escribiendo:

cat /etc/nginx/.htpasswd
Output
 grok:$apr1$wI1/T0nB$jEKuTJHkTOOWkopnXqC1d1

Cree el archivo de contraseña con la herramienta Apache

Como alternativa a OpenSSL para cifrar contraseñas para la autenticación Nginx, puede utilizar la herramienta htpasswd, que se encuentra en el paquete apache2-utils.

Para instalar el paquete apache2-utils en su servidor, escriba desde la consola:

sudo apt-get update
sudo apt-get install apache2-utils

Ahora tiene acceso al comando htpasswd. Podemos usarlo para crear un archivo de contraseña que Nginx puede usar para autenticar a los usuarios. Crearemos un archivo oculto para este propósito llamado .htpasswd dentro de nuestro directorio de configuración /etc /nginx.

La primera vez que usamos esta utilidad, debemos agregar la opción -c para crear el archivo especificado. Para este ejemplo, podemos usar el mismo nombre de usuario usando previamente "grok" al final del comando para crear una nueva entrada en el archivo:

sudo htpasswd -c /etc/nginx/.htpasswd grok

Se le pedirá que proporcione y confirme una contraseña para el usuario.

Si desea agregar más usuarios, no use el parámetro -c nuevamente, por ejemplo:

sudo htpasswd /etc/nginx/.htpasswd nuovo_utente

Podemos ver el nombre de usuario y la contraseña cifrada para cada registro:

cat /etc/nginx/.htpasswd
Output
 grok:$apr1$lzxsIfXG$tmCvCfb49vpPFwKGVsuYz.
 nuovo_utente:$apr1$p1E9MeAf$kiAhneUwr.MhAE2kKGYHK.

Configurar Nginx con la contraseña de autenticación

Ahora que tenemos un archivo con nuestros usuarios y contraseñas en un formato que Nginx puede leer, necesitamos configurar Nginx para leer este archivo.

Comience abriendo el archivo de configuración de bloques del servidor al que desea agregar una restricción. Para nuestro ejemplo, usaremos el archivo de bloqueo del servidor predeterminado instalado a través del paquete Nginx de Debian:

Desde la consola:

sudo nano /etc/nginx/sites-enabled/default

Busque el siguiente bloque:

...
 location /{
 try_files $uri $uri/=404;
 }...

Agregue los siguientes elementos:

auth_basic "Restricted Content";
 auth_basic_user_file /etc/nginx/.htpasswd;

El resultado final debe ser el siguiente:

server {
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on;

 root /usr/share/nginx/html;
 index index.html index.htm;

 server_name localhost;

 location /{
 try_files $uri $uri/=404;
 auth_basic "Restricted Content";
 auth_basic_user_file /etc/nginx/.htpasswd;
 }
 }

Guarde y cierre el archivo.

Reinicie Nginx:

sudo service nginx restart

El directorio que especificó ahora debería estar protegido con contraseña.

Conéctese a su dirección IP pública o localhost:

http://localhost/

Se le debe solicitar un nombre de usuario y una contraseña.

La configuración de Nginx con autenticación de contraseña en Debian 9 ha finalizado.

Apóyenos si le gusta nuestro contenido. Gracias.

Buy me a coffeeBuy me a coffee

Únase a la conversación

Apóyenos con una donación.

Genial! A continuación, complete el pago para obtener acceso completo a Noviello.it.
Bienvenido de nuevo! Has iniciado sesión correctamente.
Te has suscrito correctamente a Noviello.it.
Éxito! Su cuenta está completamente activada, ahora tiene acceso a todo el contenido.
Éxito! Su información de facturación ha sido actualizada.
Su facturación no se actualizó.