The Daily Shaarli
Parmi toutes les directives de configuration géniales d'OpenVPN, j'en ai encore découverts deux : config et local.
La première, config, permet d'inclure un ou plusieurs fichiers de configuration dans un autre fichier de configuration. C'est extrêmement utile pour factoriser votre configuration quand vous avez plusieurs isntances (UDP et TCP, sécurisée et moins sécurisée, etc.).
La deuxième, local permet d'écouter sur une ou plusieurs IP spécifiées au lieu d'écouter sur toutes les interfaces réseaux. Bon, forcément, vous perdez la fonctionnalité de Linux qui permet d'écouter en IPv6 et en IPv4 en même temps, avec la même socket. Du coup, il vous faudra plusieurs instances : une v4, une v6. Pour peu que vous ayez déjà une instance udp et une instance tcp, ça vous fera 4 instances.
J'ai utilisé la deuxième option pour monter deux VPN dans une même VM : l'un proposant un chiffrement du canal de transport des données en Blowfish + SHA-1 (la config' par défaut depuis des années) et l'autre proposant un chiffrement AES-128 + SHA-256. On route 2 IPv4 et v6 jusqu'à la VM, on attribue les IP sur l'interface. Ensuite, on souhaite associer chaque VPN à une IP. Ce type de configurations permet de conserver un ancien VPN avec un chiffrement qui tend à être démodé aujourd'hui tout en mettant en prod' un VPN avec un chiffrement plus fort pour qu'il puisse être essayé par les utilisateur-rice-s car le chiffrement peut impacter le débit (bon, pas sur l'ADSL, faut pas charrier) et la latence sous certaines conditions, voir : https://shaarli.guiguishow.info/?r6npkg. Au total, on se retrouve avec 8 processus OpenVPN, 8 instances : legacy ipv4 udp, legacy ipv4 tcp, legacy ipv6 udp, legacy ipv6 tcp et la même chose pour le VPN au chiffrement différent. :D
Pourquoi ne pas avoir mis le VPN de test dans une autre VM ?
Parce que ça pose un problème de routage dans notre infra. Hé oui, par défaut, les blocs d'adresses IPv4 et v6 que nous dédions à notre service de VPn sont routés sur le VPN "classique". mais il faut bien que les IPs des aboné-e-s qui testent le VPN "renforcé" soient routées sur l'autre VM. Ça suppose d'utiliser un protocole de routage dynamique pour que l'utilisateur-rice puisse tester en changeant de VPN (classique ou renforcé) à volonté. Sauf que ce routage pose problème.
Si l'on monte 2 sessions BGP (une avec chacun de nos routeurs), ça foire lorsque la VM est sur le routeur qui n'est pas équipé de Quagga. Car, du point de vue de ce routeur Quagga, le next-hop est alors récursif : le next-hop du VPN est l'IP de la VM, le next-hop de la VM, c'est l'autre routeur. Or, Quagga refuse la récursivité quand elle consiste à piocher dans autre chose que des routes statiques ou des routes apprises grâce à un protocole de routage interne. Vieux principe Cisco. Or, nous utilisons exclusivement BGP puisque nos deux routeurs sont les seuls routeurs de notra infra.
Une piste possible est de monter deux sessions BGP et d'envoyer les routes uniquement au routeur-hyperviseur sur laquelle la VM se trouve présentement. Celui-ci sera chargé de le re-annoncer en iBGP à l'autre routeur et vu qu'on écrase le next-hop sur cette session iBGP, ça fonctionnerait. C'est du routage conditionnel. Ça se fait plutôt bien avec ExaBGP, il nous faut juste écrire le programme kiVaBien. Juste, ça sera un while(true) bien monstrueux (ben oui, quoi d'autre pour vérifier si la VM n'a pas changé d'hyperviseur-routeur ?).
Si l'on monte une seule session BGP, uniquement avec le routeur-hyperviseur sur lequel la VM est active présentement, il faut le faire sur une IP locale au lien sinon les deux sessions se monteront automatiquement. Cela fonctionne en IPv4 mais en IPv6, il est impossible de monter une session sans préciser l'interface… sauf qu'avec Ganeti, on ne la connaît pas à l'avance donc impossible de la mettre dans la configuration du routeur BGP. On peut faire un mix incluant neighbor IPv6 globale et source-address locale + multihop mais BIRD ne supporte pas (ce qui est logique, c'est totalement illogique).
De plus, si on a qu'une seule session active à la fois, le monitoring va gueuler (bah oui, y'a une session configurée mais down, c'est bien son rôle de prévenir). Certes, on peut re-écrire le check pour exclure la session BGP avec la VM VPN.
Y'a des services qui refusent de démarrer au boot quand on leur demande d'écouter sur une ou plusieurs IPs (v4 ou v6) spécifiques. C'est typiquement le cas d'Unbound, de BIND et d'OpenVPN.
Ces services s'attendent à trouver les IP configurées sur une interface réseau dès leur lancement. Or, même s'ils sont lancés après le réseau par l'init, en IPv6, il y a une vérification automatique que l'IP n'est pas déjà utilisée sur le réseau. Pendant cette vérification, le noyau n'indique pas aux applications qu'une IPv6 est associée à l'interface réseau, ce qui entraîne l'arrêt des services sus-mentionnés.
Le meilleur moyen de résoudre ce problème est de vérifier si le logiciel n'a pas une option pour re-scanner les interfaces réseaux. BIND dispose de interface-interval, NTPd dispose de -U, par exemple.
Si ce n'est pas le cas, il est toujours possible de désactiver la détection d'IPs dupliquées en ajoutant la ligne suivante dans la définition de l'interface réseau dans /etc/network/interfaces :
pre-up /sbin/sysctl -w net.ipv6.conf.$IFACE.accept_dad=0
ÉDIT DU 1/11/2016 À 22h55 : non, « dad-attempts 0 » ne permet pas de résoudre ce problème. FIN DE L'ÉDIT.
Entretien avec Stéphanie Bortzmeyer par Camille Paloque-Berges et Valérie Schafer le 23 avril 2015 dans le cadre du projet WEB90. http://web90.hypotheses.org
Le but du projet de recherche WEB90 est de comprendre et documenter les années 1990 en matière de numérique.
Quelques notes :
Parcours : études de physiques -> il se retrouve dans un labo avec un nouveau système d'information dont il doit s'occuper -> il trouve l'informatique très amusante -> il laisse tomber son doctorat. Pénurie accrue donc on recrute sans diplôme à l'époque. Il poursuivra ses études au Cnam mais il ne les terminera pas. Il commence sa carrière à l'INED en 1986.
Paysage de l'époque : l'INED n'était même pas encore connecté à EARN/Bitnet, réseau orienté éducation/recherche basé sur des technos IBM et qui fournissait des services type messagerie. D'autres réseaux existaient : UUCMP (pour mail, news, transfert de fichiers). L'éducation nationale utilisait Decnet. Beaucoup de réseaux différents dans tous les sens et surtout : rien de standard. À l'époque, il se codait beaucoup de passerelles entre ces réseaux. La première expérience d'Internet pour Stéphane remonte à 1991, quand il entre au CNAM en tant qu'adminsys.
Les réseaux "pré-Internet" permettaient déjà de découvrir la coopération, l'auto-régulation, la technique. Tout cela existait avant Internet et UNIX. Il y avait des communautés : communauté UUCP, communauté DECUS, communauté Atari, etc. C'était toute la différence entre IBM et DEC : l'échange pair-à-pair de la doc' et des protips pour le second, référent commercial pour le premier.
À l'époque :
Citation de Laurent Chemla : toute nouvelle technique de communication a toujours été un succès parce que l'humain est un animal communicant. C'est pour ça qu'il n'y avait pas besoin d'être voyant-e pour prédire le succès d'Internet.
Le nommage des machines a un peu changé. À l'époque, l'admin donnait un nom à sa machine car il y avait une relation affective découlant de la rareté. Aujourd'hui, on a xx ordinateurs par foyer donc cette relation n'existe plus vraiment. Dans le monde pro, les noms sont devenus plus utilitaires : les parcs comprennent beaucoup de machines, surtout avec la virtualisation donc le nom est un identifiant qui dit lieu physique + identifiant local ou nommage selon le service que rend la machine. Dans les 90's, le nommage était déjà un sujet d'engueulades : qui distribue, qui peut utiliser tel nom, etc.
On ne pensait pas à la vie privée, pas tellement parce qu'osef ou hippies mais plutôt parce qu'on avait assez de problèmes à gérer sans cela : il fallait que le réseau tourne. La fin des années 80 et le début des années 90 marque le déclin de l'informatique partagée.
BBS : accès distant, via un modem (en composant donc un numéro de téléphone) à un ordinateur qui donnait accès à messagerie, téléchargement, forums, etc.
Service d'accès à distance du CNAM : service mis en place par Stéphane qui permettait d'accéder au net via le CNAM. 10 modems posés sur une étagère en bois. Les étudiants en ont peu profité car ils n'avaient pas forcément d'ordinateurs à la maison et qu'il fallait un modem "agréé" car les autorités françaises avaient décrétées que les modems étrangers, c'était le danger. Sauf que c'était du protectionnisme bidon qui justifiait de vendre les modems agréés 10 fois plus cher. Des modems étaient ramenés en douce lors de voyages aux US. En revanche, le service avait beaucoup plu en dehors du CNAM et la majorité des comptes créés l'ont été pour des externes genre des personnes du monde UUCP/BBSSS qui voulaient se connecter à Internet. Cela à contribuer à diffuser Internet et ses usages en France.
Le site web de Nicolas Pioche, nommé "le Louvre" puis "web louvre" puis "web museum" suite à des fights avec le Louvre, qui proposaient des photos de tableaux a été important car cela a montré que le web pouvait être utilisé pour des sujets d'intérêt général et pas uniquement pour transmettre de la doc'.
Fallait-il créer des associations spécifiques ? Les droits et libertés humaines, le droit de la consommation, c'est générique. D'un autre côté, des gens comme Barlow prétendaient qu'Internet est un nouveau monde totalement différent. Ce qui a justifié les assos, c'est que les structures existantes (partis politiques, par exemple) n'en avaient rien à faire d'Internet, il fallait donc que les informaticiens de l'époque fassent eux-même. Exemple de combat : l'Internet Society (ISOC) en partie montée pour faire tomber les marques « Internet » illégitimes (oui, des sociétés commerciales avaient vraiment déposé la marque « Internet » :- ).
Assos : AUI pour les utilisateurs. AFU (AFNet) très corporate avec de claires visées économiques. ISOC France, "filiale" (de fait) de l'ISOC sans réel succès puisque l'ISOC impose des contraintes strictes pour monter des relais locaux.
Premiers problèmes : racisme trash sur tous les groupes francophones sur Usenet, affaire Altern/Estelle Halliday, vente d'objets nazis aux enchères sur Yahoo (https://fr.wikipedia.org/wiki/LICRA_contre_Yahoo!).
AOL, Infonie, Calvacom, etc. posaient déjà la question d'un Internet ouvert versus des réseaux fermés qui se vantaient d'être contrôlés, vérifiés, "on sait ce qu'il y a dessus", etc. C'était un argument marketing. L'histoire a tranché. :)
Toute organisation humaine tend à créer de la politique (au sens noble) quand elle passe d'un petit groupe homogène (techniciens fan de science-fiction) à un groupe hétérogène plus vaste.
Particularités française :
Comme Youtube et les vidéos coupées, c'est le mal, je mets à disposition une version complète et dans un format libre (webm / VP8 / Vorbis) : http://www.guiguishow.info/wp-content/uploads/videos/Web90-Stephane_Bortzmeyer-15-04-2015.webm
Excellente vidéo qui résume bien les dangers de la robotisation de la censure privée ainsi que les problèmes de flous juridiques auxquels doivent faire face les auteur-e-s de vidéos.
Content ID : les vidéos uploadées sur Youtube sont automatiquement comparées à une base de données d'empreintes de vidéo/image/son fourni par des détenteurs de droits sur des contenus. Il s'agit donc d'une censure privée et aveugle. Si Content ID détecte quelque chose, le détenteur des droits de l'œuvre reproduite peut :
Sauf que le robot Youtube ne peut pas détecter les usages légitimes de contenus protégés : droit français à la caricature, droit français de citation, fair use américain, etc. Il y a un flou juridique (pas de décision de justice définitive) pour savoir si le droit de citation français s'applique à une vidéo et quelle serait la limite temporelle de cette citation. Par contre, il n'y aucun doute sur l'existence droit à la caricature en droit français. Le droit français ne prévoit rien pour tout ce qui est détournement et transformation autre que caricature comme les fameux mash up. Les fan-fiction qui ne seraient pas des caricatures auraient quelques problèmes aussi… … …
Youtube a mis en place des procès virtuels Youtube pour contester une des mesures énoncées ci-dessus. Sauf que le détenteur des droits, celui qui est soit disant "volé" est juge et partie au procès et n'a pas besoin de motiver sa décision. La grande classe.
Une étude américaine (https://boingboing.net/2016/03/30/landmark-study-on-the-effects.html ) a montré que les abus de droit d'auteur ont un effet néfaste sur la liberté d'expression. Sans blague ?!
Il y a des abus en masse, que ça soit sur des caricatures, des critiques (droit de citation) ou de la pédagogie. Même pour 8 secondes de vidéo (soit 0,36 % de l'œuvre) situé après le générique (qui a donc été vu par moins de 20 % des personnes qui ont visionné la vidéo). L'auteur peut être dépossédé de l'intégralité des revenus publicitaires qu'il perçoit sur la vidéo pour 8 secondes d'extrait ! De même, l'accès aux Youtube Space (lieux loués par Youtube avec décors, matos et tout) est refusé s'il y a usage d'extraits… Quelques abus célèbres :
Le Youtubeur moyen s'écrase car il n'a pas la thune pour aller contester devant un vrai tribunal surtout quand il n'est pas sûr de gagner vu les flous juridiques énoncés plus haut. Il y a donc une inégalité dans l'accès à la liberté d'expression : il faut avoir du blé ou une grosse communauté (donc de la visibilité) pour pouvoir se défendre. Il y a donc une majorité d'abus qui passe inaperçue…
Content ID est un système créé par les hébergeurs pour résister aux ayants-droits. La LCEN (France) ou le DMCA (USA) permettent aux ayants-droits de bombarder les hébergeurs de demandes de retrait de contenus en invoquant la responsabilité des intermédiaires techniques prévue dans ces textes.
Pistes d'amélioration :
Autres dérives de la propriété intellectuelle (droit d'auteur mais pas que) : rubrique hebdomadaire « Copyright Madness » sur Numerama.
https://www.youtube.com/watch?v=JWQLhBVuuB4 :
