¿Cómo proteger la página con contraseña en Apache, Nginx, WordPress, Hosting?

Es posible que tenga alguna página confidencial que desee proteger con la contraseña. Esto también se conoce como autenticación básica.

La buena noticia es que es posible, y es muy fácil.

¿Por qué proteger la página web con una contraseña?

Bueno, podría haber muchas razones, incluyendo.

Contiene datos confidenciales en la página. La página no está lista y no desea que sea visible públicamente, sino compartirla con alguien.

Sea lo que sea, exploremos cómo puedes protegerte.

Requisito

Tomemos un ejemplo; Quiero proteger /client en lab.geekflare.com, lo que significa que si alguien accede a https://lab.geekflare.com/client, debe solicitar una contraseña.

apache

Comencemos con Apache primero.

Lo primero que debemos crear es un archivo de contraseñas donde se almacenarán todas las credenciales. El nombre del archivo sería .htpasswd y puede colocarlo en cualquier parte del servidor. Lo crearé en la carpeta /etc/httpd/conf

Puede crear el archivo con el comando táctil

touch /etc/httpd/conf/.htpasswd

Agreguemos el usuario al que se le permitiría acceder a /client. Necesitamos usar el comando htpasswd para esto.

htpasswd /etc/httpd/conf/.htpasswd geekflare

La última sección, geekflare, es el nombre de usuario. Cambia eso con lo que quieras y presiona Enter. Ingrese la contraseña y verá una confirmación de que se agregó el usuario.

[[email protected] html]# htpasswd /etc/httpd/conf/.htpasswd geekflare
New password: 
Re-type new password: 
Adding password for user geekflare
[[email protected] html]#

Si selecciona el archivo, notará que la contraseña se almacena en un formato cifrado. ¡Es bueno!

[[email protected] html]# cat /etc/httpd/conf/.htpasswd 
geekflare:$apr1$EHvl0Bc5$nh4u0w3.Cj3wzPT7XUXqW1
[[email protected] html]#

A continuación, debemos indicar a Apache que proteja el URI que queremos.

Modifique el archivo httpd.conf o el archivo de configuración que está utilizando para la instancia de Apache. Estoy usando la instalación predeterminada, así que estoy usando /etc/httpd/conf/httpd.conf Agregue lo siguiente en cualquier parte del archivo

<Directory "/var/www/html/client">
Options Indexes FollowSymLinks
AuthType Basic
AuthName "Protected Content for Client"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
</Directory>

Si ya tiene la directiva /var/www/html/client Directory, en lugar de agregar una nueva sección, debe agregar lo siguiente en la directiva existente.

AuthType Basic
AuthName "Protected Content"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
service httpd restart

Intente acceder a la página /cliente, y debería estar pidiendo una contraseña.

Ingrese la credencial que configuró anteriormente para ver el contenido.

Elegante .htaccess ¿método?

Claro, también puede implementar la autenticación básica a través del archivo .htaccess. Aún necesita generar credenciales usando htpasswd como se explicó anteriormente. Una vez hecho esto, puede agregar lo siguiente en el archivo .htaccess de la carpeta respectiva.

AuthType Basic
AuthName "Protected Content"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user

La belleza es que no necesita reiniciar Apache.

Nginx

Implementemos la autenticación básica en Nginx de la siguiente manera.

Tomaremos la ayuda de Apache Utils para generar las credenciales. Si el servidor no tiene Apache HTTP instalado, debe instalar las utilidades por separado como se muestra a continuación. Si no está seguro, puede ejecutar htpasswd para ver si funciona. Si no es así, entonces sabes que necesitas instalarlo.

CentOS/RHEL 8

dnf install httpd-tools

CentOS/RHEL 7

yum install httpd-tools

ubuntu

apt-get install apache2-utils

Vamos a crear las credenciales de forma similar a como lo hicimos en Apache.

htpasswd -c /etc/nginx/.htpasswd chandan

No olvide reemplazar chandan con el nombre de usuario real que desee

Luego, necesitamos configurar Nginx, para que restrinja el URI particular con la contraseña.

Supongamos que necesitamos proteger /admin URI Agregue lo siguiente en nginx.conf u otro archivo de configuración activo de Nginx

location /admin {
auth_basic "Admin Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}

¿Qué sucede si tiene que restringir el servicio de todo el sitio web a través de Nginx?

¡Fácil!

Agregue lo siguiente en nginx.conf o en el archivo de configuración activo en la directiva location / {

auth_basic "Admin Area";
auth_basic_user_file /etc/nginx/.htpasswd;

Terreno del sitio

La plataforma de alojamiento ha evolucionado. Hay muchas plataformas que ofrecen herramientas útiles y SiteGround es una de ellas.

Si está utilizando SiteGround para alojar su sitio web, puede proteger fácilmente la URL desde su consola de administración. Supongamos que está utilizando WordPress y necesita proteger /wp-admin.

Inicie sesión en SiteGround y vaya al sitio donde necesita habilitar la autenticación básica. Haga clic en Seguridad >> URL protegidas >> Usuarios Ingrese el nombre y la contraseña para crear la credencial

A continuación, protegeremos wp-admin con la credencial que acabamos de crear.

Vaya a la pestaña URL. Ingrese wp-admin en la ruta y haga clic en proteger. Haga clic en Administrar acceso y asigne el usuario que acaba de crear.

Intente acceder a la página y SiteGround le pedirá que ingrese las credenciales.

Fácil, ¿no?

WordPress

¿Utiliza WordPress y le gustaría proteger con contraseña una publicación, página, categoría, función o todo el sitio en particular?

¡Por supuesto!

Conozca PPWP (complemento de protección de contraseña de WordPress)

Instale el complemento y configure la forma en que desea proteger los recursos de WordPress. Esto funciona con creadores de páginas como Elementor, Divi, Beaver.

Alternativamente, si necesita una publicación o página simple protegida con contraseña, puede aprovechar la función WP incorporada. No necesitas ningún plugin para esto.

Vaya a la publicación o página en la que desea habilitar una contraseña. En la sección de publicación, haga clic en Editar junto a visibilidad: Público Seleccione Protegido con contraseña e ingrese la contraseña.

Haga clic en Aceptar y ya está todo listo.

¿Necesita más formas de proteger WordPress? Consulte esta guía.

cPanel

Si está en un alojamiento compartido, lo más probable es que tenga cPanel. La buena noticia es que cPanel ofrece una utilidad llamada Privacidad de Directorio; desde allí, puede establecer una contraseña para el directorio.

Inicie sesión en cPanel Buscar Directorio Privacidad

Seleccione la carpeta que desea proteger. Como a continuación, seleccioné una carpeta llamada chandan, que se encuentra en public_html Cree el usuario que debería estar permitido y guarde

Una vez hecho esto, notará que la carpeta tiene un candado.

Y eso es. El directorio está protegido por contraseña ahora. Como puede ver arriba, lo probé en el alojamiento A2 y funciona muy bien.

Conclusión

Espero que lo anterior lo ayude a proteger cierta URI, carpeta con la contraseña mediante autenticación básica. Si está buscando una seguridad integral para el sitio web, entonces debería considerar implementar WAF.

Publicaciones relacionadas

Botón volver arriba