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 13:14]
Hypathie [Sécuriser son site]
doc:reseau:apache2:tp01 [22/09/2014 15:42]
Hypathie [Sécuriser son site web]
Ligne 260: Ligne 260:
 </​code>​ </​code>​
  
-=====Créer un Virtualhost et son site web=====+=====Sécuriser ​son site web=====
  
 ====Sécuriser Apache2 ==== ====Sécuriser Apache2 ====
Ligne 285: Ligne 285:
  
 ====Vérifier certaines options <​Directory>​ de son Virtualhost==== ====Vérifier certaines options <​Directory>​ de son Virtualhost====
-===Limiter l'​accès à toute l'​arborescence du système Linux=== 
  
-  * Désactiver le site "​sites-available/​default"​ :+  * Désactiver le site "​sites-available/​default"​ : 
  
 <code root>​a2dissite default</​code>​ <code root>​a2dissite default</​code>​
Ligne 307: Ligne 306:
         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 
-                AllowOverride ​None+                AllowOverride ​AuthConfig
         </​Directory>​         </​Directory>​
         <​Directory /​var/​www/>​         <​Directory /​var/​www/>​
Ligne 330: Ligne 329:
 > ''​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 : +====Création d'un nouvelle utilisateur du système Linux==== 
-<code root>​a2ensite monsite.com</​code>​ +On développera son site dans le répertoire de cet utilisateurIl est plus facile de surveiller un système bien rangé !
- +
-Et comme indiqué : ''​service apache2 reload''​.+
  
-====Restreindre l'​accès au site par login et mot de passe ==== 
-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 : 
- 
-===Création d'un utilisateur apache2=== 
-Pas forcément du même nom que celui de l'​utilisateur du 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>​
Ligne 348: 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>​
- 
-  * On corrige l'​appartenance et les droits : 
- 
-<code root>​chown -R root:​www-data /home/web/ && chmod -R 755 /​home/​web/</​code>​ 
  
   * On édite un index.html :   * On édite un index.html :
 <code root>vim /​home/​web/​monsite.com/​public_html/​index.html</​code>​ <code root>vim /​home/​web/​monsite.com/​public_html/​index.html</​code>​
 +<​code><​html>​
 + <​body>​
 + <​h1>​Bienvenue sur pegaseous.com</​h1>​
 +  <​p>​Site en cours de réalisation !</p>
 + </​body>​
 +</​html></​code>​
 +
 +====Restreindre l'​accès à "​monsite.com"​ par login et mot de passe ====
 +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 va créer un compte utilisateur du système Linux et un compte apache avec la commande htpasswd.
 +
 +===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.
  
-===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 root>cd /usr/local/ && ls</​code>​
 <​code>​bin ​ etc  games  include ​ lib  man  sbin  share  src</​code>​ <​code>​bin ​ etc  games  include ​ lib  man  sbin  share  src</​code>​
Ligne 381: 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 à 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"​ +Pour restreindre l'​accès à "​monsite.com"​, 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).+===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éé.
  
   * On désactive "​default"​ : ''​a2dissite default''​   * On désactive "​default"​ : ''​a2dissite default''​
Ligne 428: Ligne 428:
 **On remarque que l'​option ''​Options -FollowSymLinks''​** : qui évite de suivre les liens symbolique depuis la racine /var/www **On remarque que l'​option ''​Options -FollowSymLinks''​** : qui évite de suivre les liens symbolique depuis la racine /var/www
 </​note>​ </​note>​
