Búsqueda de sitios web

Habilitación de directorios web UserDir y protección con contraseña en el servidor web Zentyal - Parte 10


En un entorno de múltiples usuarios como un Zentyal PDC Active Directory, ejecutar un servidor web puede ser de gran ayuda, si desea permitir que cada usuario tenga su página web personal que puede alojarse en sus propios hogares.

El módulo Webserver en Zentyal 3.4 se puede configurar para activar el HTML público de usuarios y con la ayuda de algunos scripts Linux BASH. para generar dinámicamente algún contenido para la página web y transmitir a los usuarios la información requerida al iniciar sesión en el dominio.

Además, Apache viene desde hace mucho tiempo con otra característica relacionada con la seguridad del contenido entregado y es la protección con contraseña de un directorio web en una de las formas más simples simplemente usando .htaccess y cree una lista de usuarios necesarios para acceder a los recursos, incluso proteja el contenido web de los rastreadores de los motores de búsqueda.

Requisitos

  1. Guía de instalación de Zentyal
  2. Instalar Servicios Web (Apache) en el Servidor Zentyal

Paso 1: habilitar el HTML público del usuario

1. Inicie sesión en su herramienta de administración web Zentyal PDC utilizando https://zentyal_ip.

2. Vaya al Módulo del servidor web -> marque Habilitar usuario par public_html, presione el botón Cambiar y luego Guardar cambios. .

3. Abra un navegador e ingrese en el campo URL lo siguiente: http://midominio.com/~su_nombre de usuario.

Como puede ver, Apache no tiene permisos para acceder al directorio de usuario o al inicio del usuario índice. Para corregir este comportamiento debemos proporcionar a www-data permisos de ejecución en el directorio /home/$USER y crear una carpeta public_html en la ruta de los usuarios.

Para simplificar un poco las cosas, vamos a escribir un script Linux Bash que crea el directorio public_html y habilita los permisos correctos para todos los usuarios del sistema, genera automáticamente las páginas web html para todos. usuarios con un directorio de inicio válido y otro script, esta vez un script Windows Bach, que lo vinculará al GPO del dominio predeterminado para que a cada usuario se le solicite su página web personal después de iniciar sesión con las credenciales de dominio de < Los sistemas b>Windows se unieron al dominio.

4. Para completar esta tarea, inicie sesión en el Servidor Zentyal usando Putty con su cuenta administrativa de Zentyal creada durante la instalación del sistema y cree el primer script usando su editor de texto favorito. Lo llamaremos “creación-dir-usuario“.

nano user-dir-creation

5. Agregue el siguiente contenido en el script “user-dir-creation”.

#!/bin/bash

for i in `ls /home | grep -v samba| grep -v lost+found`;  do

        mkdir /home/$i/public_html

## Make world readable and executable, so that www-data can access it  ##

        chmod -R 755 /home/$i

      chgrp -R www-data /home/$i/public_html/

## Next code should be on a single line ##

echo "<html><body style='background-color:#2DC612'><div align='center'><p><H1 style='color:#fff'>Welcome user $i on <a style='color:#fff' href='https://mydomain.com'>`hostname -f` </a></H1></p></div></body></html>" > /home/$i/public_html/index.html

## List /home/$USER permissions and public_html perm optional ##

echo "......................."

ls -all /home/$i

echo "......................"

ls -all /home/$i/public_html

done;

6. Guarde el script y hágalo ejecutable, luego ejecútelo con privilegios de root.

chmod +x user-dir-creation
sudo ./user-dir-creation

7. Abra nuevamente un navegador y apúntelo a la misma URL que arriba (consulte el punto 3).

Se creó el directorio public_html y se generó un archivo html para todos los usuarios, por lo que ahora todos poseen una página web personalizada (esta es solo una página de prueba simple, pero imagina lo que puedes hacer con algo de PHP). , MySQL o CGI).

8. Si el Servidor Zentyal 3.4 es también un Controlador de dominio principal, podemos hacer que la página web de cada usuario se abra automáticamente en un navegador cuando los usuarios inician sesión desde hosts de Windows unidos al dominio.

Para habilitarlo, inicie sesión en un sistema Windows unido al dominio y cree un script por lotes de Windows llamado “public_html.bat” usando el Bloc de notas con el siguiente contenido.

explorer http://your_domain.tld/~%username%

Nota: tenga en cuenta el carácter especial “~” y %username%, que es una variable de entorno de Windows.

