Recherche de site Web

Activation de UserDir et de la protection par mot de passe des répertoires Web sur le serveur Web Zentyal - Partie 10


Sur un environnement multi-utilisateurs comme un Zentyal PDC Active Directory, l’exécution d’un serveur Web peut être d’une grande aide, si vous souhaitez permettre à chaque utilisateur d’avoir sa page Web personnelle qui peut être hébergée chez lui.

Le module de serveur Web sur Zentyal 3.4 peut être configuré pour activer le HTML public des utilisateurs et, à l’aide de certains scripts BASH Linux, pour générer dynamiquement du contenu pour la page Web et transmettre aux utilisateurs les informations requises sur leur connexion au domaine.

De plus, Apache est livré depuis longtemps avec une autre fonctionnalité liée à la sécurité du contenu livré et c’est la protection par mot de passe d’un répertoire Web dans l’une des formes les plus simples simplement en utilisant des fichiers .htaccess et en créant une liste d’utilisateurs nécessaires pour accéder aux ressources, même protéger le contenu Web des robots des moteurs de recherche.

Exigences

  1. Guide d’installation de Zentyal
  2. Installer des Web Services (Apache) dans Zentyal Server

Étape 1 : Activer le code HTML public de l’utilisateur

1. Connectez-vous à votre outil d’administration Web Zentyal PDC à l’aide de https ://zentyal_ip.

2. Accédez au module de serveur Web -> cochez Activer la public_html de l’utilisateur homologue, appuyez sur le bouton Modifier puis Enregistrer les modifications.

3. Ouvrez un navigateur et entrez dans l’URL enregistrée ce qui suit : http://mydomain.com/~your_username.

Comme vous pouvez le voir, Apache n’a pas d’autorisations pour accéder à la maison de l’utilisateur par utilisateur, annuaire ou index. Pour corriger ce comportement, nous devons fournir à www-data les autorisations d’exécution sur le répertoire /home/$USER et créer un dossier public_html sous le chemin des utilisateurs.

Pour simplifier un peu les choses, nous allons écrire un script Linux Bash qui crée public_html répertoire et active les autorisations correctes sur tous les utilisateurs du système, génère automatiquement les pages Web html pour tous les utilisateurs avec un répertoire personnel valide et un autre script, cette fois un script Windows Bach, qui le liera au GPO de domaine par défaut afin que chaque utilisateur soit invité avec sa page Web personnelle après s’être connecté avec les informations d’identification du domaine des systèmes Windows réunis dans le domaine.

4. Pour terminer cette tâche, connectez-vous à Zentyal Server à l’aide de Putty avec votre compte administratif Zentyal créé lors de l’installation du système et créez le premier script à l’aide de votre éditeur de texte préféré. Nous l’appellerons « user-dir-creation ».

# nano user-dir-creation

5. Ajoutez le contenu ci-dessous sur le 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. Enregistrez le script et rendez-le exécutable, puis exécutez-le avec les privilèges root.

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

7. Ouvrez à nouveau un navigateur et pointez-le vers la même URL que ci-dessus (voir point 3).

Le répertoire public_html a été créé et un fichier html a été généré pour tous les utilisateurs, de sorte qu’ils possèdent maintenant tous une page Web personnalisée (ce n’est qu’une simple page de test, mais imaginez ce que vous pouvez faire avec des scripts PHP, MySQL ou CGI).

8. Si Zentyal 3.4 Server est également un contrôleur de domaine principal, nous pouvons faire en sorte que la page Web par utilisateur s’ouvre automatiquement dans un navigateur lorsque les utilisateurs se connectent à partir d’hôtes Windows joints au domaine.

Pour l’activer, connectez-vous à un système Windows joint au domaine et créez un script de traitement par lots Windows nommé « public_html.bat » à l’aide du Bloc-notes avec le contenu suivant.

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

Remarque : Veuillez noter le caractère spécial « ~ » et %username % qui est une variable d’environnement windows.

