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 [2018/09/12 17:36] – [Module header] zatalyz | fr:securite_sysadmin [2023/06/21 08:30] (Version actuelle) – Transfert des infos sur une page dédiée zatalyz | ||
---|---|---|---|
Ligne 114: | Ligne 114: | ||
==== Apache2 ==== | ==== Apache2 ==== | ||
- | [[wpfr> | + | Voir la page dédiée |
- | + | ||
- | Apache a un avantage dans le cas d'une architecture " | + | |
- | + | ||
- | 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 | + | |
- | # 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' | + | |
- | # 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 TLSv1.2 | + | |
- | SSLCompression off | + | |
- | SSLCipherSuite HIGH:!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 limite 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 sites-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' | + | |
- | + | ||
- | --- // | + | |
- | </ | + | |
- | + | ||
- | === 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. | + | |
{{tag> Serveur Sysadmin Sécurité }} | {{tag> Serveur Sysadmin Sécurité }} |