9. Abra la Herramienta de administración web Zentyal (https://zentyal_IP) y vaya a Dominio -> Objetos de política de grupo -> Predeterminado. Política de dominio -> Editor de GPO.

10. Haga clic en Editar, desplácese hacia abajo hasta Configuración de usuario –> Agregar nuevo script de inicio de sesión, busque la ruta donde se creó su script y presione < b>AÑADIR.

¡Felicitaciones! Ahora, la próxima vez que inicie sesión en el dominio, su navegador predeterminado abrirá una página web personalizada relacionada con su nombre de usuario.

Paso 2: Proteger con contraseña el directorio web

Esta parte requiere una configuración más avanzada en el módulo Apache que no se puede lograr desde la Interfaz Web Zentyal sino sólo desde la línea de comandos y modificando alguna plantilla del módulo Zentyal Apache.

Si intenta modificar directamente la configuración de Apache como lo haría normalmente en un servidor Linux, todas las configuraciones realizadas se perderán porque Zentyal utiliza algunas plantillas que reescriben los archivos de configuración de cada servicio después de reiniciar o reiniciar el servicio.

Para proteger realmente una carpeta web usando la autenticación Apache y hacer que los cambios sean permanentes, es necesario modificar la directiva “AllowOverride” y cargar y habilitar el módulo “auth_basic” en el servidor web Apache. .

11. Para habilitar todas las configuraciones necesarias, primero inicie sesión a través de la línea de comando usando Putty en el Servidor Zentyal con una cuenta root.

12. Habilite “auth_basic” emitiendo el siguiente comando y luego reinicie el servicio web zentyal.

a2enmod auth_basic
service zentyal webserver restart

13. Una vez cargado el módulo, es hora de modificar la plantilla Zentyal Apache Vhost ubicada en la ruta “/usr/share/zentyal/stubs/webserver/” y configurar “Permitir Anulación“.

Primera copia de seguridad del archivo vhost.mas.

cp /usr/share/zentyal/stubs/webserver/vhost.mas  /usr/share/zentyal/stubs/webserver/vhost.mas.bak

Luego abra un editor, navegue hacia abajo en el archivo y reemplace “Ninguno” con “Todos” en la línea directiva “Permitir anulación” como en la captura de pantalla. .

14. Una vez que haya terminado de editar, reinicie el módulo Zentyal Webserver para aplicar nuevos cambios.

service zentyal webserver restart

El objetivo principal de la directiva AllowOverride es alterar dinámicamente las configuraciones de Apache de otros archivos diferentes a los utilizados en la raíz de Apache (/etc/apache2/) por ruta utilizando Archivo .htacess.

15. Ahora es el momento de crear algunos usuarios a los que se les permita navegar en un directorio de contenido web protegido con contraseña. Primero necesitamos crear un directorio ubicado fuera de la ruta del subdominio donde se alojará y protegerá el archivo .htpasswd.

mkdir /srv/www/htpass
chmod –R 750 /srv/www/htpass
chgrp –R www-data /srv/www/htpass

16. Ahora es el momento de crear el archivo .htpasswd y agregar algunos usuarios usando el comando htpasswd. Cuando se crea el primer usuario, agregue el interruptor de comando “–c” (crear) para crear el archivo y agregar el usuario, luego ingrese y confirme la contraseña del usuario.

htpasswd –c /srv/www/htpass/.htpasswd first_user
htpasswd /srv/www/htpass/.htpasswd second_user

17. Ahora el archivo .htpasswd se crea y cifra usando el algoritmo salt MD5 y puede agregar tantos usuarios necesarios para acceder al contenido de la carpeta web como sea necesario.

18. Ahora supongamos que desea proteger la URL http://www.midominio.com de otros usuarios distintos de los creados en su archivo htpasswd para acceder al subdominio. Para habilitar este comportamiento, cree un archivo .htaccess en la ruta del sistema www.mydomain.com y agregue el siguiente contenido.

AuthType basic
AuthName “What ever message you want”
AuthBasicProvider file
AuthUserFile  /path/to/.htpassd file created
Require user  your_user1 user2 userN

También asegúrese de que el archivo .htacces esté protegido mediante texto.

nano /srv/www/www.mydomain.com/.htaccess
chmod 750  /srv/www/www.mydomain.com/.htaccess
chgrp www-data /srv/www/www.mydomain.com/.htaccess

¡Felicitaciones! Ahora ha protegido con contraseña exitosamente el subdominio www.midominio.com en su sitio web y se pedirá a los usuarios que ingresen sus credenciales para acceder al contenido del sitio web.

Además, si desea proteger otros dominios o subdominios creados en su servidor con las credenciales ya creadas, simplemente copie el archivo .htaccess en la ruta Apache de su subdominio y asegúrese de que www-data tiene acceso de lectura.

Con la ayuda de Apache Web Direcory Password Protect Zentyal Weberver se puede falsificar con una capa de seguridad adicional para exponer información confidencial publicada en sus dominios, pero tenga en cuenta que este método solo protege directorios y no se transmiten archivos ni contraseñas. está claro para el navegador, así que intente utilizar el protocolo HTTPS para proteger las credenciales del usuario para que no sean interceptadas.