« LINUX:HTTP - httpd.conf » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 4 : Ligne 4 :
----
----
=But=
=But=
Par défaut, le fichier "/etc/httpd/conf/httpd.conf" constitue le point d'entrée du paramétrage d'Apache.  
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.




Ligne 70 : Ligne 70 :
  '''''IncludeOptional conf.d/*.conf'''''
  '''''IncludeOptional conf.d/*.conf'''''
----
----
Nous allons éliminer toutes les lignes marquées en gras et italique.
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.
* 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.
* 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.
* 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"
* 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é.





Version du 5 mai 2025 à 17:37


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

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




retour au serveur Web