0% ont trouvé ce document utile (0 vote)
10 vues22 pages

Configuration sécurisée d'Apache Server

Le document traite de la configuration du serveur Apache, en mettant l'accent sur des directives essentielles telles que ServerTokens, ServerSignature, et les paramètres de pool de serveurs. Il aborde également les directives spécifiques aux MPM, la gestion des connexions, et les paramètres de sécurité pour protéger les informations du serveur. Enfin, il mentionne des configurations importantes comme ServerAdmin, ServerName, et DocumentRoot pour une mise en place efficace du serveur web.

Transféré par

earthhunter1523
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues22 pages

Configuration sécurisée d'Apache Server

Le document traite de la configuration du serveur Apache, en mettant l'accent sur des directives essentielles telles que ServerTokens, ServerSignature, et les paramètres de pool de serveurs. Il aborde également les directives spécifiques aux MPM, la gestion des connexions, et les paramètres de sécurité pour protéger les informations du serveur. Enfin, il mentionne des configurations importantes comme ServerAdmin, ServerName, et DocumentRoot pour une mise en place efficace du serveur web.

Transféré par

earthhunter1523
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

 Global environnement

 Main server
 Host virtualization
Global environnement
 La première chose à faire lors de la mise en production d’un serveur
Apache est de faire en sorte qu’il n’affiche pas l’ensemble de ses
informations de versions afin d’éviter à tout attaquant potentiel de
connaitre trop d’informations sur sa machine cible.
 ServerSignature on
 ServerTokens, dont les informations sont visibles dans les entêtes des
requètes, qui peut prendre comme valeur :
 Prod : la plus restrictive, Apache ne devrait afficher que Apache ;
 Min : le serveur affichera Apache et son numéro de version complet
Apache/2.0.55 ;
 Os (par défaut en général) : le serveur affichera Apache, son numéro de
version complet et son système d’exploitation Apache/2.0.55 (Debian) ;
 Full : le serveur affichera Apache, son numéro de version complet, son
système d’exploitation et les informations des modules supplémentaires
Apache/2.0.55 (Debian) PHP/5.1.4-1 mod1/X.Y mod2/W.Z ;
 Tester avec une page web inexistante.
 ServerSignature, moins importante sur ServerTokens est
correctement configurée, cette directive affiche le contenu de
ServerTokens, le nom de domaine et le port utilisé pour la connexion
sur les pages auto-générées par Apache. Trois valeurs sont possibles :
 Off n’affichera pas ces informations du tout ;
 On affichera ces informations ;
 Email affichera ces informations en y ajoutant l’email du ServerAdmin du
Virtualhost ;
 ServerRoot
 Le répertoire ServerRoot est le répertoire de niveau supérieur
contenant les fichiers du serveur. Par défaut, la directive ServerRoot
est paramétrée sur "/etc/httpd" aussi bien pour le serveur sécurisé
que pour le serveur non-sécurisé.
 Timeout
 Timeout définit la durée, exprimée en secondes, pendant laquelle le serveur
attend des réceptions et des émissions pendant les communications. La valeur
de Timeoutest paramétrée sur 300 secondes par défaut, ce qui est approprié
pour la plupart des situations.
 KeepAlive
 KeepAlive définit si votre serveur autorisera plus d'une requête par
connexion ; cette directive peut servir à empêcher un client
particulier d'utiliser une trop grande quantité des ressources dont le
serveur est doté.
 Par défaut, la valeur de Keepalive est réglée sur off. Si la valeur de
Keepalive est on et que le serveur devient très occupé, il peut
générer rapidement le nombre maximum de processus enfants. Dans
ce cas, le serveur sera considérablement ralenti. Si la directive
Keepalive est activée, il est recommandé de donner à
KeepAliveTimeout une valeur basse
 MaxKeepAliveRequests:
 Cette directive définit le nombre maximum de requêtes autorisées
