Habilitación de directorios web UserDir y Password Protect en Zentyal Webserver - Parte 10


En un entorno de múltiples usuarios como 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 se puede alojar en sus propios hogares.

El módulo Servidor web en Zentyal 3.4 se puede configurar para activar 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 en su inicio de sesión al dominio.

También Apache se envía durante mucho tiempo con otra característica relacionada con el contenido entregado de seguridad y es proteger con contraseña un directorio web en una de las formas más simples con solo usar .htaccess y crea una lista de usuarios necesarios para acceder a los recursos, incluso para proteger el contenido web de los rastreadores de los motores de búsqueda.

  1. Guía de instalación de Zentyal
  2. Instale Web Services (Apache) en Zentyal Server

Paso 1: Habilite el HTML público del usuario

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

2. Navegue hasta el Módulo de servidor web -> marque Habilitar usuario del mismo nivel public_html , presione el botón Cambiar y luego Guardar los cambios. .

3. Abra un navegador e ingrese en la URL archivada lo siguiente: http://mydomain.com/~your_username .

Como puede ver, Apache no tiene permisos para acceder por directorio de usuario o indexar la casa del usuario. 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 en todos los usuarios del sistema, genera automáticamente las páginas web html para todos. usuarios con un directorio de inicio válido y otra secuencia de comandos, esta vez una secuencia de comandos de Windows Bach , que lo vinculará al GPO de 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 < b> Los sistemas Windows se unieron al dominio.

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

# nano user-dir-creation

5. Agregue el contenido a continuación en la secuencia de comandos " creación de directorios de usuarios ".

#!/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 de nuevo un navegador y apúntelo a la misma URL que la anterior (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 , secuencias de comandos MySQL o CGI ).

8. Si el Servidor Zentyal 3.4 también es un Controlador de dominio primario , podemos hacer que la página web por usuario se abra automáticamente en un navegador cuando los usuarios inician sesión desde hosts de Windows que se unen 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 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 de 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 nueva secuencia de comandos de inicio de sesión , busque la ruta donde se creó la secuencia de comandos y presione < b> AGREGAR .

¡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: directorio web protegido con contraseña

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 solo 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 usa algunos formularios de 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 mediante la autenticación Apache y hacer que los cambios sean permanentes, la directiva " AllowOverride " debe modificarse y el módulo " auth_basic " debe cargarse y habilitarse 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 Zentyal Server con la 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 el momento de modificar la plantilla Zentyal Apache Vhost ubicada en la ruta “/usr/share/zentyal/stubs/webserver/” y configurar “ AllowOverride ".

Primera copia de seguridad del archivo vhost.mas .

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

A continuación, abra un editor, navegue hacia la parte inferior del archivo y reemplace " Ninguno " con " Todo " en la línea de 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 los 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 usados en la raíz de Apache (/etc/apache2/) por ruta usando Archivo .htacess .

15. Ahora es el momento de crear algunos usuarios a los que se les permita navegar por 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 agregue 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 se cifra mediante el algoritmo salt MD5 y puede agregar tantos usuarios como sea necesario para acceder al contenido de la carpeta web.

18. Ahora supongamos que desea proteger la URL de http://www.mydomain.com de otros usuarios y luego 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 por palabras.

# 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 el subdominio www.mydomain.com en su sitio web y se les 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 de 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 y contraseñas. en claro por navegador, así que intente usar el protocolo HTTPS para proteger las credenciales del usuario para que no sean interceptadas.