9. Ouvrez l’outil d’administration Web Zentyal (https ://zentyal_IP) et allez dans Domaine -> Objets de politique de groupe -> Politique de domaine par défaut -> Éditeur GPO.

10. Cliquez sur Modifier, faites défiler jusqu’à Configuration utilisateur > Ajouter un nouveau script de connexion, naviguez sur le chemin où votre script a été créé et appuyez sur AJOUTER.

Félicitations ! Désormais, la prochaine fois que vous vous connecterez au domaine, votre navigateur par défaut ouvrira une page Web personnalisée liée à votre nom d’utilisateur.

Étape 2 : Protéger le répertoire Web par mot de passe

Cette partie nécessite une configuration plus avancée sur le module Apache qui ne peut pas être réalisée à partir de l’interface Web Zentyal, mais uniquement à partir de la ligne de commande et en modifiant certains modèles de module Zentyal Apache.

Si vous essayez de modifier directement la configuration Apache comme vous le feriez normalement sur un serveur Linux, toutes les configurations effectuées seront perdues car Zentyal utilise des modèles de formulaires qui réécrivent chaque fichier de configuration de service après le redémarrage ou le redémarrage du service.

Pour protéger réellement un dossier web à l’aide de l’authentification Apache et rendre les modifications permanentes, la directive « AllowOverride » doit être modifiée et le module « auth_basic » doit être chargé et activé sur le serveur web Apache.

11. Pour activer toutes les configurations nécessaires, connectez-vous via la ligne de commande à l’aide de Putty sur Zentyal Server avec le compte root.

12. Activez « auth_basic » en lançant la commande suivante, puis redémarrez le service web zentyal.

# a2enmod auth_basic
service zentyal webserver restart

13. Une fois le module chargé, il est temps de modifier le modèle Zentyal Apache Vhost situé dans le chemin « /usr/share/zentyal/stubs/webserver/ » et de configurer « AllowOverride ».

Première sauvegarde du fichier vhost.mas.

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

Ensuite, ouvrez un éditeur, naviguez vers le bas du fichier et remplacez « Aucun » par « Tout » sur la ligne de directive « Autoriser le remplacement » comme dans la capture d’écran.

14. Une fois que vous avez terminé de modifier, redémarrez le module Zentyal Webserver pour appliquer les nouvelles modifications.

# service zentyal webserver restart

L’objectif principal de la directive AllowOverride est de modifier dynamiquement les configurations Apache à partir d’autres fichiers différents de ceux utilisés dans la racine Apache (/etc/apache2/) sur une base par chemin à l’aide du fichier .htacess.

15. Il est maintenant temps de créer des utilisateurs autorisés à naviguer dans un répertoire de contenu Web protégé par un mot de passe. Tout d’abord, nous devons créer un répertoire placé en dehors du chemin du sous-domaine où le fichier .htpasswd sera hébergé et protégé.

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

16. Il est maintenant temps de créer le fichier .htpasswd et d’ajouter des utilisateurs à l’aide de la commande htpasswd. Lorsque le premier utilisateur est créé, ajoutez la commande « -c " (créer), basculez pour créer le fichier et ajoutez un utilisateur, puis entrez et confirmez le mot de passe de l’utilisateur.

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

17. Maintenant, le fichier .htpasswd est créé et crypté à l’aide de l’algorithme de sel MD5 et vous pouvez ajouter autant d’utilisateurs requis pour accéder au contenu du dossier Web que nécessaire.

18. Supposons maintenant que vous souhaitiez protéger http://www.mydomain.com URL des autres utilisateurs que celles créées sur votre fichier htpasswd pour accéder au sous-domaine. Pour activer ce comportement, créez un fichier .htaccess sur www.mydomain.com chemin d’accès système et ajoutez le contenu suivant.

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

Assurez-vous également que le fichier .htacces est protégé par lecture de mots.

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

Félicitations ! Vous avez maintenant protégé par mot de passe le sous-domaine www.mydomain.com de votre site Web et les utilisateurs seront invités à saisir leurs identifiants pour accéder au contenu du site Web.

De plus, si vous souhaitez protéger d’autres domaines ou sous-domaines créés sur votre serveur avec les informations d’identification déjà créées, copiez simplement le fichier .htaccess sur votre chemin Apache de sous-domaine et assurez-vous que www-data dispose d’un accès en lecture.

Avec l’aide d’Apache Web Direcory Password Protect, Zentyal Weberver peut être falsifié avec une couche de sécurité supplémentaire sur l’exposition des informations sensibles publiées sur vos domaines, mais sachez que cette méthode ne protège que les répertoires et non les fichiers et les mots de passe sont transmis en clair par le navigateur, alors essayez d’utiliser le protocole HTTPS pour protéger les informations d’identification de l’utilisateur contre l’interception.

Articles connexes: