• Serveurs
  • [Discussion] Compiler la dernière version de nginx avec LibreSSL

Excellent merci.
Question con, j'utilise déjà nginx dans sa version v5.3.0 pour par exemple cakebox, sickrage.
Comment ça va se passer pour moi concrètement ?
J'installe cette version et je c/c ce que j'ai dans la v5.3.0 dans celle ci ?
nginx 5.3.0 ?
(GCC ?)

Pour toi, il faut backup les vhosts dans /etc/nginx/sites-enabled (et éventuellement sites-available) et les éventuels fichiers de configuration. Comme toujours, il faut backup (apt-get purge va toute ton installation de nginx, fichiers de configuration avec !). Donc après ça, tu installes la nouvelle version que tu auras compilée, et là tu mettras tes vhosts dans sites-enabled.
J'ai pas compris la blague avec GCC
J'ai vais déjà tout sauvegarder et je tenterais après.
Merci à toi
Attention je ne suis pas responsable en cas de dégâts sur votre installation actuelle.
Faire un backup de votre /etc/nginx actuel.

.deb : http://ratbox.nl/md/nginx-libressl_1.9.9-1_amd64.deb
nginx.conf : https://gist.github.com/Wonderfall/add42d3bafb3665e281c

Comment installer ?
# Si nginx est déjà installé
service nginx stop
mv /etc/nginx /etc/nginx-bkp
apt-get purge -y nginx
rm -rf /etc/nginx # On vérifie que /etc/nginx n'existe pas pour avoir du propre...

cd /tmp
wget http://ratbox.nl/md/nginx-libressl_1.9.9-1_amd64.deb
dpkg -i nginx-libressl_1.9.9-1_amd64.deb
cd /etc/nginx/conf
rm nginx.conf
wget https://gist.githubusercontent.com/Wonderfall/add42d3bafb3665e281c/raw/1536bee8cce8851aab54e77d2b1b0291f81b12c0/nginx.conf
Autres fichiers utiles (merci au cobaye @Rondin !) :
/etc/init.d/nginx : https://pix.schrodinger.io/#o1L4Un8BhHOZvvlk2Uw6GA
/lib/systemd/system/nginx.service : https://pix.schrodinger.io/#t0J5B48i_HZZoolje2cLwQ
Arck0s wrote:J'ai pas compris la blague avec GCC
Bah nginx 5.3.0 c'est pas encore là.
5.3.0 est la version actuelle de gcc.
Non mais c moi, il s'agissait de la version de nodejs
Concrètement quel est l'intérêt d'utiliser LibreSSL ?
Wonderfall wrote:(faut transférer le deb, je trouve pas un hébergeur digne de ce nom qui fonctionne sans utiliser d'outil tiers en bash...)
Moi j'en connais un d'hebergeur digne de ce nom
wget http://ratbox.nl/md/nginx-libressl_1.9.9-1_amd64.deb
Ex.
C'est une bonne question, à laquelle j'ai en grande partie répondu dans le tutoriel : LibreSSL est né dans un but précis, celui de nettoyer le code en supprimant du code obsolète, dangereux, et en remettant sur la table des bugs qui n'ont pas été corrigés depuis des années.

Mais bien évidemment, on est en droit de se demander à quoi cela peut-il nous servir ?
Ici, il ne faut pas attendre des benchmarks ou quelque chose du genre ; personnellement, j'ai une confiance absolue en matière de sécurité dans les projets d'OpenBSD (OpenSSH, OpenBGPD, OpenNTPD, OpenSMTPD, LibreSSL, et bien évidemment l'OS !). Bien qu'OpenSSL est activement développé, je préfère confier mon serveur web à LibreSSL. C'est un argument tout à fait subjectif, j'en suis conscient. C'est une préférence.

J'ai aussi cité dans le tutoriel quelque chose de plus concret et de plus objectif : l'implémentation de ChaCha20 et Poly1305. Ces algorithmes cryptographiques font l'objet d'une spécification stable, mais ne seront inclus dans OpenSSL que dans la version 1.1.0. AES est une référence, mais que se passera-t-il si une faille découverte ? Comme à peu près partout en matière de sys admin, on préfère dire "qu'il y a un équivalent à tout". C'est par exemple pour cela qu'une partie des serveurs DNS racines tournent sur bind9, d'autres sur NSD. Là c'est pareil : même si AES est une référence, on ne doit pas se reposer dessus. On doit développer des alternatives.
D'ailleurs, AES est performant, mais il ne l'est vraiment que sur du matériel dédié. Nos CPU Intel sur PC, ont depuis des années des instructions AES (AES-NI). Pas nos SoC ARM, ou d'autres choses exotiques... ChaCha est normalement performant partout. J'ai trouvé ce billet intéressant de la part de Cloudflare :
https://blog.cloudflare.com/do-the-chacha-better-mobile-performance-with-cryptography
C'est ce qui a motivé Google à l'implémenter dans Lollipop, et à en faire la promotion en général.

Une autre alternative à OpenSSL d'ailleurs est BoringSSL, qui est né de la même façon que LibreSSL. C'est néanmoins beaucoup plus compliqué à compiler j'ai l'impression, et BoringSLL a une vision plutôt novatrice dans son développement, mais je ne sais pas où ça va se diriger. Si quelqu'un connaît mieux, je lui laisse la main pour expliquer.

Voilà ma réponse, donc pas vraiment d'avantages concrets pour l'utilisateur final, mais il y a quand même des intérêts qui peuvent motiver à utiliser LibreSSL, je pense.

EDIT : Merci Ex !
un mois plus tard
SSL Labs reconnait pas ChaCha et Poly
Angristan wrote:SSL Labs reconnait pas ChaCha et Poly ☹
ChaCha pas grave, si SSL Labs est pas Poly.

[-]->
Angristan wrote:

SSL Labs reconnait pas ChaCha et Poly ☹

C'est à dire ?

un mois plus tard
Je n'ai jamais vu que ça posait un réel problème, pour le moment en tout cas.
Après dans l'absolu si c'est recommandé, tu peux compiler un kernel récent, ça ne fera pas de mal non plus.
3 mois plus tard
@Wonderfall : Quand une nouvelle version de LibreSSL sort, il faut tout recompiler ? ou on peut biaiser à un moment ?
Oui, faut tout recompiler vu que le lien avec LibreSSL est statique. Par contre tutoriel un peu obsolète, je dois le refaire et cette solution simplifie les choses : https://mondedie.fr/d/8271

Au fait la question de Oxynux est très importante. Le kernel 3.17 implémente getrandom(), c'est la raison.
Répondre…