LINUX:HTTP - httpd.conf
Aller à la navigation
Aller à la recherche
But
Par défaut, le fichier "/etc/httpd/conf/httpd.conf" constitue le point d'entrée du paramétrage d'Apache. Nous allons le modifier à notre convenance.
Fichier original
Un fichier fonctionnel est ajouté lors de l'installation.
Voici son contenu hors commentaires:
ServerRoot "/etc/httpd" Listen 80 Include conf.modules.d/*.conf User apache Group apache ServerAdmin root@localhost <Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "/var/www/html" <Directory "/var/www"> AllowOverride None Require all granted </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.html </IfModule> <Files ".ht*"> Require all denied </Files> ErrorLog "logs/error_log" LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access_log" combined </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" </IfModule> <Directory "/var/www/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> TypesConfig /etc/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType text/html .shtml AddOutputFilter INCLUDES .shtml </IfModule> AddDefaultCharset UTF-8 <IfModule mime_magic_module> MIMEMagicFile conf/magic </IfModule> EnableSendfile on IncludeOptional conf.d/*.conf
Nous allons éliminer toutes les lignes marquées en gras et italique:
- Comme noté plus haut, nous n'allons pas utiliser le répertoire "/var/www" pour y mettre le code de nos sites.
- En conséquence, le paramètre "DocumentRoot" spécifiant le point d'entrée de notre site Web sera mis autre part.
- De même, nous n'allons pas utiliser de CGI personnel. Ce point d'entrée est souvent la cible de tentatives de piratage.
- Enfin, nous utiliserons d'autres répertoires de paramétrage complémentaires que le répertoire d'origine "/etc/httpd/conf.d/*.conf".
Par contre, il faut garder:
- le chargement des modules selon le paramétrage du répertoire "/etc/https/conf.modules.d".
- la protection de l'ensemble du système par la section "<Directory />".
- le non accès aux fichiers ".ht*" tels les fichiers ".htaccess" qui contiennent un paramétrage d'Apache spécifique au répertoire du site qui le contienne.
- les directives concernant les "mimes" qui font la liaison entre une extension de fichier et le type de traitement qui lui est appliqué.
On remarque que:
- le port d'écoute est "80"; ce numéro est par convention le port classique au niveau mondial mais il peut être adapté pour une utilisation spécifique cachée.
- le processus Apache est sous l'égide de l'utilisateur "apache" (et du groupe "apache").
- la directive "DirectoryIndex index.html" qui indique qu'en l'absence de script à ouvrir indiqué dans l'URL d'appel, ce sera le script portant le nom "index.html" qui sera recherché. Ce fichier est un classique mais d'autres peuvent être ajoutés; par exemple, PHP utilise pour sa part le fichier "index.php".
- le fichier journal normal est "/etc/httpd/logs/access_log" qui est un lien vers le fichier "/var/log/httpd/access_log".
- le fichier journal des erreurs est "/etc/httpd/logs/error_log" qui est un lien vers le fichier "/var/log/httpd/error_log".
- la section concernant le format de sortie des journaux est à adapter selon vos préférences et des logiciels qui vont les exploiter.
Ajouts et adaptations
Pour une question de sécurité, nous avons ajouté les directives suivantes en tête du fichier "httpd.conf":
ServerTokens Prod ServerSignature Off Protocols h2 h2c http/1.1 ServerLimit 64 Header always unset Server Header always unset "X-Powered-By" UseCanonicalName On TraceEnable off
en liaison avec l'article sur le Contrôler nos sites WEB.
La version du serveur Apache n'est pas divulguée ni l'OS qui l'héberge. On active en priorité le protocole Http2 plus sécurisé suite à l'installation du module concerné.