Recherche de site Web

Activation des répertoires Web UserDir et Password Protect sur le serveur Web Zentyal - Partie 10


Dans 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 Webserver sur Zentyal 3.4 peut être configuré pour activer le Users Public HTML et à l'aide de certains scripts Linux BASH pour générer dynamiquement du contenu pour la page Web et transmettre aux utilisateurs les informations requises lors de leur connexion au domaine.

Apache est également livré depuis longtemps avec une autre fonctionnalité liée à la sécurité du contenu fourni, à savoir la protection par mot de passe d'un répertoire Web sous l'une des formes les plus simples en utilisant simplement .htaccess et créez une liste d'utilisateurs nécessaires pour accéder aux ressources, voire protégez le contenu Web des robots des moteurs de recherche.

Exigences

  1. Guide d'installation de Zentyal
  2. Installer les services Web (Apache) sur le serveur Zentyal

Étape 1 : Activer le HTML public de l'utilisateur

1. Connectez-vous à votre outil d'administration Web Zentyal PDC en utilisant https://zentyal_ip.

2. Accédez au Module de serveur Web -> cochez Activer l'utilisateur homologue public_html, cliquez sur le bouton Modifier puis Enregistrer les modifications. .

3. Ouvrez un navigateur et saisissez dans l'URL ce qui suit : http://mydomain.com/~your_username.

Comme vous pouvez le constater, Apache n'a aucune autorisation pour accéder au répertoire utilisateur ou à la maison de l'utilisateur d'index. Pour corriger ce comportement, nous devons fournir à www-data des 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 le répertoire public_html et active les autorisations correctes sur tous les utilisateurs du système, génère automatiquement les pages Web HTML pour tous. les utilisateurs disposant d'un répertoire personnel valide et d'un autre script, cette fois un script Windows Bach, qui le reliera au GPO de domaine par défaut afin que chaque utilisateur soit invité à indiquer sa page Web personnelle après la connexion avec les informations d'identification de domaine de < Systèmes b>Windows joints au domaine.

4. Pour terminer cette tâche, connectez-vous au 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. Ils possèdent désormais tous une page Web personnalisée (ce n'est qu'une simple page de test, mais imaginez ce que vous pouvez faire avec du PHP , scripts MySQL ou CGI ).

8. Si le serveur Zentyal 3.4 est également un contrôleur de domaine principal, nous pouvons faire en sorte que la page Web de chaque 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 batch Windows nommé « public_html.bat » à l'aide du Notepad 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 accédez à Domaine -> Objets de stratégie de groupe -> Par défaut Politique de domaine -> Éditeur GPO.

10. Cliquez sur Modifier, faites défiler jusqu'à Configuration utilisateur –> Ajouter un nouveau script de connexion, parcourez le chemin où votre script a été créé et appuyez sur < b>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 : Répertoire Web protégé 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 depuis l'Interface Web Zentyal mais uniquement depuis la ligne de commande et en modifiant certains modèles de module Apache Zentyal.

Si vous essayez de modifier directement la configuration d'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 les fichiers de configuration de chaque 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 d'abord via la ligne de commande en utilisant Putty sur Zentyal Server avec un compte root.

12. Activez « auth_basic » en exécutant 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 « Autoriser le remplacement".

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 en bas du fichier et remplacez « Aucun » par « Tous » sur la ligne de directive « Autoriser le remplacement » comme dans la capture d'écran. .

14. Une fois les modifications terminées, 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/) chemin par chemin en utilisant Fichier .htacess.

15. Il est maintenant temps de créer des utilisateurs autorisés à parcourir un répertoire de contenu Web protégé par mot de passe. Nous devons d’abord 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 le commutateur de commande « –c » (créer) pour créer le fichier et ajouter 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. Le fichier .htpasswd est maintenant créé et chiffré à l'aide de l'algorithme salt 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 l'URL http://www.mydomain.com des autres utilisateurs que ceux créés sur votre fichier htpasswd pour accéder au sous-domaine. Pour activer ce comportement, créez un fichier .htaccess sur le chemin système www.mydomain.com 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é en lecture écrite.

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 sur votre site Web et les utilisateurs seront invités à saisir leurs informations d'identification 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 le chemin Apache de votre sous-domaine et assurez-vous que www-data dispose d'un accès en lecture.

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