par connexion persistante. L'organisation Apache Project
recommande l'utilisation d'un paramétrage élevé, ce qui entraîne une
amélioration des performances du serveur. Par défaut, la valeur de
MaxKeepAliveRequests paramétrée sur 100 est approprié pour la
plupart des situations.
 KeepAliveTimeout
 KeepAliveTimeout définit la durée exprimée en secondes pendant laquelle
le serveur attend après avoir servi une requête, avant d'interrompre la
connexion. Une fois que le serveur reçoit une requête, c'est la
directive Timeout qui s'applique à sa place. Voir l’explication en anglais pour
mieux comprendre le champ.
Directives de server-pool spécifiques aux MPM (Modules
multi-processus)

 sous le Serveur HTTP Apache 2.0, la responsabilité de gérer les


caractéristiques de server-pool est octroyée à un groupe de modules
appelé MPM. Les caractéristiques de server-pool sont différentes
selon le MPM spécifique utilisé. C'est la raison pour laquelle un
conteneur IfModule est nécessaire pour définir le server-pool du MPM
qui est utilisé.

 Par défaut, le Serveur HTTP Apache 2.0 définit le server-pool aussi


bien pour le MPM prefork que le MPM worker.

 Ci-dessous figure une liste des directives figurant dans les conteneurs
de server-pool spécifiques aux MPM.
 StartServers
 La directive StartServers définit le nombre de processus serveur créés au
démarrage. Étant donné que le serveur Web supprime et crée
dynamiquement des processus serveur en fonction de la charge du trafic, il
n'est pas nécessaire de modifier ce paramètre. Le serveur Web est configuré
de manière à lancer 8 processus serveur au démarrage pour le MPM prefork
et 2 pour le MPM worker.
 Prefork MPM utilise plusieurs processus enfants avec un thread chacun et
chaque processus gère une connexion à la fois.
 Worker MPM utilise plusieurs processus enfants avec de nombreux threads
chacun. Chaque thread gère une connexion à la fois.
 MinSpareServers and MaxSpareServers
 Ces valeurs ne sont pas seulement utilisées avec le MPM prefork. Elles
ajustent la façon selon laquelle le Serveur HTTP Apache s'adapte
dynamiquement à la charge reçue en maintenant un nombre approprié de
processus serveur de secours déterminiés en fonction du nombre de
requêtes entrantes. Le serveur vérifie le nombre de serveurs attendant une
requête et en supprime certains s'ils sont plus nombreux que
MaxSpareServers ou en crée d'autres s'ils sont moins nombreux que
MinSpareServers.
 MaxClients
 MaxClients fixe une limite au nombre total de processus serveur ou
de clients connectés simultanément qui peuvent s'exécuter en même
temps. L'objectif principal de cette directive est d'éviter qu'un
Serveur HTTP Apache surchargé n'entraîne le plantage de votre
système d'exploitation. Pour des serveurs très solicités, cette valeur
devrait être élevée.
 ServerLimit:
 Avec le MPM prefork, cette directive définit le nombre maximum que
l'on peut affecter à la directive MaxRequestWorkers, et ceci pour la
durée de vie du processus Apache httpd.
 MaxRequestsPerChild
 MaxRequestsPerChild définit le nombre total de requêtes que chaque
processus serveur enfant sert avant de s'arrêter. L'attribution d'une
valeur à MaxRequestsPerChild est importante afin d'éviter des pertes
de mémoire induites par des processus longs.
 MinSpareThreads et MaxSpareThreads
 Ces valeurs ne sont pas seulement utilisées avec le MPM worker. Elles ajustent
la façon selon laquelle le Serveur HTTP Apache s'adapte dynamiquement à la
charge reçue en maintenant un nombre approprié de processus serveur de
secour déterminés en fonction du nombre de requêtes entrantes. Le serveur
vérifie le nombre de threads de serveurs attendant une requête et en supprime
certains s'ils sont plus nombreux que MaxSpareThreads ou en crée d'autres s'ils
sont moins nombreux que MinSpareThreads.
 ThreadsPerChild
 Cette valeur est utilisée uniquement avec le MPM worker. Il définit le nombre de
