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 17:27]
Hypathie [Configurations d'un site web]
doc:reseau:apache2:tp01 [23/09/2014 14:11]
Hypathie [Sécuriser son site web]
Ligne 275: Ligne 275:
 Dans /​etc/​apache2/​mod-enabled,​ ce sont des liens symboliques qui activent ce module: Dans /​etc/​apache2/​mod-enabled,​ ce sont des liens symboliques qui activent ce module:
 <code root>ls -l /​etc/​apache2/​mods-enabled/​php5*</​code>​ <code root>ls -l /​etc/​apache2/​mods-enabled/​php5*</​code>​
-<​code>​lrwxrwxrwx 1 root root 27 sept. 20 11:40 /​etc/​apache2/​mods-enabled/​php5.conf -> ../​mods-available/​php5.conf +<​code>​lrwxrwxrwx 1 root root 27 sept. 20 11:40
-lrwxrwxrwx 1 root root 27 sept. 20 11:40 /​etc/​apache2/​mods-enabled/​php5.load -> ../​mods-available/​php5.load</​code>​+ /​etc/​apache2/​mods-enabled/​php5.conf -> ../​mods-available/​php5.conf 
 +lrwxrwxrwx 1 root root 27 sept. 20 11:40
 + /​etc/​apache2/​mods-enabled/​php5.load -> ../​mods-available/​php5.load</​code>​
  
 -> Puisque les liens sont là, le module est activé. -> Puisque les liens sont là, le module est activé.
 +
 +
  
 ===Activer/​désactiver un module === ===Activer/​désactiver un module ===
Ligne 285: Ligne 289:
   * ''​a2dismod''​ : (apache2 disable module) : désactive un module apache2   * ''​a2dismod''​ : (apache2 disable module) : désactive un module apache2
  
 +Le module est activé par défaut, mais si ce n'​était pas le cas : 
 +
 +<code root>​a2enmod php5</​code>​
 Si on active ou désactive un module ne pas oublier après l'​opération de réactiver apache : ''​service apache2 restart''​ Si on active ou désactive un module ne pas oublier après l'​opération de réactiver apache : ''​service apache2 restart''​
  
 ===Créer la page de test === ===Créer la page de test ===
  
-<​code>​mv /​var/​www/​index.html /​var/​www/​index.php</​code>​+ 
 +<​code ​root>mv /​var/​www/​index.html /​var/​www/​index.php</​code>​
 <code root>vim /​var/​www/​index.php</​code>​ <code root>vim /​var/​www/​index.php</​code>​
 <​code>​ <​code>​
Ligne 313: Ligne 321:
  
 This is the default web page for this server. This is the default web page for this server.
-La date du jour est 20/09/2014! </​code>​ 
- 
-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 "​monsite.com"​ : 
- 
-<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/​monsite.com/​public_html/​index.php</​code>​ 
-<​code><​html>​ 
- <​body>​ 
- <​h1>​Bienvenue sur monsite.com</​h1>​ 
-  <​p>​Site en cours de réalisation !</p> 
-<?php 
-echo "La date du jour est " . date("​d/​m/​Y"​) . "​!\n";​ 
-  ?> 
- </​body>​ 
-</​html></​code>​ 
- 
-  * Recharger apache :  
-  
-<code root>​service apache2 reload</​code>​ 
- 
-  * Tester en tapant dans le navigateur : 
-''​http://​ip-du-serveur/​monsite.com''​ 
- 
-et cliquer sur ''​public_html/''​ : 
- 
-<​code>​Bienvenue sur monsite.com 
- 
-Site en cours de réalisation ! 
 La date du jour est 20/09/2014! </​code>​ La date du jour est 20/09/2014! </​code>​
  
Ligne 373: Ligne 350:
 <code root>​service apache2 restart</​code>​ <code root>​service apache2 restart</​code>​
  
-====Vérifier ​certaines options <​Directory>​ de son Virtualhost====+====Modifier ​certaines options <​Directory>​ de son Virtualhost====
  
   * Désactiver le site "​sites-available/​default"​ :    * Désactiver le site "​sites-available/​default"​ : 
Ligne 398: Ligne 375:
         <​Directory />         <​Directory />
                 Options -FollowSymLinks                 Options -FollowSymLinks
-                AllowOverride ​AuthConfig+                AllowOverride ​None
         </​Directory>​         </​Directory>​
         <​Directory /​var/​www/>​         <​Directory /​var/​www/>​
Ligne 417: Ligne 394:
 >  ''​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]])).
 +
 +> Si on ne peut pas mettre l'​option ''​-FollowSymLinks''​ dans le fichier "​sites-available/​default",​ on peut dans celui de son site.
 +
 +> S'il s'agit d'un usage personnel local, on peut restreindre l'​accès au serveur avec les IP des clients du réseau local.
 + 
 +Pour connaître la signification des différentes options à mettre soit dans "​sites-avaible"​ soit dans le fichier de son site voir : [[http://​httpd.apache.org/​docs/​2.2/​mod/​core.html]]
  
 ====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 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.+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]], ce qui est déconseillé par la documentation d'​apache(("De même, soyez méfiant en jouant avec la directive UserDir"​))
  
   * Par exemple du nom de "​web"​   * Par exemple du nom de "​web"​
