Bonnes pratiques SSL

La configuration apache ci-dessous devrait vous prémunira des dernières turpitudes liées à OpenSSL et vous permettra d’obtenir un bon score à ssllabs ou testssl.sh

SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+AESGCM EECDH EDH+AESGCM EDH+aRSA HIGH !MEDIUM !LOW !aNULL !eNULL !LOW !RC4 !MD5 !EXP !PSK !SRP !DSS !3DES"
SSLHonorCipherOrder on

En ce qui concerne postfix:

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_ciphers = high
smtpd_tls_exclude_ciphers = aNULL, MD5, 3DES, DES, RC

Sources:
– https://testbit.eu/apache-sslciphersuite-without-poodle/
– http://www.bortzmeyer.org/drown.html

Merci d’ailleur à @bortzemeyer de m’avoir fait découvrir http://testssl.sh/

 

Rediriger http vers https, tout en permettant le renouvellement automatique des certificats LetsEncrypt

La procédure de renouvellement automatique des certificats Let’S Encrypt  avec le client certbot nécessite d’autoriser l’accès à http://MON_DOMAINE/.well-known/acme-challenge… en clair.

Donc si vous avez redirigé l’ensemble du traffic http vers https, via par exemple une redirect, la vérification du certificat, lors de son prochain renouvellement va échouer.

Avec apache et mod_rewrite, on peut rediriger tout le trafic, sauf pour une URL particulière:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} "!^/\.well-known"
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L

L’astuce consiste à rajouter la  RewriteCond de la ligne 3 qui signifie « pour toutes les requêtes en clair, sauf celle concernant /.well-known ».

Changer le port d’écoute de SSH sans se prendre les pieds dans le tapis SELinux

Changer le port d’écoute de vos serveurs SSH, c’est de la sécurité par l’obscurité, mais au moins, vos logs d’accès ne seront pas pollués par toutes les tentatives de connexion effectués par tout le bot du grant Ternet.
ssh
En pratique c’est simple, il suffit:

  1. d’avoir une directive Port 4242 dans le fichier /etc/ssh/sshd_config
  2. d’ouvrir votre pare-feu ( firewall-cmd –permanent –add-port 4242/tcp ; firewall-cmd –reload )
  3. de relancer votre service (systemctl restart sshd)
  4. de vous assurez que vous pouvez bien vous connecter sur le nouveau port (ssh serveur -p 4242)

Si vous êtes courageux et que vous n’avez pas désactivé SElinux, ça coincera à l’étape 3 (le service ne redémarrera pas, SELinux ne lui permettant pas d’ouvrir ce port).

Il faudra associer votre port au type selinux ssh_port_t à l’aide de la commande suivante:

semanage port -a -t ssh_port_t -p tcp 2222