logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:reseau:apache2:tp01 [21/09/2014 06:09]
Hypathie [Installer le module php]
doc:reseau:apache2:tp01 [22/09/2014 13:59]
Hypathie [Créer un Virtualhost et son site web]
Ligne 118: Ligne 118:
  
 <code root>ls -l /​etc/​apache2/​sites-enabled/​000-default</​code>​ <code root>ls -l /​etc/​apache2/​sites-enabled/​000-default</​code>​
-<​code>​lrwxrwxrwx 1 root root 26 sept. 19 06:06 /​etc/​apache2/​sites-enabled/​000-default -> ../​sites-available/​default</​code>​+<​code>​lrwxrwxrwx 1 root root 26 sept. 19 06:06
 + /​etc/​apache2/​sites-enabled/​000-default -> ../​sites-available/​default</​code>​
  
 <​note>​ <​note>​
Ligne 259: Ligne 260:
 </​code>​ </​code>​
  
-====Sécuriser son site ====+=====Sécuriser son site web===== 
 + 
 +====Sécuriser Apache2 ​====
 Ce n'est là qu'un minimum et non une sécurisation optimale. Ce n'est là qu'un minimum et non une sécurisation optimale.
 FIXME FIXME
-===Éditer le fichier /​etc/​apache2/​conf.d/​security ​=== +====Diffuser le minimum d'​information sur apache ==== 
-  * Il s'agit de diffuser le minimum d'​information sur apache.+  * Éditer le fichier /​etc/​apache2/​conf.d/​security.
  
 <code root>vim /​etc/​apache2/​conf.d/​security</​code>​ <code root>vim /​etc/​apache2/​conf.d/​security</​code>​
Ligne 281: Ligne 284:
 <code root>​service apache2 restart</​code>​ <code root>​service apache2 restart</​code>​
  
 +====Vérifier certaines options <​Directory>​ de son Virtualhost====
 ===Limiter l'​accès à toute l'​arborescence du système Linux=== ===Limiter l'​accès à toute l'​arborescence du système Linux===
  
-  * Désactiver le site "​sites-available/​efault" :+  ​* Modifier le groupe de /var/www : 
 +On attribue les fichiers de /var/www au groupe www-data et non à l'​utilisateur root. 
 + 
 +<code root>​chown -R root:​www-data /​var/​www/​*</​code>​ 
 + 
 +  ​* Désactiver le site "​sites-available/​default" :
  
 <code root>​a2dissite default</​code>​ <code root>​a2dissite default</​code>​
Ligne 303: Ligne 312:
         ServerAlias www.monsite.com         ServerAlias www.monsite.com
  
-        DocumentRoot /​var/​www/​monsite.com/​public_html+        DocumentRoot /​var/​www/​monsite.com
         <​Directory />         <​Directory />
                 Options FollowSymLinks                 Options FollowSymLinks
Ligne 331: Ligne 340:
 Et comme indiqué : ''​service apache2 reload''​. Et comme indiqué : ''​service apache2 reload''​.
  
-====Développer son site web dans un /home/==== +====Restreindre l'​accès au site par login et mot de passe ==== 
-Il n'est pas recommandé ​de travailler directement dans des répertoires du serveur. Un lien symbolique depuis le répertoire principal du serveur vers un répertoire ​du dossier personnel est préférable.+La création d'un mot de passe sécurise ​un peu l'​accès ​du site qu'on va crée pour le nouvel virtualhost.\\  
 +Pour ce faire :
  
-===On désactive "​monsite" ​=== +===Création d'un utilisateur apache2=== 
-<code root>a2dissite monsite.com</​code>​+Pas forcément du même nom que celui de l'​utilisateur du système Linux 
 +  * Par exemple du nom de "​web"​ 
 +<code root>adduser --system web --ingroup www-data</​code>​
  
-Et on recharge ​''​service apache2 reload''​.\\ ​+  * On lui crée un mot de passe système ​: 
 +<code root> passwd web</​code> ​
  