Ligne 431: Ligne 416:
 <​code>​mkdir -p monsite.com/​public_html</​code>​ <​code>​mkdir -p monsite.com/​public_html</​code>​
  
-  * On édite un index.html +  * On édite un index pour le dossier /​home/​web/​monsite.com/​public_html/  ​: 
-<code root>vim /​home/​web/​monsite.com/​public_html/​index.html</​code>​+Le module php5 est en place et a été testé, donc on peut créer un "​index.php"​. 
 + 
 +<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
 +  echo "La date du jour est " . date("​d/​m/​Y"​) . "​!\n";​
 +  ?>
  </​body>​  </​body>​
 </​html></​code>​ </​html></​code>​
  
-====Restreindre l'​accès à "​monsite.com"​ par login et mot de passe ====+====Restreindre l'​accès à "​monsite.com"​ par login et mot de passe apache2====
 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.\\ ​ 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.+**Pour ce faire on va créer ​en correspondance au utilisateur ​"​web" ​du système Linuxun mot de passe apache avec la commande ​''​htpasswd''​**.
  
 ===Création d'un mot de passe pour accéder à "​monsite.com"​=== ===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 apache.
  
 <code root>cd /usr/local/ && ls</​code>​ <code root>cd /usr/local/ && ls</​code>​
Ligne 467: Ligne 457:
 Par exemple du nom de "​groups"​ : Par exemple du nom de "​groups"​ :
 <code root>vim groups</​code>​ <code root>vim groups</​code>​
-<​code>​goupe1 web toto</​code>​+<​code>​goupe1web</​code>​
  
 ====Modifier les fichiers des sites actifs de /​etc/​apache2/​sites-available ==== ====Modifier les fichiers des sites actifs de /​etc/​apache2/​sites-available ====
Ligne 485: Ligne 475:
         <​Directory />         <​Directory />
                 Options FollowSymLinks                 Options FollowSymLinks
-                AllowOverride ​AuthConfig+                AllowOverride ​None 
 +                Require all denied
         </​Directory>​         </​Directory>​
         <​Directory /​var/​www/>​         <​Directory /​var/​www/>​
                 Options Indexes FollowSymLinks MultiViews                 Options Indexes FollowSymLinks MultiViews
                 AllowOverride AuthConfig                 AllowOverride AuthConfig
-                Order allow,deny +                Order deny,allow 
-                allow from all+                ​deny from all 
 +                allow from 192.168.0.0/​24
                 AuthType Basic                 AuthType Basic
                 AuthName "Ma zone est restreinte !"                 AuthName "Ma zone est restreinte !"
Ligne 503: Ligne 495:
 <​note>​ <​note>​
 **Bien remarquer que pour pouvoir ajouter cette directive**\\ ​ **Bien remarquer que pour pouvoir ajouter cette directive**\\ ​
--> on a mis ''​AllowOverride AuthConfig''​ à la place de ''​AllowOverride ​none''​.+-> on a mis ''​AllowOverride AuthConfig''​ à la place de ''​AllowOverride ​None'' ​seulement dans la directive "<​Directory /​var/​www/>"​.\\ Mais laisser à ''​None''​ dans "<​Directory />"​(( afin d'​éviter l'​utilisation des fichiers "​.htaccess"​ qui permettent de passer outre les fonctionnalités de sécurité que vous avez configurées.))\\ Mais il faut mettre ''​AuthConfig''​ pour utiliser " AuthName"​ c'​est-à-dire les mots de passe apache.
  
  
Ligne 513: Ligne 505:
 -> ''​Require group groupe1''​\\ ​ -> ''​Require group groupe1''​\\ ​
  