threads (ou fils) au sein de chaque processus enfant. La valeur par défaut pour
cette directive est 25.
 peut également être utilisée pour spécifier des adresses IP particulières sur
lesquelles le serveur acceptera des connexions.
 Listen
 La commande Listen identifie les ports sur lesquels votre serveur Web
acceptera les demandes entrantes. Par défaut, le Serveur HTTP
Apache est paramétré pour écouter les communications Web non-
sécurisées sur le port 80et (dans /etc/httpd/conf.d/[Link] définissant
tout serveur sécurisé) les communications Web sécurisées sur le port
443.
 Si le Serveur HTTP Apache est configuré pour écouter l'activité sur un
port dont le numéro est inférieur à 1024, seul le super-utilisateur peut
le lancer. En revanche, pour les ports dont le numéro est égal ou
supérieur à 1024, httpd peut être lancée en tant que simple
utilisateur.
 LoadModule
 LoadModule est utilisée pour charger des modules DSO (de l'anglais
Dynamic Shared Object, objet partagé dynamiquement). Pour obtenir
davantage d'informations sur la prise en charge DSO du Serveur HTTP
Apache.
 Include:
 Include permet d'inclure d'autres fichiers de configuration au moment
de l'exécution.
 Le chemin d'accès vers ces fichiers de configuration peut être absolu
ou relatif par rapport au ServerRoot.
 ExtendedStatus
 La directive ExtendedStatus spécifie si Apache doit produire des informations
élémentaires (off) ou détaillées (on) sur l'état des serveurs, lorsque le
gestionnaire de signal server-status est appelé. Ce dernier est appelé à l'aide
des balises Location.
 Remarque:
 Supprimer le commantaire de ExtendedStatus et des balises ci-dessous puis se
connecter vie ServerIP@/server-status (ex.[Link]/server-status)
<Location /server-status>
setHandler server-status
Order deny,allow
Allow from all (ligne à ajouter)
</Location>
 User
 La directive User définit le nom d'utilisateur du processus serveur et détermine
les fichiers auxquels le serveur peut avoir accès. Tous les fichiers auxquels cet
utilisateur n'aura pas accès seront également inaccessibles aux clients se
connectant au Serveur HTTP Apache.
 La valeur par défaut donnée à User est apache.
 Cette directive a été supprimée pour la configuration des hôtes virtuels.
 Group
 Spécifie le nom de groupe des processus du Serveur HTTP Apache.
 Cette directive a été supprimée pour la configuration des hôtes virtuels.
 La valeur par défaut attribuée à Group est apache.
 Remarque : il faut changer le propriétaire et le groupe des fichiers et dossiers que
vous voulez traiter par apache.
Main server configuration

 ServerAdmin
 Donnez comme valeur à la directive ServerAdmin l'adresse
électronique de l'administrateur du serveur Web. Cette adresse
électronique apparaîtra dans les messages d'erreur sur les pages Web
générées par le serveur afin que les utilisateurs puissent signaler un
problème en envoyant un message électronique à l'administrateur du
serveur.

 La valeur par défaut donnée à ServerAdmin est root@localhost.

 Généralement, la valeur donnée à ServerAdmin est


Webmaster@[Link].
 ServerName
 ServerName permet de définir un nom d'hôte et un numéro de port
(en accord avec la directive Listen) pour le serveur. La directive
ServerName ne doit pas forcément correspondre au nom d'hôte de
l'ordinateur. Par exemple, le serveur Web pourrait être
[Link] bien que le nom d'hôte du serveur soit
[Link]. La valeur spécifiée dans ServerName doit être un
nom de domaine (ou DNS, de l'anglais Domain Name Service) valide
qui peut être résolu par le système — ne vous contentez surtout pas
d'en inventer un.
 DocumentRoot
 DocumentRoot est le répertoire contenant la plupart des fichiers
HTML qui seront servis en réponse aux requêtes. Le défaut de
DocumentRoot aussi bien pour le serveur Web sécurisé que pour le
serveur Web non-sécurisé est le répertoire /var/www/html.

Vous aimerez peut-être aussi