Mise à jour de mon script OpenVPN

Cela fait bientôt 9 mois que j'ai publié mon script pour installer facilement un serveur OpenVPN, et j'ai depuis fais beaucoup de changements, notamment ces derniers jours comme le montre ce petit graphique :

screenshot_04-12-2016_bghdhvtyr

Du coup, j'ai réécris en partie l'article original, mais je vais m'expliquer un peu plus en détail ici.

Un utilisateur m'avais demandé s'il était possible d'ajouter le support de Arch Linux, et en parallèle l'a aussi demandé à Nyr, puisque je le rappelle mon script en est un fork. Nyr ne veut pas supporter Arch Linux, puisqu'il dit qu'il y a peu d'utilisateurs. C'est faux sur desktop, mais vrai sur serveur, il y a vraiment très très peu de gens qui l'utilisent. HLFH, l'utilisateur en question, dit qu'il verra alors pour ajouter le support de Arch Linux sur mon script.

Et là, paf pif pof, la bombe explose, Nyr lâche toute sa haine contre moi :

I strongly suggest you to stay away from the @Angristan fork: it is buggy, insecure and badly maintained. He's putting users at risk and he either can't or don't want to see it. I'm honestly ashamed that my work has been vandalized like that by someone who claims to have "improved" it.

Les mots sont un peu durs, non ?

Peu importe, j'ai envie de vous dire, comme pour tout autre chose, tout autre critique constructive est la bienvenue, je demande donc à Nyr de développer un peu plus sa pensée. Ce qu'il a fait, et je l'en remercie puisque ça m'a permis de corriger de grosses erreurs que j'avais commises.

C'est mieux que rien, on va dire, puisque Nyr a ensuite continué de me dénigrer moi et mon travail. Des fois, on ferait mieux de pas trop se venter :

That's wrong, I obviously want my script to deploy a secure configuration. And it does. [...] Then, read the goddamn OpenVPN manual which either you haven't read or you haven't understood

On lui dit ou pas, que même la documentation de OpenVPN dis que ses paramètres par défaut sont vulnérables ?

Nyr a fait un super travail avec ce script, mais faut peut être pas se prendre pour un dieu dès que l'on a 3000 étoiles sur Github.

Bref.

J'ai pris en compte ses critiques, j'ai créé un nouveau dépôt (pour que mon travail immonde ne soit plus qu'un simple fork) et j'ai bien travaillé sur le script comme vous pouvez le voir sur l'historique des commits. Mon script n'a plus grand chose de l'original. ;)

Merci à TheKinrar qui a proposé une pull request pour ajouter le support d'Arch Linux, qui est, après plusieurs tests, bien fonctionnel ! On peut encore améliorer certaines choses, comme par exemple utiliser un service systemd pour les règles iptables au reboot au lieu d'un script rc.local qu'on doit installer manuellement.

Voici les autres changements :

Et surtout le plus gros commit, qui m'a demandé pas mal de travail c'est The crypto update ?. J'ai supprimé les modes "fast" et "slow" qui vous disent peut-être quelques chose si vous connaissiez déjà le script, et à la place j'ai mis certains paramètres par défaut, et pour d'autres comme la taillé de clé RSA, DH, ou encore la cipher, j'ai laissé le choix. Et grâce à Nyr j'ai bien corrigé la confusion qu'il y avait entre la cipher de la control channel et la data channel.

Le commit dont je suis vraiment fier c'est The crypto update ?, mais pour le Readme. En effet j'ai réécrit un peu le tout pour que ce soit plus propre, mais surtout pour justifier tous mes choix sur le chiffrement.

Je ne suis pas un cryto-noob, ni un crypto-expert, mais le chiffrement ne m'est pas inconnu comme vous pouvez le voir avec cet article sur HTTPS.

Ainsi, dans toute la partie #encryption, j'expose un à un les différents paramètres et algorithmes utilisés, ce que OpenVPN (et donc Nyr, hum) utilise par défaut, les différentes vulnérabilités qui existent, et ce que j'a choisi d'utiliser.

Sa lecture n'est pas forcément destiné à tout le monde, mais ça m'a demandé plusieurs heures de boulot.

À peu près tout ce que j'ai dit est justifié par des sources et donc je peux désormais clamer haut et fort : oui, mon script est une amélioration du script de Nyr, et oui OpenVPN utilise des paramètres dangereux par défaut pour le chiffrement.

N'hésitez pas cependant, à m'insulter dans les commentaires pour me corriger si jamais vous doutez de ce que j'ai affirmé dans ce long readme. Plus de 2000 mots quand même, c'est presque un mini-audit de OpenVPN :P

Bref, moi ce que je veux surtout c'est avoir un script propre qui fonctionne bien et qui installe un serveur OpenVPN sécurisé en quelques minutes. Comme toujours il faut bien avoir en tête son modèle de menace, utiliser un VPN pour échapper à la NSA, c'est pas la meilleure solution, mais ça peut embêter Cazeneuve :lol:

https://twitter.com/benjaltf4_/status/805507565065039880 J'ai encore pas mal d'autres idées d'amélioration en tête, donc n'oubliez pas de check de temps en temps si vous utilisez le script. :)

L'article Mise à jour de mon script OpenVPN a été publié sur Angristan

Vus : 837
Publié par Angristan : 57