Apache : Différence entre versions

De DiouxX's Wiki
Aller à : navigation, rechercher
 
(4 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
{{ Introduction | Cette page fournit différentes informations sur l'installation et la configuration d'Apache }}
 
{{ Introduction | Cette page fournit différentes informations sur l'installation et la configuration d'Apache }}
 +
== Installation ==
 +
 +
=== Par package ===
 +
 +
{{ console root | apt-get install apache2 }}<br />
 +
 +
== Configuration ==
 +
=== Authentification ===
 +
Il est possible de forcer un utilisateur à s'authentifier pour accéder à un site web
 +
<br />
 +
==== Authentification Basic ====
 +
Il existe un système d’authentification basé sur un fichier texte ( mais avec mot de passe crypté)
 +
 +
Pour créer ce fichier :
 +
<br />
 +
{{ Console | htpasswd -c /emplacement/fichier user }}
 +
<br />
 +
Cette commande va permettre de créer le fichier avec un utilisateur renseigné dans la commande
 +
<br />
 +
{{ Note | L'option -c permet de créer ce fichier. Pour rajouter un utilisateur au fichier, il ne faut plus renseigner l'option -c }}
 +
<br />
 +
Il nous reste encore à configurer le fichier de configuration {{ File | /etc/apache2/sites-available/default }}
 +
<br />
 +
<syntaxhighlight lang="bash">
 +
<VirtualHost *:80>
 +
        DocumentRoot /var/www/nomSite
 +
        ServerName www.nomSite.be     
 +
        <Directory /var/www/NomSite >
 +
        Options Indexes FollowSymLinks MultiViews
 +
                AllowOverride AuthConfig
 +
                Order allow,deny
 +
                allow from all
 +
 +
AuthType Basic
 +
AuthName "Restricted Access"
 +
# (Following line optional)
 +
AuthBasicProvider file
 +
AuthUserFile /usr/local/apache/passwd/.passwords
 +
Require valid-user
 +
        </Directory>
 +
       
 +
</VirtualHost>
 +
</syntaxhighlight>
 +
<br />
 +
* La directive '''AuthType''' définit la méthode utilisée pour authentifier l'utilisateur
 +
* La directive '''AuthName''' définit l'Identificateur (Realm) à utiliser avec l'authentification
 +
* La directive '''AuthBasicProvider''' est, dans ce cas, facultative, car file est la valeur par défaut pour cette directive. Par contre, cette directive sera obligatoire si vous utilisez une autre source d'authentification comme mod_authn_dbm ou mod_authn_dbd.
 +
* La directive '''AuthUserFile''' définit le chemin du fichier de mots de passe que nous venons de créer avec htpasswd
 +
* Enfin, la directive '''Require''' implémente la partie autorisation du processus en définissant l'utilisateur autorisé à accéder à cette zone du serveur.
 +
<br />
 +
{{ Avertissement | Il est impératif de spécifier la directive '''AllowOverride AuthConfig''' pour autoriser le système d'authentification<br>Avec la méthode basic le mot de passe est transmis en clair sur le réseau }}
 +
<br />
 +
==== Authentification Digest ====
 +
Avant toute chose, il faut activer le module auth_digest
 +
<br>
 +
{{ Console | sudo a2enmod auth_digest }}
 +
<br>
 +
Le mode d'authentification Digest est identique au mode Basic à part qu'avec Digest, le mot de passe n'est pas transmis en clair sur le réseau
 +
 +
Pour mettre en place cette méthode, il nous faut également créer le fichier contenant les paires login:password mais cette fois-ci avec la commande htdigest :
 +
<br />
 +
{{ Console | htdigest ''-c passwdfile realm username'' }}
 +
<br />
 +
* L'option -c permet de créer le fichier. A utiliser seulement si le fichier n'existe pas déja.
 +
* ''passwdfile'' : L'emplacement du fichier
 +
* ''realm'' : Le domaine (Exemple : "Restricted Acces")
 +
* ''username'' : Le login
 +
 +
Il nous faut également modifier le fichier {{ File | /etc/apache2/sites-available/default }}
 +
<br />
 +
<syntaxhighlight lang="bash">
 +
<VirtualHost *:80>
 +
        DocumentRoot /var/www/nomSite
 +
        ServerName www.nomSite.be       
 +
        <Directory /var/www/nomSite>
 +
        Options Indexes FollowSymLinks MultiViews
 +
                AllowOverride AuthConfig
 +
                Order allow,deny
 +
                allow from all
 +
 +
AuthType Digest
 +
AuthName "Restricted Access"
 +
AuthDigestProvider file
 +
AuthUserFile /usr/local/apache/passwd/.passwords
 +
Require valid-user
 +
        </Directory>
 +
       
 +
</VirtualHost>
 +
</syntaxhighlight>
 +
<br />
 +
[[Catégorie:Système]]

Version actuelle datée du 8 avril 2013 à 14:10

Cette page fournit différentes informations sur l'installation et la configuration d'Apache

Installation

Par package

Konsole.png
[root@ordi ~]# apt-get install apache2

Configuration

Authentification

Il est possible de forcer un utilisateur à s'authentifier pour accéder à un site web

Authentification Basic

Il existe un système d’authentification basé sur un fichier texte ( mais avec mot de passe crypté)

Pour créer ce fichier :

Konsole.png
[user@ordi ~]$ htpasswd -c /emplacement/fichier user


Cette commande va permettre de créer le fichier avec un utilisateur renseigné dans la commande

BlocNotes.png
À noter !
L'option -c permet de créer ce fichier. Pour rajouter un utilisateur au fichier, il ne faut plus renseigner l'option -c


Il nous reste encore à configurer le fichier de configuration /etc/apache2/sites-available/default

<VirtualHost *:80>
        DocumentRoot /var/www/nomSite
        ServerName www.nomSite.be      
        <Directory /var/www/NomSite >
	        Options Indexes FollowSymLinks MultiViews
                AllowOverride AuthConfig
                Order allow,deny
                allow from all

		AuthType Basic
		AuthName "Restricted Access"
		# (Following line optional)
		AuthBasicProvider file
		AuthUserFile /usr/local/apache/passwd/.passwords
		Require valid-user
        </Directory>
        
</VirtualHost>


  • La directive AuthType définit la méthode utilisée pour authentifier l'utilisateur
  • La directive AuthName définit l'Identificateur (Realm) à utiliser avec l'authentification
  • La directive AuthBasicProvider est, dans ce cas, facultative, car file est la valeur par défaut pour cette directive. Par contre, cette directive sera obligatoire si vous utilisez une autre source d'authentification comme mod_authn_dbm ou mod_authn_dbd.
  • La directive AuthUserFile définit le chemin du fichier de mots de passe que nous venons de créer avec htpasswd
  • Enfin, la directive Require implémente la partie autorisation du processus en définissant l'utilisateur autorisé à accéder à cette zone du serveur.


Warning.png
Attention !
Il est impératif de spécifier la directive AllowOverride AuthConfig pour autoriser le système d'authentification
Avec la méthode basic le mot de passe est transmis en clair sur le réseau


Authentification Digest

Avant toute chose, il faut activer le module auth_digest

Konsole.png
[user@ordi ~]$ sudo a2enmod auth_digest


Le mode d'authentification Digest est identique au mode Basic à part qu'avec Digest, le mot de passe n'est pas transmis en clair sur le réseau

Pour mettre en place cette méthode, il nous faut également créer le fichier contenant les paires login:password mais cette fois-ci avec la commande htdigest :

Konsole.png
[user@ordi ~]$ htdigest -c passwdfile realm username


  • L'option -c permet de créer le fichier. A utiliser seulement si le fichier n'existe pas déja.
  • passwdfile : L'emplacement du fichier
  • realm : Le domaine (Exemple : "Restricted Acces")
  • username : Le login

Il nous faut également modifier le fichier /etc/apache2/sites-available/default

<VirtualHost *:80>
        DocumentRoot /var/www/nomSite
        ServerName www.nomSite.be        
        <Directory /var/www/nomSite>
	        Options Indexes FollowSymLinks MultiViews
                AllowOverride AuthConfig
                Order allow,deny
                allow from all

		AuthType Digest
		AuthName "Restricted Access"
		AuthDigestProvider file
		AuthUserFile /usr/local/apache/passwd/.passwords
		Require valid-user
        </Directory>
        
</VirtualHost>