-====Développer son site web dans un /home/ ==== 
-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"​ 
-<code root>​adduser --system web --ingroup www-data</​code>​ 
- 
-  * On lui crée un mot de passe système : 
-(Différent de celui de l'​utilisateur apache) 
-<code root> passwd web</​code> ​ 
- 
-===Créer le répertoire et les fichiers pour le site web "​monsite.com"​ dans /​home/​user=== 
- 
-  * 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 : 
- 
-<code root>​chown -R root:​www-data /home/web/ && chmod -R 755 /​home/​web/</​code>​ 
- 
-  * On édite un index.html : 
-<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 supprime "​monsite.com"​ de /var/www/ : 
-<code root>cd /​var/​www/</​code>​ 
-<code root>rm -r monsite.com</​code>​ 
- 
-  * On crée un lien symbolique "​monsite.com"​ dans /var/www/ : 
-<code root>ln -s /​home/​web/​monsite.com/​ /​var/​www/​monsite.com</​code>​ 
  
-===Création d'un virtualhost apache2 pour le nouveau 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 509: Ligne 473:
 </​code>​ </​code>​
  
-  * On active ​le site "​monsite.com"​+  * On supprime ​le fichier ​"​monsite.com" ​de /var/www/ : 
 +<code root>cd /​var/​www/</​code>​ 
 +<code root>rm -r monsite.com</​code>​
  
-<code root>a2ensite ​monsite.com</​code>​+  * On crée un lien symbolique "​monsite.com"​ dans /var/www/ : 
 +<code root>ln -s /​home/​web/​monsite.com/​ /var/www/monsite.com</​code>​
  
-<code root>​service apache2 reload</​code>​+====Limiter l'​accès à toute l'​arborescence du système Linux====
  
-  * On vérifie : +===Modifier le groupe de /var/www === 
-Depuis son navigateur : ''​http:​//ip-serveur/​monsite.com/''​\\ ​+On attribue les fichiers de /var/www au groupe www-data et non à l'​utilisateur root.
  
-8-) **Le login du compte apache (nom de l'​utilisateur du système Linux) est demandé ainsi que son mot de passe.**+<code root>​chown ​-R root:​www-data /var/www/*</​code>​
  
 +===On vérifie les droits POSIX de /var/www/ ===
 <note tip> <note tip>
-**__À ne pas confondre avec le module userdir__**. +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 ​:
-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>​ +  -rw-r----- 1 root www-data 142  3 déc.  17:03 index.html
-Cela vient de créer un lien symbolique pour chacun de ces fichier dans "/​etc/​apache2/​mods-enabled"​+
  
-  * On recharge apache ​''​service apache2 restart''​+On utilise les droits suivants ​: 
 +  * droits en lecture (r) écriture (w) sur les fichiers réguliers,​ 
 +  * droits en lecture (r) écriture (w) exécution (x) sur les répertoires. 
 +</​note>​
  
-**__Pour tester le module__** :+<code root>cd /​var/</​code>​
  
-D'​abord ​il faut se loger en user ''​exit''​ +**Pour le répertoire /var/www** , il faut donc :\\ ''​drwxr-xr-x ​ 2 root root  4096 sept. 22 11:47 www''​ 
-  On crée un index.html ​dans le répertoire de l'utilisateur principal du système ​+<code root>​chmod 755 www</​code>​ 
-<​code ​user>cd /home/$USER</​code>​ + 
-<​code ​user>mkdir ~/​public_html ​&& echo+**Pour /var/www/index.html**, il faut donc :\\ ''​-rw-r----- 1 root www-data 142  3 déc.  17:03 index.html''​ 
- "<html><​body>​Notre test du module UserDir</body></html>"+<​code ​root>chmod 640 /var/www/​index.html</​code>​ 
- > ~/​public_html/​index.html</​code>​ + 
-  On recharge apache ​: ''​service apache2 restart''​ +**Pour /​home/​web/​monsite.com**,​ il faut donc :\\ ''​drwxr-xr-x 3 root www-data 4096 sept. 22 11:44 monsite.com'':​ 
-  ​* ​On vérifie ​que la page est accessible : +<​code ​root>chmod 755 /​home/​web/​monsite.com/</​code>​ 
-Dans le navigateur : ''​http://​ip-serveur/​~utilisateur''​ + 
-<​code>​Notre test du module UserDir</​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'':​ 
-</​note>​+<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''​ 
 +<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>​ 
 + 
 +**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. 
 + 
 +===On vérifie ​depuis son navigateur=== 
 + 
 +  * On ré-active ​le site "​monsite.com"​ 
 + 
 +<code root>​a2ensite monsite.com</​code>​ 
 + 
 +<code root>​service apache2 reload</​code>​ 
 +''​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.**
  
-Il reste à ajouter un module par exemple pour le php.  
 ===== Installer le module php===== ===== Installer le module php=====
 ===Installer libapache2-mod-php5 === ===Installer libapache2-mod-php5 ===
doc/reseau/apache2/tp01.txt · Dernière modification: 01/11/2019 08:43 par smolski

Pied de page des forums

Propulsé par FluxBB