-===Création d'​un ​nouvel ​Virtualhost ===+  * On crée les fichiers du site web, "​monsite.com"​ dans /​home/​web/:​ 
 +<​code>​mkdir -p monsite.com/​public_html</​code>​ 
 + 
 +  * On corrige l'​appartenance et les droits : 
 + 
 +  * On édite un index.html : 
 +<code root>vim /​home/​web/​monsite.com/​public_html/​index.html</​code>​ 
 + 
 +===Création du compte apache avec mot de passe=== 
 +Le dossier /etc/local est un bon endroit pour créer les fichiers de mots de passe. 
 +<code root>cd /usr/local/ && ls</​code>​ 
 +<​code>​bin ​ etc  games  include ​ lib  man  sbin  share  src</​code>​ 
 + 
 +  * Il faut créer un dossier apache du nom de son choix : 
 +Par exemple "​passwd"​ 
 +<code root>​mkdir -p apache/​passwd && cd apache/​passwd</​code>​ 
 + 
 +  * Il faut générer des mots de passe pour l'​utilisateur apache2: 
 +La commande ''​htpasswd''​ va créer un fichier qui contiendra utilisateur apache /mot de passe.  
 +<code root>​htpasswd -c passwords web</​code>​ 
 +<​code>​New password:  
 +Re-type new password:  
 +Adding password for user web</​code>​ 
 + 
 +-> ''​-c''​ pour la première fois qu'on crée un mot de passe. Si on l'​utilisait une deuxième fois pour le même fichier "​passwords",​ pour un deuxième utilisateur,​ on écrasera le contenu du fichier, et on perdrait le mot de passe du premier utilisateur. ​ Donc pour un éventuel deuxième utilisateur "​toto":​ ''​htpasswd passwords toto''​.\\  
 +-> le mot de passe est chiffré. 
 + 
 +  * On peut aussi créer un groupe par exemple aussi dans le même dossier /​usr/​local/​apache/​passwd/​ 
 +Par exemple du nom de "​groups"​ : 
 +<code root>vim groups</​code>​ 
 +<​code>​goupe1 web toto</​code>​ 
 + 
 +====Création d'​un ​virtualhost qui bénifiera de la restriction d'​accès ==== 
 +Pour restreindre l'​accès à l'​utilisateur apache afin qu'un login et mot de passe soit requis pour accéder au site du Virtualhost ​qui sera crée, il faut modifier d'​abord le virtualhost "/​etc/​apache2/​sites-available/​default"​ 
 +===Configurer le site "​default" ​ === 
 +Cela est nécessaire pour restreindre l'​accès du site qui sera crée dans le répertoire de l'​utilisateur du système ($USER). 
 + 
 +  * On désactive "​default"​ : ''​a2dissite default''​ 
 + 
 +  * On modifie "/​etc/​apache2/​sites-available/​default"​ comme ceci : 
 + 
 +<code root>vim /​etc/​apache2/​sites-available/​default</​code>​ 
 +<​code>​ 
 +<​VirtualHost *:80> 
 +        ServerAdmin webmaster@localhost 
 + 
 +        DocumentRoot /var/www 
 +        <​Directory /> 
 +                Options FollowSymLinks 
 +                AllowOverride AuthConfig 
 +        </​Directory>​ 
 +        <​Directory /​var/​www/>​ 
 +                Options Indexes FollowSymLinks MultiViews 
 +                AllowOverride AuthConfig 
 +                Order allow,​deny 
 +                allow from all 
 +                AuthType Basic 
 +                AuthName "Ma zone est restreinte !" 
 +                AuthBasicProvider file 
 +                AuthUserFile /​usr/​local/​apache/​passwd/​passwords 
 +                AuthGroupFile /​usr/​local/​apache/​passwd/​groups 
 +                Require valid-user 
 +        </​Directory>​ 
 +</​code>​ 
 + 
 +<​note>​ 
 +**Bien remarquer que pour pouvoir ajouter cette directive**\\  
 +-> on a mis ''​AllowOverride AuthConfig''​ à la place de ''​AllowOverride none''​. 
 + 
 + 
 +**Pour autoriser l'​accès à tous les utilisateurs** qui ont un mot de passe apache :\\  
 +-> ''​Require valid-user''​\\  
 + 
 +**On aurrait pu mettre** :\\  
 +-> ''​Require user web''​\\  
 +-> ''​Require group groupe1''​\\  
 + 
 +**On remarque que l'​option ''​Options -FollowSymLinks''​** : qui évite de suivre les liens symbolique depuis la racine /var/www 
 +</​note>​ 
 +====Développer son site web dans un /home/user ==== 
 +Cela ne constitue pas une sécurité, mais travailler directement dans /var/www/ n'est pas recommandé ; par exemple avec un partitionnement automatique,​ il y a plus de place dans /home/user que dans /var/www/ 
 +Il faut pour cela : 
 +===Créer un nouveau compte user sur le système Linux===
   * Par exemple du nom de "​web"​   * Par exemple du nom de "​web"​
 <code root>​adduser --system web --ingroup www-data</​code>​ <code root>​adduser --system web --ingroup www-data</​code>​
  
