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 →
Ci-dessous, les différences entre deux révisions de la page.
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 11:55] Hypathie [Développer son site web dans un /home/] |
doc:reseau:apache2:tp01 [22/09/2014 16:08] Hypathie [Sécuriser 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> | ||
- | ===Limiter l'accès à toute l'arborescence du système Linux=== | + | ====Vérifier certaines options <Directory> de son Virtualhost==== |
- | * Désactiver le site "sites-available/efault" : | + | * Désactiver le site "sites-available/default" : |
<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 303: | 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 326: | 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 utilisateur. Il est déconseillé de développer son site dans /var/www, surtout si la partition est plus petite que /home/ ! |
- | + | ||
- | Et comme indiqué : ''service apache2 reload''. | + | |
- | =====Développer son site web dans un /home/ et restreindre l'accès par mot de passe===== | ||
- | ====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 341: | 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 et du 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 374: | Ligne 380: | ||
<code>goupe1 web toto</code> | <code>goupe1 web toto</code> | ||
- | ====Création d'un virtualhost avec 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). | + | |
- | * On désactive "default" : ''a2dissite 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éé. | ||
* On modifie "/etc/apache2/sites-available/default" comme ceci : | * On modifie "/etc/apache2/sites-available/default" comme ceci : | ||
Ligne 422: | Ligne 427: | ||
</note> | </note> | ||
- | ===Création d'un compte système pour le Virtualhost à créer=== | + | ===Pour "/etc/apache2/sites-available/monsite.com"=== |
- | * 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 : | + | |
- | <code root> passwd web</code> | + | |
- | ===Création du répertoire et des fichiers pour le site web "monsite.com" === | + | |
- | * On crée des 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 pegaseous.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 pour le nouveau site "monsite.com=== | + | |
<code root>vim /etc/apache2/sites-available/monsite.com</code> | <code root>vim /etc/apache2/sites-available/monsite.com</code> | ||
Ligne 460: | Ligne 434: | ||
<VirtualHost *:80> | <VirtualHost *:80> | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
- | ServerName pegaseous.com | + | ServerName monsite.com |
ServerAlias www.monsite.com | ServerAlias www.monsite.com | ||
Ligne 497: | Ligne 471: | ||
</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/ vers /home/web/monsite.com/ : |
+ | <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/''\\ | + | |
- | 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 4096 sept. 22 11:47 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 <nowiki>(r)</nowiki> écriture (w) sur les fichiers réguliers, | ||
+ | * droits en lecture <nowiki>(r)</nowiki> écriture (w) exécution (x) sur les répertoires. | ||
+ | </note> | ||
- | **__Pour tester le module__** : | + | * **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> | ||
- | D'abord il faut se loger en user ''exit'' | + | * **Pour /var/www/index.html**, il faut donc :\\ ''-rw-r----- 1 root www-data 4096 sept. 22 11:47 index.html'' |
- | * On crée un index.html dans le répertoire de l'utilisateur principal du système : | + | <code root>chmod 640 /var/www/index.html</code> |
- | <code user>cd /home/$USER</code> | + | |
- | <code user>mkdir ~/public_html && echo\ | + | * **Pour /home/web/monsite.com**, il faut donc :\\ ''drwxr-xr-x 3 root www-data 4096 sept. 22 11:44 monsite.com'': |
- | "<html><body>Notre test du module UserDir</body></html>"\ | + | <code root>chmod 755 /home/web/monsite.com/</code> |
- | > ~/public_html/index.html</code> | + | |
- | * On recharge apache : ''service apache2 restart'' | + | * **Pour /home/web/monsite.com/public_html**, il faut donc :\\ ''drwxr-xr-x 2 root www-data 4096 sept. 22 11:44 public_html'': |
- | * On vérifie que la page est accessible : | + | <code root>chmod 755 /home/web/monsite.com/public_html/</code> |
- | Dans le navigateur : ''http://ip-serveur/~utilisateur'' | + | |
- | <code>Notre test du module UserDir</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'' |
- | </note> | + | <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 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 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 !** | ||
- | 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 === | ||
Ligne 590: | Ligne 588: | ||
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 610: | Ligne 608: | ||
* 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 ! |