- Paso 1: Requisitos previos
- Paso 2: Crear un archivo para guardar las contraseñas
- Paso 3: Configurar el directorio a proteger
- Paso 4: Probar que funciona
Paso 1: Requisitos previos
Para poder utilizar esta utilidad htpasswd de Apache2 hay que tenerla instalada, podéis comprobarlo ejecutando en el terminal: htpasswd, si devuelve resultados y no da error este todo esta OK. Si no esta instalada se instala a través de este paquete de Apache2, aunque deberia instalarse por defecto cuando se instala Apache2.sudo apt install apache2-utils
Aquí tenéis información sobre este paquete: https://packages.debian.org/es/sid/apache2-utilsPodéis comprobar si están en el sistema y activos con el siguiente comando
apache2ctl -M | grep auth
Y además hay que tener en el sistema los siguiente modulos de Apache2:auth_basic_module,authn_core_module,authn_file_module,
authz_core_module,authz_host_module,authz_user_module
Y si alguno no esta activo, no aparece en la lista, lo activáis de esta forma:
a2enmod nombre_de_modulo
Aunque esto viene por defecto instalado y no deberíais tener ningún problema.Paso 2: Crear un archivo para guardar las contraseñas
Ahora vamos a crear el archivo de passwords y guardarlo en una ruta, donde queramos, y lo enlazaremos en el fichero de virtualhost. El fichero de passwords se tiene que llamar .htpasswd y por ejemplo podéis crear uno en /etc/apache2/.htpasswd y utilizarlo para todas las webs que queréis proteger, o podemos crear uno diferente para cada web que queremos proteger.En el ejemplo lo ponemos en /etc/apache2
Y la forma de crear el usuario y password es
sudo htpasswd -c /etc/apache2/.htpasswd alex
alex es el usuario y nos pedirá un password que se asocia a ese nombre de usuario y el parámetro -c solo se utiliza si es la primera vez y se tiene que crear el fichero.Y el fichero de passwords (.htpasswd) queda de esta forma:
Paso 3: Configurar el directorio a proteger
Ahora que tenemos creado el fichero de contraseñas y guardado vamos a el directorio del web que queremos o si queremos proteger el web completo. Comentar que se puede ir protegiendo diferentes directorios con diferentes passwords.Para proteger nuestro web tenemos que poner en el fichero .htaccess las siguientes líneas el principio del fichero:
AuthType Basic
AuthName "Password Required"
Require valid-user
AuthUserFile /etc/apache2/.htpasswd
Esto protege desde donde está el fichero .htaccess, todo lo que está a su nivel y todos sus subdirectorios.
Una vez configurado el fichero .htaccess vamos a probarlo
Paso 4: Probar que funciona
Ponemos la url en el navegador ver y tiene que salir la ventana de petición de login.Para esto vamos a crear un web con un virtualhost y vamos a ponerle el password. Si no recordáis muy bien cómo crear un virtualhost os dejo este artículo de repaso Crear un Apache virtualhost en Linux
El árbol del directorio quedaría de esta forma:
En esta estructura de directorios vemos que el fichero .htaccess esta al nivel de la raíz del web con lo que lo protegerá todo, si el fichero .htaccess lo hubiéramos puesto dentro de uno de los directorios solo protegerá es directorio y sus subdirectorios pero no el web raiz y tampoco el subdirectorio dos.
Si quereis saber más sobre el comando Tree podéis mirar este artículo tree - ver el árbol de directorios y ficheros, o si quereis saber mas de Linux
Y esto es todo, y feliz programming
Saludos
Alex.
También puede interesarte:
Vagrant error - The specified host network collides with a non-hostonly network! |
||