Aymeric / APLU(.FR) - Mot-clé - POODLESite d'Aymeric (ou d'aplufr) pour parler de Linux, de technique.. enfin de tout et surtout de n'importe quoi !2023-09-19T19:41:16+02:00Aymericurn:md5:9a770342f58fde945e9ce016459f8f12DotclearPOODLE ou comment désactiver SSLv3urn:md5:5e1c5a3bd59ec9a21d55ada3a32c7a5b2014-10-18T11:00:00+02:002017-07-21T20:54:16+02:00APLUsysadminadministrateurapachedovecotFirefoxhttpsimapsPOODLEpopspostfixsmtpsslsslscanSSLv2SSLv3sysadminsécurité <h2>Sysadmin rules</h2>
<p>Si vous êtes <a href="https://www.aplu.fr/v2/tag/sysadmin">sysadmin</a> et un tant soit peu attentif à la sécurité des données qui transitent via votre serveur, vous avez probablement déjà entendu parler de la nouvelle vulnérabilité baptisée <a href="https://fr.wikipedia.org/wiki/POODLE" hreflang="fr" title="POODLE">POODLE</a>.</p>
<p>Le but de ce billet n'est pas d'expliquer la faille mais plutôt de savoir comment configurer les différents services qui peuvent tourner (mail, http) sur un serveur pour garantir une sécurité adéquate.</p>
<p>La solution choisie ici est de désactiver complètement SSLv3, une autre possibilité consiste à implémenter le <a href="https://datatracker.ietf.org/doc/draft-bmoeller-tls-downgrade-scsv/" hreflang="en">TLS_FALLBACK_SCSV.</a><br />
Le seul inconvénient à désactiver SSLv3 est que cela va empêcher les utilisateurs d'IE6 et de Windows XP (et peut-être d'autres outils totalement obsolètes) d'utiliser les services.</p>
<h2>Client WEB - Firefox</h2>
<p>Une astuce pour les utilisateurs de Firefox consiste à dire à <a href="https://www.aplu.fr/v2/tag/Firefox">Firefox</a> de ne plus supporter les anciens protocoles.</p>
<p>Allez dans about:config (à taper dans le champs d'adresse) et cherchez :</p>
<pre>
security.tls.version.min</pre>
<p>Positionnez la valeur à 1, les prochaines version 34+ auront ce réglage par défaut.</p>
<h2>Client WEB - Chrome/Chromium</h2>
<p>Passez simplement à la dernière version et c'est fait automatiquement de ce que j'en ai compris (cf le <a href="http://googleonlinesecurity.blogspot.fr/2014/10/this-poodle-bites-exploiting-ssl-30.html" hreflang="en">billet suivant</a>).</p>
<h2>Serveur WEB - Apache</h2>
<p>Pour désactiver <a href="https://www.aplu.fr/v2/tag/SSLv3">SSLv3</a> dans apache, cela se passe dans le fichier suivant :</p>
<pre>
/etc/apache2/mods-available/ssl.conf</pre>
<p>Dans ce fichier, cherchez la ligne SSLProtocol et modifiez-la comme suit :</p>
<pre>
SSLProtocol all -SSLv2 -SSLv3</pre>
<p>Vous pouvez en profiter pour modifier les algorithmes qui seront supportés avec les lignes suivantes :</p>
<pre>
SSLCipherSuite AES256+EECDH:AES256+EDH:HIGH:!LOW:!MEDIUM:!aNULL:!MD5:!RC4
SSLHonorCipherOrder on</pre>
<p>C'est tout, pensez à relancer apache.</p>
<h2>Serveur WEB - lighttpd</h2>
<p>L'emplacement du fichier de configuration sera laissé à la guise du lecteur (faudrait pas trop mâcher le travail non plus), voici les options à renseigner :</p>
<pre>
ssl.honor-cipher-order = "enable"
ssl.cipher-list = "AES256+EECDH:AES256+EDH:HIGH"
ssl.use-compression = "disable"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"</pre>
<p>Une petite précision sur l'ajout de l'option use-compression, cela permet d'éviter une autre attaque baptisée BEAST.</p>
<h2>Serveur WEB - Nginx</h2>
<p>Tout comme pour lighttpd, je laisse chercher l'emplacement du fichier :</p>
<pre>
ssl_ciphers "AES256+EECDH:AES256+EDH:HIGH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;</pre>
<h2>Serveur mail - Postfix (smtps)</h2>
<p>On a tendance à oublier les autres services qui utilisent SSL, mais si vous gérez un serveur mail... eh bien, il faut aussi penser à lui.</p>
<p>Bien sûr, vous devez utiliser SSL/TLS pour envoyer des mails depuis vos clients (Thunderbird, K9Mail, AndroMail...) si vous le ne faites pas cela revient à envoyer ses lettres sans enveloppe (mais comme vous êtes un bon administrateur système ceci était déjà configuré).</p>
<p>La configuration est à faire dans le fichier suivant :</p>
<pre>
/etc/postfix/main.cf</pre>
<p>Et les lignes à ajouter/modifier sont les suivantes :</p>
<pre>
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5, LOW, MEDIUM, RC4
smtpd_tls_mandatory_ciphers = high
smtpd_use_tls=yes</pre>
<p>Tout comme pour apache, on exclut totalement <a href="https://www.aplu.fr/v2/tag/SSLv2">SSLv2</a> et <a href="https://www.aplu.fr/v2/tag/SSLv3">SSLv3</a>, et en profite pour ne garder que des algorithmes sécurisés.</p>
<h2>Serveur mail - dovecot (imaps)</h2>
<p>Bien que le titre soit trompeur, cela est aussi valable pour pops (mais qui utilise encore POP3 ?).</p>
<p>La configuration est assez similaire à celle présente dans Apache, il faut modifier le <q>10-ssl.conf</q> avec les lignes suivantes :</p>
<pre>
ssl_protocols = !SSLv2 !SSLv3
ssl_cipher_list = AES256+EECDH:AES256+EDH:HIGH:!LOW:!MEDIUM:!aNULL:!MD5:!RC4</pre>
<h2>Comment vérifier ?</h2>
<p>Pour les serveurs WEB, vous pouvez utiliser l'outil <a href="https://www.ssllabs.com/ssltest/analyze.html?d=aplu.fr" hreflang="en">SSL Labs de Qualys</a> qui est très bien et donnera une note à votre configuration.</p>
<p>Pour les autres services, vous pouvez utiliser l'outil sslscan qui fait très bien son boulot :</p>
<pre>
sslscan --no-failed serveur:port</pre>
<p>Exemple, pour vérifier la configuration du serveur smtps (port 465) :</p>
<pre>
sslscan --no-failed www.aplu.fr:465
_
___ ___| |___ ___ __ _ _ __
/ __/ __| / __|/ __/ _` | '_ \
\__ \__ \ \__ \ (_| (_| | | | |
|___/___/_|___/\___\__,_|_| |_|
Version 1.8.2
http://www.titania.co.uk
Copyright Ian Ventura-Whiting 2009
Testing SSL server www.aplu.fr on port 465
Supported Server Cipher(s):
Accepted TLSv1 256 bits ECDHE-RSA-AES256-SHA
Accepted TLSv1 256 bits DHE-RSA-AES256-SHA
Accepted TLSv1 256 bits DHE-RSA-CAMELLIA256-SHA
Accepted TLSv1 256 bits AES256-SHA
Accepted TLSv1 256 bits CAMELLIA256-SHA
Accepted TLSv1 168 bits ECDHE-RSA-DES-CBC3-SHA
Accepted TLSv1 168 bits EDH-RSA-DES-CBC3-SHA
Accepted TLSv1 168 bits DES-CBC3-SHA
Accepted TLSv1 128 bits ECDHE-RSA-AES128-SHA
Accepted TLSv1 128 bits DHE-RSA-AES128-SHA
Accepted TLSv1 128 bits DHE-RSA-CAMELLIA128-SHA
Accepted TLSv1 128 bits AES128-SHA
Accepted TLSv1 128 bits CAMELLIA128-SHA
Prefered Server Cipher(s):
TLSv1 256 bits ECDHE-RSA-AES256-SHA</pre>
<p>Si vous voyez apparaître SSLv3, quelque chose est mal configuré ou vous avez implémenté le <a href="https://datatracker.ietf.org/doc/draft-bmoeller-tls-downgrade-scsv/" hreflang="en">TLS_FALLBACK_SCSV</a> (comme Google l'a fait).</p>