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édenteDernière révisionLes deux révisions suivantes | ||
fr:securite_sysadmin [2017/07/14 10:03] – [Module header] zatalyz | fr:securite_sysadmin [2021/12/03 19:19] – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
Cet article s' | Cet article s' | ||
- | <WRAP center round help 60%> | + | <WRAP center round info 60%> |
- | Ce serait pas mal de faire un vrai bon tour d' | + | Voir aussi |
- | + | * [[fr: | |
- | --- //[[wiki:user: | + | |
+ | * [[fr:consignes_securite_sysadmins]] | ||
</ | </ | ||
+ | |||
Ligne 107: | Ligne 109: | ||
==== HTTPS ==== | ==== HTTPS ==== | ||
- | Sauf cas très particulier, | + | Sauf cas très particulier, |
Donc on configure bien son https. Voir [[fr: | Donc on configure bien son https. Voir [[fr: | ||
Ligne 135: | Ligne 137: | ||
En principe nos serveurs sont à jours, hein. Mais en cas d' | En principe nos serveurs sont à jours, hein. Mais en cas d' | ||
- | nano / | + | nano / |
< | < | ||
Ligne 144: | Ligne 146: | ||
À refaire sur chacun de ses serveurs ! | À refaire sur chacun de ses serveurs ! | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | On peut aussi paramétrer (et modifier) ces options dans ''/ | ||
+ | </ | ||
=== Module header === | === Module header === | ||
Ligne 167: | Ligne 173: | ||
# Interdire l' | # Interdire l' | ||
Header set X-Permitted-Cross-Domain-Policies none | Header set X-Permitted-Cross-Domain-Policies none | ||
+ | # X-Clacks, ça sert à rien, c'est donc vital. | ||
+ | header set X-Clacks-Overhead "GNU Terry Pratchett" | ||
# Enfin, les CSP permettent de vérifier l' | # Enfin, les CSP permettent de vérifier l' | ||
- | # CSP, pour eviter de charger des scripts d' | + | # CSP, pour eviter de charger des scripts d' |
- | Header set Content-Security-Policy " | + | Header set Content-Security-Policy " |
</ | </ | ||
Les explications : | Les explications : | ||
* Header set X-Robots-Tag : http:// | * Header set X-Robots-Tag : http:// | ||
- | * CSP : https:// | + | * CSP : https:// |
- | <WRAP center round info 90%> | + | == Content Security Policy (CSP) == |
- | Note à propos | + | Les CSP améliorent grandement la sécurité d'une installation, |
- | 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. |
- | L' | + | Le site de référence est [[https:// |
+ | |||
+ | * Premier cas : pas de politique CSP. Certains CMS permettent aux utilisateurs d' | ||
+ | * Second cas : une politique CSP stricte (paramétrée uniquement sur '' | ||
+ | * Troisième cas : ajouter des règles comme '' | ||
+ | * Quatrième cas : exécuter localement uniquement les scripts validés explicitement. Cela demande de rajouter la variable '' | ||
+ | |||
+ | == Quelques exemples == | ||
+ | |||
+ | L' | ||
Header set Content-Security-Policy " | Header set Content-Security-Policy " | ||
| | ||
- | En effet, le paramètre '' | + | '' |
- | </WRAP> | + | |
- | <WRAP center round todo 60%> | + | Pour onlyoffice, après de nombreuses galères : la solution a été la CSP frame-ancestors pour permettre l' |
- | Travail en cours, on va trouver l' | + | more_set_headers " |
+ | |||
+ | La règle suivante, assez générique, va " | ||
+ | add_header Content-Security-Policy " | ||
- | Pour le moment, cependant, etherpad bloque un csp de qualité. Même l' | ||
Ligne 203: | Ligne 222: | ||
* 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 | + | SSLProtocol |
SSLCompression off | SSLCompression off | ||
- | SSLCipherSuite | + | SSLCipherSuite |
SSLHonorCipherOrder On | SSLHonorCipherOrder On | ||
Ligne 216: | Ligne 235: | ||
| | ||
- | Pour la liste '' | + | Pour la liste '' |
Ligne 230: | Ligne 249: | ||
Ce qui suit est extrait d'une conversation avec TychoBrahe ; j'ai conservé son style fleuri si savoureux. | Ce qui suit est extrait d'une conversation avec TychoBrahe ; j'ai conservé son style fleuri si savoureux. | ||
- | --- //[[wiki:user: | + | --- // |
</ | </ | ||
Ligne 246: | Ligne 265: | ||
On pourrait croire qu'il y a 5 algorithmes, | On pourrait croire qu'il y a 5 algorithmes, | ||
- | SSL et TLS permettent d' | + | SSL et TLS permettent d' |
Afin d' | Afin d' | ||
Ligne 260: | Ligne 279: | ||
* !PSK <- pareil, une merde de plus de virée | * !PSK <- pareil, une merde de plus de virée | ||
* +HIGH <- et enfin on autorise la famille des cipher suites reconnues comme fortes | * +HIGH <- et enfin on autorise la famille des cipher suites reconnues comme fortes | ||
- | Du coup on fait confiance dans les familles définies dans les lib crypto, mais en imposant des restrictions sur certains trucs trop limites | + | |
+ | Du coup on fait confiance dans les familles définies dans les lib crypto, mais en imposant des restrictions sur certains trucs trop limite | ||
Les librairies ont un outil pour lister les familles, qui liste soit toutes les cipher suites supportées, | Les librairies ont un outil pour lister les familles, qui liste soit toutes les cipher suites supportées, | ||
Ligne 270: | Ligne 290: | ||
man 1 ciphers | man 1 ciphers | ||
- | === Les fichiers de site-enabled (vhost) === | + | == L' |
+ | |||
+ | C'est un mécanisme permettant l' | ||
+ | |||
+ | == Le chiffrement a/ | ||
+ | |||
+ | La différence entre le chiffrement symétrique et le chiffrement asymétrique est que dans le premier cas, il n'y a besoin que d'une seule clef, qui permet aussi bien de chiffrer un message que de le déchiffrer. Pour le chiffrement asymétrique, | ||
+ | |||
+ | == Le contrôle == | ||
+ | |||
+ | Afin de vérifier l' | ||
+ | === Les fichiers de sites-enabled (vhost) === | ||
Une fois https configuré (let's encrypt lancé, les fichiers ''/ | Une fois https configuré (let's encrypt lancé, les fichiers ''/ | ||
Ligne 313: | Ligne 344: | ||
Je n'ai sans doute pas tout compris, ou alors ce n'est pas compatible avec ma version d' | Je n'ai sans doute pas tout compris, ou alors ce n'est pas compatible avec ma version d' | ||
- | --- //[[wiki:user: | + | --- // |
</ | </ | ||
+ | |||
+ | === Faire suivre les IP derrière les reverse proxy === | ||
+ | Si vous avez une VM (A) qui sert de pare-feu avant de redistribuer le trafic aux autres VM (B) de votre serveur, il y a un petit souci : les VM B croient que tout le trafic vient de l'ip de la VM A. Ce qui pose un gros souci dans le cas où vous avez du spam et que votre CMS favori permet de bannir par IP... si vous bannissez la VM A, plus rien ne passera, même les utilisateurs légitimes. | ||
+ | |||
+ | Il faut donc activer le transfert des IP sur les VMs destinataires (pas toucher au pare-feu, ce n'est pas là que ça se joue). | ||
+ | |||
+ | Créer ''/ | ||
+ | < | ||
+ | RemoteIPHeader X-Forwarded-For | ||
+ | RemoteIPInternalProxy 192.168.20.35 | ||
+ | </ | ||
+ | |||
+ | Remplacer '' | ||
+ | |||
+ | Activer le [[https:// | ||
+ | a2enmod remoteip | ||
+ | a2enconf remoteip | ||
+ | apache2ctl configtest && service apache2 restart | ||
+ | |||
+ | Cela devrait marcher. À répeter sur chaque VM du réseau. | ||
+ | |||
+ | === Virer les traqueurs de Facebook === | ||
+ | Si vos liens se baladent sur Facebook, vos visiteurs vont visiter vos pages avec un tracker collé à l'url, du type '' | ||
+ | |||
+ | On se fait un petit fichier appelé " | ||
+ | < | ||
+ | # Des bidouilles à inclure partout. | ||
+ | |||
+ | # Pour virer le tracker de Facebook | ||
+ | < | ||
+ | RewriteEngine On | ||
+ | RewriteCond %{QUERY_STRING} ^(.*)(?: | ||
+ | RewriteCond %1%2 (^|& | ||
+ | RewriteRule ^(.*) $1?%2 [R=301,L] | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Ensuite on appelle ce fichier dans nos vhost actifs : | ||
+ | < | ||
+ | < | ||
+ | ServerName monsite.fr | ||
+ | |||
+ | # toute configuration utile en rab... | ||
+ | | ||
+ | # bidouilles perso | ||
+ | Include / | ||
+ | |||
+ | </ | ||
+ | Relancer apache et voilà, ça marche. | ||
- | {{tag> Serveur | + | Astuce tirée de [[https:// |
+ | {{tag> Serveur |