Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
fr:apache [2025/02/08 11:01] – [Un serveur pare-feu et d'autres derrière] zatalyz | fr:apache [2025/02/09 17:34] (Version actuelle) – [Content Security Policy (CSP)] Encore mieux zatalyz | ||
---|---|---|---|
Ligne 32: | Ligne 32: | ||
Cela ressemblera à quelque chose comme ça : | Cela ressemblera à quelque chose comme ça : | ||
- | <code>txt / | + | <code txt / |
< | < | ||
ServerName monsite.org | ServerName monsite.org | ||
Ligne 51: | Ligne 51: | ||
Le vhosts en https a un port différent, et c'est là qu'on configurera toutes les options : alias, etc. | Le vhosts en https a un port différent, et c'est là qu'on configurera toutes les options : alias, etc. | ||
- | <code>txt / | + | <code txt / |
< | < | ||
ServerName monsite.org | ServerName monsite.org | ||
Ligne 158: | Ligne 158: | ||
En principe nos serveurs sont à jours, hein. Mais en cas d' | En principe nos serveurs sont à jours, hein. Mais en cas d' | ||
- | nano / | + | <code bash / |
- | + | # Cacher la version d' | |
- | < | + | |
ServerTokens Prod | ServerTokens Prod | ||
- | ServerSignature Off</ | + | # Cache la signature de " |
+ | ServerSignature Off | ||
+ | # Désactive la méthode HTTP TRACE utilisée dans des attaques XST | ||
+ | TraceEnable Off | ||
+ | </ | ||
+ | |||
+ | sudo apachectl a2enconf security | ||
- | service apache2 restart | ||
- | À refaire sur chacun de ses serveurs ! | ||
- | <WRAP center round tip 60%> | ||
- | On peut aussi paramétrer (et modifier) ces options dans ''/ | ||
- | </ | ||
- | <WRAP center round help 60%> | ||
- | Il faut activer le fichier, non ? Cette partie du tuto demande à être vérifiée. | ||
- | </ | ||
==== Vhost avec variables ==== | ==== Vhost avec variables ==== | ||
Ligne 181: | Ligne 178: | ||
On crée ensuite les fichiers de " | On crée ensuite les fichiers de " | ||
- | <code bash / | + | <code bash / |
<Macro common_config_80 $domain> | <Macro common_config_80 $domain> | ||
# Les parties "tout le monde pareil" | # Les parties "tout le monde pareil" | ||
Ligne 194: | Ligne 191: | ||
</ | </ | ||
- | <code bash / | + | <code bash / |
<Macro common_config_443 $domain> | <Macro common_config_443 $domain> | ||
Ligne 228: | Ligne 225: | ||
ServerAlias www.exemple.org | ServerAlias www.exemple.org | ||
# Si besoin d' | # Si besoin d' | ||
- | Alias /app / | + | #Alias /machin |
DocumentRoot / | DocumentRoot / | ||
< | < | ||
Ligne 239: | Ligne 236: | ||
On active ensuite : | On active ensuite : | ||
- | < | + | < |
- | sudo a2ensite common_config_80.conf | + | sudo a2enconf macro_common_config_80 |
sudo a2ensite exemple.org.conf | sudo a2ensite exemple.org.conf | ||
sudo apachectl -t | sudo apachectl -t | ||
Ligne 274: | Ligne 271: | ||
* Le dernier morceau concerne OCSP qui accélère un peu les échanges en https, voir aussi [[https:// | * Le dernier morceau concerne OCSP qui accélère un peu les échanges en https, voir aussi [[https:// | ||
- | < | + | < |
SSLProtocol +TLSv1.2 | SSLProtocol +TLSv1.2 | ||
SSLCompression off | SSLCompression off | ||
Ligne 285: | Ligne 282: | ||
SSLStaplingReturnResponderErrors off | SSLStaplingReturnResponderErrors off | ||
SSLStaplingCache | SSLStaplingCache | ||
+ | #À partir de la version 2.4.11 d' | ||
+ | SSLSessionTickets Off | ||
</ | </ | ||
- | | ||
Pour la liste '' | Pour la liste '' | ||
- | À partir de la version 2.4.11 d' | ||
- | |||
- | < | ||
- | SSLSessionTickets Off | ||
- | </ | ||
Ligne 363: | Ligne 356: | ||
Puis modifiez le fichier ''/ | Puis modifiez le fichier ''/ | ||
- | < | + | < |
# Ce qui suit vient de | # Ce qui suit vient de | ||
# https:// | # https:// | ||
# Contrôler l’accès des bots de facon plus fine qu' | # Contrôler l’accès des bots de facon plus fine qu' | ||
- | Header set X-Robots-Tag " | + | Header set X-Robots-Tag " |
# Évite que le contenu soit interprété différemment que définit dans le mime Type | # Évite que le contenu soit interprété différemment que définit dans le mime Type | ||
Header set X-Content-Type-Options nosniff | Header set X-Content-Type-Options nosniff | ||
Ligne 376: | Ligne 369: | ||
# Faille spécifique IE8, on espère que plus personne ne l' | # Faille spécifique IE8, on espère que plus personne ne l' | ||
Header set X-Download-Options noopen; | Header set X-Download-Options noopen; | ||
- | # Interdire l' | + | # Interdire l' |
Header set X-Permitted-Cross-Domain-Policies none | Header set X-Permitted-Cross-Domain-Policies none | ||
+ | # Protège la vie privée en évitant de transmettre trop d' | ||
+ | Header set Referrer-Policy " | ||
# X-Clacks, ça sert à rien, c'est donc vital. | # X-Clacks, ça sert à rien, c'est donc vital. | ||
header set X-Clacks-Overhead "GNU Terry Pratchett" | header set X-Clacks-Overhead "GNU Terry Pratchett" | ||
- | # Enfin, les CSP permettent de vérifier l' | ||
- | # CSP, pour éviter de charger des scripts d' | ||
- | Header set Content-Security-Policy " | ||
</ | </ | ||
Ligne 388: | Ligne 380: | ||
* Header set X-Robots-Tag : http:// | * Header set X-Robots-Tag : http:// | ||
* CSP : https:// | * CSP : https:// | ||
+ | |||
=== Content Security Policy (CSP) === | === Content Security Policy (CSP) === | ||
Ligne 394: | Ligne 387: | ||
Mais il est difficile de faire marcher les CMS tout en ayant une politique sécurisée sur les CSP. | Mais il est difficile de faire marcher les CMS tout en ayant une politique sécurisée sur les CSP. | ||
+ | |||
+ | Je conseille de faire des règles CSP différentes suivant les CMS... | ||
Le site de référence est [[https:// | Le site de référence est [[https:// | ||
Ligne 415: | Ligne 410: | ||
add_header Content-Security-Policy " | add_header Content-Security-Policy " | ||
+ | Et voici une autre façon d' | ||
+ | < | ||
+ | Header set Content-Security-Policy " | ||
+ | default-src ' | ||
+ | script-src ' | ||
+ | style-src ' | ||
+ | img-src ' | ||
+ | font-src ' | ||
+ | connect-src ' | ||
+ | frame-src https:// | ||
+ | object-src ' | ||
+ | base-uri ' | ||
+ | form-action ' | ||
+ | frame-ancestors ' | ||
+ | " | ||
+ | </ | ||
+ | Ces règles sont un compromis entre " | ||
+ | * '' | ||
+ | * Les scripts, au choix... | ||
+ | * '' | ||
+ | * '' | ||
+ | * L' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
==== Activer la réécriture des URLs ==== | ==== Activer la réécriture des URLs ==== |