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 [22/09/2014 15:29]
Hypathie [Sécuriser son site web]
doc:reseau:apache2:tp01 [22/09/2014 16:14]
Hypathie [Créer un site web avec apache2]
Ligne 12: Ligne 12:
 **Nota : Ce wiki est écrit par une débutante ** **Nota : Ce wiki est écrit par une débutante **
  
-Contributeurs,​ merci de compléter [[atelier:​chantier:​apache2#​securiser-son-site|la partie sur la sécurité]] ! FIXME +Contributeurs,​ merci de compléter [[atelier:​chantier:​apache2#​securiser-son-site-web|la partie sur la sécurité]] ! FIXME 
 ===== Introduction ===== ===== Introduction =====
 Ce qui est mis en œuvre ici concerne une utilisation d'un serveur apache sur un réseau local qui ne pointe pas un nom de domaine acquis mais fictif.\\ ​ Ce qui est mis en œuvre ici concerne une utilisation d'un serveur apache sur un réseau local qui ne pointe pas un nom de domaine acquis mais fictif.\\ ​
Ligne 290: Ligne 290:
 <code root>​a2dissite default</​code>​ <code root>​a2dissite default</​code>​
  
-  * Ensuite on va modifier les directives du site "/​etc/​apache2/​sites-available/​monsite.com"​ :+  * Désactiver le site "​monsite.com"​ :
  
-Pour ce faire, on le désactive d'​abord : 
 <code root>​a2dissite monsite.com</​code>​ <code root>​a2dissite monsite.com</​code>​
  
-Et on recharge ​''​service ​apache2 ​reload''​.\\ +  * Ensuite ​on va modifier les directives du site "/​etc/​apache2/​sites-available/​monsite.com" ​: 
 + 
 +On édite "/etc/apache2/​sites-available/​monsite.com" :
  
-Puis on édite "/​etc/​apache2/​sites-available/​monsite.com"​. 
 <code root>vim /​etc/​apache2/​sites-available/​monsite.com</​code>​ <code root>vim /​etc/​apache2/​sites-available/​monsite.com</​code>​
  
Ligne 308: Ligne 308:
         DocumentRoot /​var/​www/​monsite.com         DocumentRoot /​var/​www/​monsite.com
         <​Directory />         <​Directory />
-                Options FollowSymLinks +                Options ​-FollowSymLinks 
-                AllowOverride ​None+                AllowOverride ​AuthConfig
         </​Directory>​         </​Directory>​
         <​Directory /​var/​www/>​         <​Directory /​var/​www/>​
Ligne 328: Ligne 328:
 >  ''​Options -Includes''​ :  Pour désactiver l'​option permettant à apache de faire des inclusions côté serveur. >  ''​Options -Includes''​ :  Pour désactiver l'​option permettant à apache de faire des inclusions côté serveur.
 > ''​Options -ExecCGI''​ : Pour désactiver l'​option permettant à apache l'​utilisation de scripts CGI. Désactiver cette option seulement si on n'​utilise pas de script CGI(([[http://​fr.wikipedia.org/​wiki/​Common_Gateway_Interface]])). > ''​Options -ExecCGI''​ : Pour désactiver l'​option permettant à apache l'​utilisation de scripts CGI. Désactiver cette option seulement si on n'​utilise pas de script CGI(([[http://​fr.wikipedia.org/​wiki/​Common_Gateway_Interface]])).
- 
-  * On réactive le site : 
-<code root>​a2ensite monsite.com</​code>​ 
- 
-Et comme indiqué : ''​service apache2 reload''​. 
  
 ====Création d'un nouvelle utilisateur du système Linux==== ====Création d'un nouvelle utilisateur du système Linux====
-On développera son site dans le répertoire de cet utilisateur. Il est plus facile ​de surveiller un système bien rangé ​!+On développera son site dans le répertoire de cet utilisateur. Il est déconseillé ​de développer son site dans /var/www, surtout si la partition est plus petite que /​home/ ​Cela évitera aussi de mettre en place le module [[http://​httpd.apache.org/​docs/​current/​fr/​mod/​mod_userdir.html|userdir]] déconseillé par la documentation d'​apache.
  
   * Par exemple du nom de "​web"​   * Par exemple du nom de "​web"​
Ligne 344: Ligne 339:
  
   * On crée les fichiers du site web, "​monsite.com"​ dans /home/web/:   * On crée les fichiers du site web, "​monsite.com"​ dans /home/web/:
 +<code root>cd /​home/​web/</​code>​
 <​code>​mkdir -p monsite.com/​public_html</​code>​ <​code>​mkdir -p monsite.com/​public_html</​code>​
  
Ligne 359: Ligne 355:
 Pour ce faire on va créer un compte utilisateur du système Linux et un compte apache avec la commande htpasswd. Pour ce faire on va créer un compte utilisateur du système Linux et un compte apache avec la commande htpasswd.
  
-===Création ​du compte apache avec mot de passe===+===Création ​d'​un ​mot de passe pour accéder à "​monsite.com"​===
 Le dossier /etc/local est un bon endroit pour créer les fichiers de mots de passe de ce compte apache. Le dossier /etc/local est un bon endroit pour créer les fichiers de mots de passe de ce compte apache.
  
Ligne 384: Ligne 380:
 <​code>​goupe1 web toto</​code>​ <​code>​goupe1 web toto</​code>​
  
-====Création d'un virtualhost qui bénifiera ​de la restriction d'​accès ​====+====Modifier les fichiers des sites actifs ​de /​etc/​apache2/​sites-available ​====
 Pour restreindre l'​accès à "​monsite.com",​ il faut modifier d'​abord le virtualhost "/​etc/​apache2/​sites-available/​default"​ Pour restreindre l'​accès à "​monsite.com",​ il faut modifier d'​abord le virtualhost "/​etc/​apache2/​sites-available/​default"​
  
-===Configurer le site "​default" ​ ===+===Pour "/​etc/​apache2/​sites-available/​default" ​ ===
 Cela est nécessaire pour restreindre l'​accès du site qui est développé dans le répertoire de l'​utilisateur /​home/​web/​monsite.com qu'on a créé. Cela est nécessaire pour restreindre l'​accès du site qui est développé dans le répertoire de l'​utilisateur /​home/​web/​monsite.com qu'on a créé.
- 
-  * On désactive "​default"​ : ''​a2dissite default''​ 
  
   * On modifie "/​etc/​apache2/​sites-available/​default"​ comme ceci :   * On modifie "/​etc/​apache2/​sites-available/​default"​ comme ceci :
Ligne 433: Ligne 427:
 </​note>​ </​note>​
  
-===On modifie le virtualhost du site "​monsite.com"​===+===Pour "/​etc/​apache2/​sites-available/​monsite.com"​===
  
 <code root>vim /​etc/​apache2/​sites-available/​monsite.com</​code>​ <code root>vim /​etc/​apache2/​sites-available/​monsite.com</​code>​
Ligne 477: Ligne 471:
 </​code>​ </​code>​
  
-  * On supprime "​monsite.com"​ de /var/www/ :+  * On supprime ​le fichier ​"​monsite.com"​ de /var/www/ :
 <code root>cd /​var/​www/</​code>​ <code root>cd /​var/​www/</​code>​
 <code root>rm -r monsite.com</​code>​ <code root>rm -r monsite.com</​code>​
  
-  * On crée un lien symbolique "​monsite.com"​ dans /var/www/ :+  * On crée un lien symbolique "​monsite.com"​ dans /var/www/ vers /​home/​web/​monsite.com/ :
 <code root>ln -s /​home/​web/​monsite.com/​ /​var/​www/​monsite.com</​code>​ <code root>ln -s /​home/​web/​monsite.com/​ /​var/​www/​monsite.com</​code>​
- 
-  * On active le site "​monsite.com"​ 
- 
-<code root>​a2ensite monsite.com</​code>​ 
- 
-<code root>​service apache2 reload</​code>​ 
- 
-<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 : 
- 
-<code root>​a2enmod userdir </​code>​ 
-Cela vient de créer un lien symbolique pour chacun de ces fichier dans "/​etc/​apache2/​mods-enabled"​ 
- 
-  * On recharge apache : ''​service apache2 restart''​ 
- 
-**__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>​ 
  
 ====Limiter l'​accès à toute l'​arborescence du système Linux==== ====Limiter l'​accès à toute l'​arborescence du système Linux====
  
 ===Modifier le groupe de /var/www === ===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>​ <code root>​chown -R root:​www-data /​var/​www/​*</​code>​
Ligne 525: Ligne 488:
 A priori le fichier /​var/​www/​index.html,​ au même titre que n'​importe quelle page web accessible depuis un navigateur web, devrait avoir les droits suivants : A priori le fichier /​var/​www/​index.html,​ au même titre que n'​importe quelle page web accessible depuis un navigateur web, devrait avoir les droits suivants :
  
-  -rw-r----- 1 root www-data ​142  3 déc 17:03 index.html+  -rw-r----- 1 root www-data ​4096 sept22 11:47 index.html
  
 On utilise les droits suivants : On utilise les droits suivants :
-  * droits en lecture (r) écriture (w) sur les fichiers réguliers,​ +  * droits en lecture ​<​nowiki>​(r)</​nowiki> ​écriture (w) sur les fichiers réguliers,​ 
-  * droits en lecture (r) écriture (w) exécution (x) sur les répertoires.+  * droits en lecture ​<​nowiki>​(r)</​nowiki> ​écriture (w) exécution (x) sur les répertoires.
 </​note>​ </​note>​
  
-<code root>cd /​var/</​code>​+  * **Pour le répertoire /var/www** , il faut donc :\\ ''​drwxr-xr-x ​ 2 root root  4096 sept. 22 11:47 www''​ 
 +<code root>chmod 755 /var/www</​code>​
  
-**Pour le répertoire /var/www** , il faut donc :\\ ''​drwxr-xr-x ​ 2 root root  4096 sept. 22 11:47 www''​ +  ​* **Pour /​var/​www/​index.html**,​ il faut donc :\\ ''​-rw-r----- 1 root www-data ​4096 sept22 11:47 index.html''​
-<code root>​chmod 755 www</​code>​ +
- +
-**Pour /​var/​www/​index.html**,​ il faut donc :\\ ''​-rw-r----- 1 root www-data ​142  3 déc 17:03 index.html''​+
 <code root>​chmod 640 /​var/​www/​index.html</​code>​ <code root>​chmod 640 /​var/​www/​index.html</​code>​
  
-**Pour /​home/​web/​monsite.com**,​ il faut donc :\\ ''​drwxr-xr-x 3 root www-data 4096 sept. 22 11:44 monsite.com'':​+  * **Pour /​home/​web/​monsite.com**,​ il faut donc :\\ ''​drwxr-xr-x 3 root www-data 4096 sept. 22 11:44 monsite.com'':​
 <code root>​chmod 755 /​home/​web/​monsite.com/</​code>​ <code root>​chmod 755 /​home/​web/​monsite.com/</​code>​
  
-**Pour /​home/​web/​monsite.com/​public_html**,​ il faut donc :​\\''​drwxr-xr-x 2 root www-data 4096 sept. 22 11:44 public_html'':​+  * **Pour /​home/​web/​monsite.com/​public_html**,​ il faut donc :\\ ''​drwxr-xr-x 2 root www-data 4096 sept. 22 11:44 public_html'':​
 <code root>​chmod 755 /​home/​web/​monsite.com/​public_html/</​code>​ <code root>​chmod 755 /​home/​web/​monsite.com/​public_html/</​code>​
  
-**Pour /​home/​web/​monsite.com/​public_html/​inde**,​ il faut donc :\\ ''​-rw-r----- 1 root www-data ​111 sept. 22 11:44 index.html''​+  * **Pour /​home/​web/​monsite.com/​public_html/​inde**,​ il faut donc :\\ ''​-rw-r----- 1 root www-data ​4096 sept. 22 11:44 index.html''​
 <code root>​chown root:​www-data /​home/​web/​monsite.com/​public_html/​index.html\ <code root>​chown root:​www-data /​home/​web/​monsite.com/​public_html/​index.html\
  &&​ chmod 640 /​home/​web/​monsite.com/​public_html/​index.html</​code>​  &&​ chmod 640 /​home/​web/​monsite.com/​public_html/​index.html</​code>​
  
-**Pour le lien symbolique /​var/​www/​monsite.com** : on ne peut modifier ces droits mais ce n'est pas grave. Ce qui compte c'est le fichier vers lequel pointe un lien symbolique.+  * **Pour le lien symbolique /​var/​www/​monsite.com** : on ne peut pas modifier ces droits mais ce n'est pas grave. Ce qui compte c'est le fichier vers lequel pointe un lien symbolique.
  
 ===On vérifie depuis son navigateur=== ===On vérifie depuis son navigateur===
-''​http://​ip-serveur/​monsite.com/''​\\ ​ 
  
-8-) **Le login du compte apache (nom de l'​utilisateur du système Linux) est demandé ainsi que son mot de passe.**+  * On ré-active le site "​default"​ 
 + 
 +<code root>​a2ensite default</​code>​ 
 + 
 +  * On ré-active le site "​monsite.com"​ 
 + 
 +<code root>​a2ensite monsite.com</​code>​ 
 + 
 +  * On recharge apache2 : 
 + 
 +<code root>​service apache2 reload</​code>​ 
 + 
 +Enfin depuis son navigateur : ''​http://​ip-serveur/​monsite.com/''​\\  
 + 
 +8-) **Le login du compte apache (nom de l'​utilisateur du système Linux) est demandé ainsi que son mot de passe et on peut accéder à ses pages d'​index !**
  
 ===== Installer le module php===== ===== Installer le module php=====
doc/reseau/apache2/tp01.txt · Dernière modification: 01/11/2019 08:43 par smolski

Pied de page des forums

Propulsé par FluxBB