-  * On lui crée un mot de passe :+  * On lui crée un mot de passe système ​: 
 +(Différent de celui de l'​utilisateur apache)
 <code root> passwd web</​code> ​ <code root> passwd web</​code> ​
  
-  * On crée les fichiers ​du site web, par exemple du nom de "pegaseous.com":​ +===Créer le répertoire et les fichiers ​pour le site web "monsite.com" ​dans /​home/​user=== 
-<​code>​mkdir -p pegaseous.com/​public_html</​code>​+ 
 +  * On crée les dossiers principaux ​: 
 + 
 +<​code ​root>cd /home/web/ && ​mkdir -p monsite.com/​public_html</​code>​
  
   * On corrige l'​appartenance et les droits :   * On corrige l'​appartenance et les droits :
Ligne 354: Ligne 453:
  
   * On édite un index.html :   * On édite un index.html :
-<code root>vim /home/web/pegaseous.com/​public_html/​index.html</​code>​+<code root>vim /home/web/monsite.com/​public_html/​index.html</​code>​ 
 +<​code><​html>​ 
 + <​body>​ 
 + <​h1>​Bienvenue sur monsite.com</​h1>​ 
 +  <​p>​Site en cours de réalisation !</​p>​ 
 + </​body>​ 
 +</​html>​</​code>​
  
-  * On crée un lien symbolique vers /var/www : +  * On supprime "​monsite.com"​ de /var/www
-<code root>ln -s /​home/​web/​pegaseous.com/ ​/var/www/pegaseous.com</​code>​+<code root>cd /var/www/</​code>​ 
 +<code root>rm -r monsite.com</​code>​
  
-  * On édite ​un fichier ​/etc/apache2/sites-available/​pegaseous.com ​+  * On crée un lien symbolique "​monsite.com"​ dans /var/www/ : 
-Pour aller plus vite on peut se servir d'un fichier "sites-available"​ existant qu'on modifiera. Par exemple celui du site "monsite.com".+<code root>​ln ​-s /home/web/monsite.com/ /​var/​www/​monsite.com</​code>​
  
-Si on a suivi le wiki du début : +===Création d'un virtualhost apache2 pour le nouveau site "monsite.com"===
-<​code>​cp /​etc/​apache2/​sites-available/​monsite.com ​/​etc/​apache2/​sites-available/​pegaseous.com</​code>​+
  
-Si on n'a pas de fichier "​sites-available/​monsite.com"​ : ''​vim /​etc/​apache2/​sites-available/​pegaseous.com''​ et on y colle ce qui suit.+<code root>vim /​etc/​apache2/​sites-available/​monsite.com</​code>​
  
-<​code ​text><​VirtualHost *:80>+<​code>​ 
 +<​VirtualHost *:80>
         ServerAdmin webmaster@localhost         ServerAdmin webmaster@localhost
-        ServerName ​pegaseous.com +        ServerName ​monsite.com 
-        ServerAlias www.pegaseous.com +        ServerAlias www.monsite.com 
- +  
-        DocumentRoot /var/www/pegaseous.com +        DocumentRoot /var/www/monsite.com 
 + 
         <​Directory />         <​Directory />
-                Options FollowSymLinks +                Options ​-FollowSymLinks 
-                AllowOverride ​None+                AllowOverride ​AuthConfig
         </​Directory>​         </​Directory>​
         <​Directory /​var/​www/>​         <​Directory /​var/​www/>​
                 Options -Indexes                 Options -Indexes
-                Options ​+FollowSymLinks +                Options ​-FollowSymLinks 
-               ​Options -Includes+                Options -Includes
                 Options -ExecCGI                 Options -ExecCGI
                 Options MultiViews                 Options MultiViews
Ligne 396: Ligne 502:
                 Allow from all                 Allow from all
         </​Directory>​         </​Directory>​
 + 
         ErrorLog ${APACHE_LOG_DIR}/​error.log         ErrorLog ${APACHE_LOG_DIR}/​error.log
 + 
         # Possible values include: debug, info, notice, warn, error, crit,         # Possible values include: debug, info, notice, warn, error, crit,
         # alert, emerg.         # alert, emerg.
Ligne 406: Ligne 512:
 </​code>​ </​code>​
  
-  * On active le site pegaseous.com +  * On active le site "​monsite.com"
-<code root>​a2ensite pegaseous.com</​code>​+
  
-Et on recharge : ''​service apache2 reload''​.+<code root>​a2ensite monsite.com</​code>​
  
-  * Enfin on teste tout ça  +<code root>​service apache2 reload</code>
-Au niveau du navigateur : ''​http:​//​ip-du-serveur/​pegaseous.com''​+
  
-<​code>​Index of /pegaseous.com +  * On vérifie : 
-[ICO] Name Last modified Size Description +Depuis son navigateur : ''​http:​//​ip-serveur/​monsite.com/''​\\ ​
-[DIR] Parent Directory -  +
-[DIR] public_html/​ 20-Sep-2014 09:15 -  +
-</code>+
  
-Si on clique sur : ''​public_html'​' ​+8-) **Le login du compte apache (nom de l'utilisateur du système Linux) est demandé ainsi que son mot de passe.**
  
-<code>Bienvenue sur pegaseous.com+<note tip> 
 +**__À ne pas confondre avec le module userdir__**. 
 +Il permet de créer une page web servie par apache dans le répertoire utilisateur.\\  
 +Par exemple comme ceci :
  
-Site en cours de réalisation !</​code>​+<code root>​a2enmod userdir ​</​code>​ 
 +Cela vient de créer un lien symbolique pour chacun de ces fichier dans "/​etc/​apache2/​mods-enabled"​
  
-On peut réactiver "​monsite"​ si on le souhaite. +  * On recharge apache : ''​service apache2 restart''​ 
-> Dans ce cas on peut accéder à "​monsite" ​en tapant ​''​http://ip-du-serveur/monsite.com''​; + 
-> ou à "​pegaseous.com"​ en tapant ​''​http://​ip-du-serveur/pegaseous.com''​.+**__Pour tester ​le module__** : 
 + 
 +D'​abord il faut se loger en user ''​exit''​ 
 +  * On crée un index.html dans le répertoire de l'​utilisateur principal du système ​: 
 +<code user>​cd ​/home/$USER</​code>​ 
 +<code user>​mkdir ~/​public_html && echo\ 
 + "<​html><​body>​Notre test du module UserDir</​body></​html>"​\ 
 + > ~/​public_html/index.html</​code>​ 
 +  * On recharge apache : ''​service apache2 restart''​ 
 +  * On vérifie que la page est accessible : 
 +Dans le navigateur : ''​http://​ip-serveur/​~utilisateur''​ 
 +<​code>​Notre test du module UserDir</​code>​ 
 +</​note>​
  
 Il reste à ajouter un module par exemple pour le php.  Il reste à ajouter un module par exemple pour le php. 
Ligne 488: Ligne 605:
 Puisque tout fonctionne, pour utiliser php dans les autres sites, il n'y a qu'à modifier le nom de leur page d'​index.html en index.php et entrer du code php bien sûr. Puisque tout fonctionne, pour utiliser php dans les autres sites, il n'y a qu'à modifier le nom de leur page d'​index.html en index.php et entrer du code php bien sûr.
  
-  * Par exemple pour "pegaseous" :+  * Par exemple pour "monsite.com" :
  
-<code root>mv /home/web/pegaseous.com/​public_html/​index.html /home/web/pegaseous.com/​public_html/​index.php</​code>​+<code root>mv /home/web/monsite.com/​public_html/​index.html /home/web/monsite.com/​public_html/​index.php</​code>​
  
-<code root>vim /home/web/pegaseous.com/​public_html/​index.php</​code>​+<code root>vim /home/web/monsite.com/​public_html/​index.php</​code>​
 <​code><​html>​ <​code><​html>​
  <​body>​  <​body>​
- <​h1>​Bienvenue sur pegaseous.com</​h1>​+ <​h1>​Bienvenue sur monsite.com</​h1>​
   <​p>​Site en cours de réalisation !</p>   <​p>​Site en cours de réalisation !</p>
 <?php <?php
Ligne 508: Ligne 625:
  
   * Tester en tapant dans le navigateur :   * Tester en tapant dans le navigateur :
-''​http://​ip-du-serveur/​pegaseous.com''​+''​http://​ip-du-serveur/​monsite.com''​
  
 et cliquer sur ''​public_html/''​ : et cliquer sur ''​public_html/''​ :
  
-<​code>​Bienvenue sur pegaseous.com+<​code>​Bienvenue sur monsite.com
  
 Site en cours de réalisation ! Site en cours de réalisation !
doc/reseau/apache2/tp01.txt · Dernière modification: 01/11/2019 08:43 par smolski

Pied de page des forums

Propulsé par FluxBB