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

Page créée avec « __FORCETOC__ ---- ''→ 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. ---- ''→ retour au serveur Web'' ---- __NOEDITSECTION__ Category:LINUX »
 
Aucun résumé des modifications
 
(2 versions intermédiaires par le même utilisateur non affichées)
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.




=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 [[LINUX:Contrôler nos sites WEB|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é.