-**On remarque que l'option ​''​Options -FollowSymLinks''​** qui évite ​de suivre ​les liens symbolique depuis la racine ​/var/www+**Pour sécuriser ​l'accès au système de fichier** :\\  
 +''​Require all denied''​ : interdire aux clients ​de parcourir l'​ensemble du système de fichiers. Ceci va interdire l'​accès par défaut à tous les fichiers du système de fichiers; Ensuite on autorise section par section. Voir [[http://​httpd.apache.org/​docs/​trunk/​fr/​misc/​security_tips.html]] et [[http://​httpd.apache.org/​docs/​2.2/mod/core.html#​require| require directive]] 
 </​note>​ </​note>​
  
-===Pour "/​etc/​apache2/​sites-available/​monsite.com"​===+  * Pour "/​etc/​apache2/​sites-available/​monsite.com" ​: Il n'y a pas à modifier quoique ce soit. 
  
-<code root>vim /​etc/​apache2/​sites-available/​monsite.com</​code>​ +===On supprime le fichier "monsite.com" de /​var/​www/ ​=== 
- +(Si on a suivi précédemment : [[atelier:​chantier:​apache2#​creation-du-site-web-dans-var-www|création de "​monsite.com" ​dans /var/www/]])
-<​code>​ +
-<​VirtualHost *:80> +
-        ServerAdmin webmaster@localhost +
-        ServerName monsite.com +
-        ServerAlias www.monsite.com +
-  +
-        DocumentRoot ​/var/www/monsite.com +
-  +
-        <​Directory /> +
-                Options ​-FollowSymLinks +
-                AllowOverride AuthConfig +
-        </​Directory>​ +
-        <​Directory /​var/​www/>​ +
-                Options ​-Indexes +
-                Options ​-FollowSymLinks +
-                Options ​-Includes +
-                Options ​-ExecCGI +
-                Options MultiViews +
-                AllowOverride None +
-                Order deny,​allow +
-                deny from all +
-                allow from 192.168.0.0/​24 +
-        </​Directory>​ +
-        ScriptAlias /cgi-bin/ /​usr/​lib/​cgi-bin/​ +
-        <​Directory "/​usr/​lib/​cgi-bin">​ +
-                AllowOverride None +
-                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +
-                Order allow,​deny +
-                Allow from all +
-        </​Directory>​ +
-  +
-        ErrorLog ${APACHE_LOG_DIR}/​error.log +
-  +
-        # Possible values include: debug, info, notice, warn, error, crit, +
-        # alert, emerg. +
-        LogLevel warn +
-        CustomLog ${APACHE_LOG_DIR}/​access.log combined +
-</​VirtualHost>​ +
-</​code>​ +
- +
-  * 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/ vers /​home/​web/​monsite.com/​ :+===On crée un lien symbolique ​à la place===  
 +Le nom symbolique doit avoir pour nom celui du site ("​monsite.com"​) et il faut le placer ​dans /​var/​www/ ​et le faire pointer ​vers les répertoires et fichiers où le site est développé (/​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>​
  
-====Limiter ​l'accès à toute l'​arborescence du système Linux====+====Vérifier ​l'appartenance et les droits des fichiers utilisés par "​apache"​====
  
 ===Modifier le groupe de /var/www === ===Modifier le groupe de /var/www ===
 +Le groupe www-data ne doit pas être propriétaire de /var/www/ mais ce répertoire peut appartenir au groupe www-data. L'​idée est ainsi de diminuer au maximum les droits du groupe www-data, tout en laissant possible la consultation du site web.
  
 <code root>​chown -R root:​www-data /​var/​www/​*</​code>​ <code root>​chown -R root:​www-data /​var/​www/​*</​code>​
  
 ===On vérifie les droits POSIX de /var/www/ === ===On vérifie les droits POSIX de /var/www/ ===
-<​note ​tip+<​note ​important
-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.php, 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 4096 sept. 22 11:47 index.html+<​code>​-rw-r----- 1 root www-data 4096 sept. 22 11:47 index.php</​code>​
  
 On utilise les droits suivants : On utilise les droits suivants :
Ligne 587: Ligne 543:
 <code root>​chmod 755 /​var/​www</​code>​ <code root>​chmod 755 /​var/​www</​code>​
  
-  * **Pour /​var/​www/​index.html**, il faut donc :\\ ''​-rw-r----- 1 root www-data 4096 sept. 22 11:47 index.html''​ +  * **Pour /​var/​www/​index.php**, il faut donc :\\ ''​-rw-r----- 1 root www-data 4096 sept. 22 11:47 index.php''​ 
-<code root>​chmod 640 /​var/​www/​index.html</​code>​+<code root>​chmod 640 /​var/​www/​index.php</​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'':​
Ligne 596: Ligne 552:
 <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 4096 sept. 22 11:44 index.html''​ +  * **Pour /​home/​web/​monsite.com/​public_html/​index.php**, il faut donc :\\ ''​-rw-r----- 1 root www-data 4096 sept. 22 11:44 index.php''​ 
-<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.php
- &&​ chmod 640 /​home/​web/​monsite.com/​public_html/​index.html</​code>​+ &&​ chmod 640 /​home/​web/​monsite.com/​public_html/​index.php</​code>​
  
   * **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.   * **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.
Ligne 616: Ligne 572:
 <code root>​service apache2 reload</​code>​ <code root>​service apache2 reload</​code>​
  
-Enfin depuis son navigateur : ''​http://​ip-serveur/​monsite.com/''​\\ ​+Enfin depuis son navigateur :\\ ''​http://​ip-serveur/​monsite.com/''​\\ ​ 
 + 
 +{{http://​pix.toile-libre.org/​upload/​img/​1411461721.png?​250}} -> {{http://​pix.toile-libre.org/​upload/​img/​1411461425.png?​250}} 
  
 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 !** 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 !**
  
  
doc/reseau/apache2/tp01.txt · Dernière modification: 01/11/2019 08:43 par smolski

Pied de page des forums

Propulsé par FluxBB