LINUX:HTTP - httpd.conf
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
La version du serveur Apache n'est pas divulguée ni l'OS qui l'héberge. On active en priorité le protocole Http2 suite à l'installation du module concerné.