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:securite_sysadmin [2017/11/29 19:33] – [Cacher la version d'apache] zatalyz | fr:securite_sysadmin [2023/06/21 06:30] (Version actuelle) – Transfert des infos sur une page dédiée zatalyz | ||
|---|---|---|---|
| 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: | ||
| ==== Apache2 ==== | ==== Apache2 ==== | ||
| - | [[wpfr> | + | Voir la page dédiée |
| - | + | ||
| - | Apache a un avantage dans le cas d'une architecture " | + | {{tag> Serveur |
| - | + | ||
| - | Pour Apache, il y a des modules à activer quoi qu'il arrive : | + | |
| - | a2enmod headers ssl | + | |
| - | Et dans le cas d' | + | |
| - | a2enmod proxy proxy_http | + | |
| - | + | ||
| - | Pour connaître sa version d' | + | |
| - | apache -v | + | |
| - | openssl version | + | |
| - | + | ||
| - | À utiliser sur [[https:// | + | |
| - | + | ||
| - | Liens utiles : | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | + | ||
| - | + | ||
| - | === Cacher | + | |
| - | En principe nos serveurs sont à jours, hein. Mais en cas d' | + | |
| - | + | ||
| - | nano / | + | |
| - | + | ||
| - | < | + | |
| - | ServerTokens Prod | + | |
| - | ServerSignature Off</ | + | |
| - | + | ||
| - | service apache2 restart | + | |
| - | + | ||
| - | À refaire sur chacun de ses serveurs ! | + | |
| - | + | ||
| - | <WRAP center round tip 60%> | + | |
| - | On peut aussi paramétrer (et modifier) ces options dans ''/ | + | |
| - | </ | + | |
| - | + | ||
| - | === Module header === | + | |
| - | + | ||
| - | Activer les headers dans Apache si ce n'est pas déjà fait : | + | |
| - | a2enmod headers | + | |
| - | + | ||
| - | Puis modifiez le fichier ''/ | + | |
| - | + | ||
| - | < | + | |
| - | # Ce qui suit vient de | + | |
| - | # https:// | + | |
| - | # controler l' | + | |
| - | Header set X-Robots-Tag " | + | |
| - | # Evite que le contenu soit interprete differemment que definit dans le mime Type | + | |
| - | Header set X-Content-Type-Options nosniff | + | |
| - | # Protection contre le clickjacking | + | |
| - | Header set X-Frame-Options " | + | |
| - | # Protection contre les failles X-XSS | + | |
| - | Header set X-XSS-Protection "1; mode=block" | + | |
| - | # Faille specifique IE8 | + | |
| - | Header set X-Download-Options noopen; | + | |
| - | # Interdire l' | + | |
| - | Header set X-Permitted-Cross-Domain-Policies none | + | |
| - | # Enfin, les CSP permettent de vérifier l' | + | |
| - | # CSP, pour eviter de charger des scripts d' | + | |
| - | Header set Content-Security-Policy " | + | |
| - | </ | + | |
| - | + | ||
| - | Les explications : | + | |
| - | * Header set X-Robots-Tag : http:// | + | |
| - | * CSP : https:// | + | |
| - | + | ||
| - | <WRAP center round info 90%> | + | |
| - | Note à propos de CSP : | + | |
| - | + | ||
| - | Il est difficile de faire marcher les CMS tout en ayant une politique sécurisée sur les CSP. | + | |
| - | + | ||
| - | L' | + | |
| - | Header set Content-Security-Policy " | + | |
| - | + | ||
| - | En effet, le paramètre '' | + | |
| - | </ | + | |
| - | <WRAP center round todo 60%> | + | |
| - | Travail en cours, on va trouver l' | + | |
| - | + | ||
| - | Pour le moment, cependant, etherpad bloque un csp de qualité. Même l' | + | |
| - | + | ||
| - | + | ||
| - | === Module ssl === | + | |
| - | Activer le module ssl dans Apache si ce n'est pas déjà fait : | + | |
| - | a2enmod ssl | + | |
| - | + | ||
| - | Puis modifiez le fichier ''/ | + | |
| - | * Enlever le protocole SSL3 et SSLv2 qui ne sont plus considérés comme sûrs (notez le " | + | |
| - | * Interdire la compression d' | + | |
| - | * Lister la liste des algorithmes de chiffrement autorisés et interdits | + | |
| - | * Imposer de négocier ces protocoles dans l' | + | |
| - | * Le dernier morceau concerne OCSP qui accélère un peu les échanges en https, voir aussi [[https:// | + | |
| - | < | + | |
| - | SSLProtocol all -SSLv2 -SSLv3 | + | |
| - | SSLCompression off | + | |
| - | SSLCipherSuite ALL:!aNULL: | + | |
| - | SSLHonorCipherOrder On | + | |
| - | + | ||
| - | # OCSP Stapling, only in httpd 2.3.3 and later | + | |
| - | SSLUseStapling | + | |
| - | SSLStaplingResponderTimeout 5 | + | |
| - | SSLStaplingReturnResponderErrors off | + | |
| - | SSLStaplingCache | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | Pour la liste '' | + | |
| - | + | ||
| - | + | ||
| - | À partir de la version 2.4.11 d'apache, vous pouvez ajouter dans le fichier ''/ | + | |
| - | + | ||
| - | < | + | |
| - | SSLSessionTickets Off | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | == Explications == | + | |
| - | <WRAP center round info 60%> | + | |
| - | Ce qui suit est extrait d'une conversation avec TychoBrahe ; j'ai conservé son style fleuri si savoureux. | + | |
| - | + | ||
| - | --- // | + | |
| - | </ | + | |
| - | + | ||
| - | Une ciphersuite est un ensemble de 4 algorithmes différents, | + | |
| - | * 1 pour faire un échange de clés | + | |
| - | * 1 pour faire du chiffrement asymétrique | + | |
| - | * 1 pour faire du chiffrement symétrique | + | |
| - | * 1 pour le contrôle | + | |
| - | + | ||
| - | Un exemple : DHE-RSA-AES256-SHA256 | + | |
| - | * DHE : diffie hellman, c'est l' | + | |
| - | * RSA pour l' | + | |
| - | * AES avec une clé de 256 bits pour le chiffrement symétrique | + | |
| - | * et enfin sha256 pour calculer les empreintes des sommes de contrôle | + | |
| - | On pourrait croire qu'il y a 5 algorithmes, | + | |
| - | + | ||
| - | SSL et TLS permettent d' | + | |
| - | + | ||
| - | Afin d' | + | |
| - | + | ||
| - | Le site de Mozilla cite toutes les ciphersuites, | + | |
| - | * ALL <- on autorise tout | + | |
| - | * !aNULL: | + | |
| - | * !LOW: | + | |
| - | * !EXP <- ce sont les variantes d' | + | |
| - | * !RC4 <- RC4 est un algo de chiffrement symétrique qui a été démoli mais un truc bien grave alors qu'il était très populaire | + | |
| - | * !3DES <- pareil, on interdit cette merde | + | |
| - | * !MD5 <- celui qui utilise encore md5 pour du checksum crypto est un grand malade | + | |
| - | * !PSK <- pareil, une merde de plus de virée | + | |
| - | * +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 pour y être inclus mais qui ont des chances de tout de même s'y retrouver. | + | |
| - | + | ||
| - | Les librairies ont un outil pour lister les familles, qui liste soit toutes les cipher suites supportées, | + | |
| - | openssl ciphers | + | |
| - | openssl ciphers HIGH | + | |
| - | openssl ciphers ' | + | |
| - | + | ||
| - | Voir aussi | + | |
| - | man 1 ciphers | + | |
| - | + | ||
| - | === Les fichiers de site-enabled (vhost) === | + | |
| - | + | ||
| - | Une fois https configuré (let's encrypt lancé, les fichiers ''/ | + | |
| - | + | ||
| - | Dans le cas d'un pare-feu sur un autre serveur que les serveurs de base, chaque vhost sur le serveur du pare-feu doit contenir ceci : | + | |
| - | + | ||
| - | < | + | |
| - | ServerName sousdomaine.monserveur.net | + | |
| - | + | ||
| - | # Proxy : permet de renvoyer vers l' | + | |
| - | # dans le cas de VM Xen, c'est donc une adresse locale. | + | |
| - | ProxyPass / http:// | + | |
| - | ProxyPassReverse / http:// | + | |
| - | + | ||
| - | ProxyRequests off | + | |
| - | ProxyPreserveHost on | + | |
| - | <Proxy *> | + | |
| - | Options FollowSymLinks MultiViews | + | |
| - | AllowOverride All | + | |
| - | Order allow, | + | |
| - | allow from all | + | |
| - | </ | + | |
| - | + | ||
| - | # SSL | + | |
| - | SSLEngine on | + | |
| - | SSLCertificateFile / | + | |
| - | SSLCertificateChainFile / | + | |
| - | SSLCertificateKeyFile / | + | |
| - | Include / | + | |
| - | + | ||
| - | # HSTS (mod_headers requis) (15768000 seconds = 6 months)(63072000 = 24 mois) | + | |
| - | Header set Strict-Transport-Security " | + | |
| - | </ | + | |
| - | + | ||
| - | HSTS (module Header) permet de déclarer au client directement dans la réponse HTTP qu'il faut communiquer en HTTPS. Cet en-tête permet d' | + | |
| - | + | ||
| - | + | ||
| - | <WRAP center round todo 60%> | + | |
| - | < | + | |
| - | SSLDHParametersFile / | + | |
| - | + | ||
| - | Je n'ai sans doute pas tout compris, ou alors ce n'est pas compatible avec ma version d' | + | |
| - | + | ||
| - | --- // | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | {{tag> Serveur | + | |





