LINUX:HTTP - httpd.conf

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au serveur Web


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é.




retour au serveur Web