From eeed1cca4e3a8bebdfcef86053383e69046e5667 Mon Sep 17 00:00:00 2001
From: Simon Vieille
Il existe tout un tas de solutions pour réaliser son VPN. La plus connue est certainement OpenVPN mais je lui préfère Wireguard pour sa très grande simplicité d'installation.
+ +Dans mon cas d'usage, j'ai un serveur Wireguard sous Debian et des clients qui tournent principalement sur Debian mais aussi Windows et Android.
+ +Sous Debian 10, il est nécessaire d'utiliser les dépots backports pour insaller Wireguard.
+ +echo "deb http://deb.debian.org/debian buster-backports main contrib non-free" \
+ | sudo tee /etc/apt/sources.list.d/buster-backports.list
+
+
+Une fois le dépot ajouté, il suffit de mettre à jour la liste des paquets et d'installer Wireguard.
+ +sudo apt update && sudo apt install wireguard
+
+
+Sur d'autres distributions, il faudra installer wireguard-tools
mais je vous laisse vous référer à la page d'installation pour plus d'informations.
En complément de Wireguard, je vous invite à installer iptables
et resolvconf
sur le serveur et uniquement resolvconf
sur vos clients linux. iptables
va permettre de realiser le routage des paquets tandis que resolvconf
va permettre de gérer les DNS via la connexion VPN.
Une fois l'installation terminée, on va générer un couple de clés sur le serveur.
+ +cd /etc/wireguard
+umask 077
+wg genkey | tee privateKey | wg pubkey > publicKey
+
+
+Suite à ces commandes, 2 nouveaux fichiers ont été générés : privateKey
contient la clé privée et publicKey
contient la clé publique. Il faudra conserver la clé privée secrète tandis que la clé publique va permettre d'identifier le serveur auprès des clients. Son contenu sera donc partagé sur d'autres machines. Vous pouvez réaliser la même opération sur vos machines clientes qui seront elles aussi identifiées avec leur clé publique. Les interfaces graphiques de Wireguard réaliseront la générations des clés automatiquement. Bien sur, vous pouvez créer autant de clés que vous le désirez. Je recommande de créer un couple de clé par serveur VPN.
Nous allons ensuite générer le fichier /etc/wireguard/wg0.conf
où wg0
désigne le nom de l'interface réseau qui sera créée par wireguard. Selon vos besoins, vous pourrez en ajouter autant que vous le désirez.
[Interface]
+Address = 10.0.0.1/24
+SaveConfig = false
+PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERAD = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
+PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
+ListenPort = 51820
+PrivateKey = clé_privée_du_serveur
+
+
+Dans cette configuration, je définie la page IP du réseau (10.0.0.1/24
) et l'IP du serveur (10.0.0.1
). Veillez à modifier le nom de l'interface connectée à Internet (ici eth0
). Insérer également le contenu de la clé privée à la dernière ligne. SaveConfig
à false
indique que le fichier pourra être modifié pendant que le serveur est lancé. Enfin, on indique que le serveur écoute sur le port 51820
.
+Vous pourrez répéter cette opération sur vos client mais vous devrez omettre les lignes avec PostUp
, PostDown
et ListenPort
. Vous devrez également changer Address
en incrémentant l'ip et en fixant la page à 32 (exemple : 10.0.0.2/32
, 10.0.0.3/32
, etc.).
Enfin, il faudra renseigner la liste des clients du réseau VPN en utilisant leur clé publique et l'adresse IP qu'ils auront configurée.
+ +[Interface]
+...
+
+[Peer]
+PublicKey = clé_publique_du_client_1
+AllowedIPs = 10.0.0.2/32
+
+[Peer]
+PublicKey = clé_publique_du_client_2
+AllowedIPs = 10.0.0.3/32
+
+
+Coté client, il faudra renseigner le serveur :
+ +[Interface]
+...
+
+[Peer]
+PublicKey = clé_publique_du_server
+AllowedIPs = 10.0.0.0/24
+Endpoint = ip.du.serveur.vpn:51820
+PersistentKeepalive = 20
+
+
+Dans cet exemple, j'ai définie que seuls les paquets à destination du réseau VPN seront routés dans le VPN : AllowedIPs = 10.0.0.0/24
. Si vous voulez router tout votre traffic, saisissez AllowedIPs = 0.0.0.0/0
. Pour ajouter plusieurs plages, il suffit de les séparer par des virgules.
+Dans le bloc [Interface]
des clients, vous avez la possibilté d'ajouter une propriété DNS
afin de paramétrer un ou plusieurs serveurs DNS. Les serveurs DNS devront être accessibles par le serveur VPN ou le client selon le paramétrage de AllowedIPs
. Attention, les DNS seront paramétrés comme des DNS classiques et ils seront sollicités pour résoudre tous les noms.
Une fois les configuration effectuée, vous pourrez démarrer ou arrêter la connexion VPN avec sudo wg-quick up wg0
et wg-quick down wg0
sur le serveur et sur les clients. Vous pourrez monitorer les connexions avec la commande sudo wg
.
Beaucoup de versions ont été réalisées car elles suivent mon évolution et les technologies que j'utilise. La précédente mouture était basée sur Trinity, un CMF basé sur Symfony 2, développé par web&design et sur lequel j'ai beaucoup travaillé. Trinity est puissant mais la conception n'est plus d'actualité et la migration vers une version récente de Symfony est impossible.
+Je travaille sur la refonte du site web de l'association Tinternet & cie et s'est rapidement posée la question du CMS. Cela m'a permis d'entreprendre l'écriture de Murph, un CMF qui repose sur Symfony 5 et qui reprend les bonnes idées de Trinity avec une conception qui tient plus la route.
Tandis que Trinity
était un hommage à Matrix, Murph
est tout droit tiré d'Interstellar, un film pour lequel j'ai une affection très particulière. Voici quelques images du backoffice.
Si le projet vous intéresse, le code source du blog est disponible ici et celui du squelette de Murph se trouve là.
+]]>J'ai harmonisé l'ensemble des configurations sur mes différents accès. Pour ce faire, +j'ai principalement travaillé sur le prompt et je publie aujourd'hui le code de mon thème.
+ +Voici une capture d'écran qui décrit l'ensemble des fonctionnalités de mon thème :
+ +Le code source est disponible sur cette page +et il est totalement libre.
+]]>Le déploiement précipité d'algorithmes très dangereux sans aucune audit interne +ni externe, sur les téléphones de milliards d'humains, me semble absolument terrifiant. +Mais le plus effrayant, c'est que cette histoire est complètement ignorée par le grand +public, les médias, l'industrie de la tech et le monde académique...
+]]>Mes efforts se sont naturellement dirigés vers les outils que j'utilise et c'est +Nextcloud et son écosystème sur lesquels je me suis concentré.
+ +Mon plus gros projet de 2020 est Custom menu, une application pour Nextcloud qui +permet de modifier le menu par défaut en proposant d'autres affichages. Je suis +très content du résultat et beaucoup d'administrateurs ont décidé de l'installer +sur leur instance. En effet, toutes versions confondues, Custom menu a été +téléchargé plus de 102 mille fois et les dernières versions sont installées sur +environ 9000 instances.
+ +J'ai réalisé du code pour faire évoluer l'application Forms on y ajoutant de +nouveaux types de champ. Cela n'a pas du tout été évident d'échanger avec +l'équipe de développement mais j'espère voir arriver ces évolutions dans une +prochaine version.
+ +Ensuite, j'ai traduis Analytics en français même si je ne suis pas satisfait. +Je vais faire de nouvelles traductions l'année prochaine ! Cette application +permet de mettre en graphique des données stockées sur Nextcloud ou accessibles +depuis une API. C'est encore relativement basique mais c'est tout de même très pratique.
+ +Même si le développement n'est pas très actif, j'utilise l'application Printer +et j'ai proposé du code pour gérer les permissions et réduire les risques +d'injection de code.
+ +Dans un contexte très différent de Nextcloud, j'ai apporté un correctif au +projet PDNS Manager, une interface web qui permet de gérer les enregistrements +d'un serveur Powerdns.
+ +J'ai récemment publié Mail RSS, une application pour transformer des +emails en flux RSS. Enfin, un peu plus tôt cette année, j'ai mis en ligne les sources du +site web qui permet de monitorer le terrarium de la maison.
+ +Je crois avoir fait le tour de mon activité en espérant poursuivre en 2021 !
+]]>Après la loi sécurité globale et la loi séparatisme, le gouvernement poursuit + son offensive généralisée visant à museler toute opposition politique. + Mercredi dernier, les trois fichiers de « sécurité publique » (PASP, GIPASP et EASP) + ont été largement étendus par trois décrets (ici, ici et là). Ils
+ + +On y est, on peut maintenant être fiché pour nos opinions politiques, +nos convictions philosophiques, religieuses ou notre appartenance syndicale.
+ +Alors pour reprendre un vieux débat sur la protection des données où on me répondait "je n'ai rien à cacher", +ma réponse était systématiquement :
+ +Ce futur est maintenant le présent.
+ +En dehors de toute activité, nos simples opinions seront inscrites dans un fichier +d'état. C'est très grave et nous avons avançons encore vers un état totalitaire. +Je pense que le point de non retour à été atteint.
+]]>L'idée est assez simple : en utilisant les alias de mail dans Postfix, +on peut faire en sorte qu'un mail qui arrive sur le serveur soit traité par une commande. +J'ai décidé de rediriger les mails dans un répertoire précis du serveur et je +demande à Mail RSS de les lire et de les importer.
+ +Prenons la newsletter de TechTrash comme exemple.
+ +Il faut ajouter un alias qui va générer des fichiers.
+ +techtrash: "| cat > /var/lib/mailrss/techtrash-$(date +%s) && chmod o+rw /var/lib/mailrss/techtrash-$(date +%s)"
+
+
+Au préalable, j'ai créé le répertoire /var/lib/mailrss
et je me suis assuré que mon application
+pouvait lire et écrire dedans, de même que Postfix (nobody:nogroup
).
On doit générer un mailing pour TechTrash. Quand on va importer les mails de TechTrash,
+on pourra les associer au mailing via son identifiant (ID
). On pourra ensuite
+accéder au flux RSS via le lien généré à sa création. Évidement, on peut créer
+autant de mailing que l'on veut, les modifier et les supprimer.
$ php bin/console mailing:new "TechTrash"
+$ php bin/console mailing:list
+ ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- ---------------------
+ Label ID Feed Created at Updated at
+ ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- ---------------------
+ Tech Trash xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx https://exemple.fr/mailing/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/rss 2020-11-12 13:37:00 2020-11-12 13:37:00
+ ------------ -------------------------------------- ------------------------------------------------------------------------ --------------------- ---------------------
+
+
+
+Enfin, il faut un script qui va traiter les fichiers de /var/lib/mailrss
en les important
+dans le mailing correspondant et qui les supprime du serveur.
#!/bin/sh
+
+cd "/path/to/exemple.fr"
+
+import_mails() {
+ LABEL="$1"
+ MAILING_ID="$2"
+
+ find /var/lib/mailrss -name "${LABEL}-*" | while read MAIL; do
+ php bin/console mail:import "${MAILING_ID}" -f "$MAIL" && rm "$MAIL"
+ done
+}
+
+import_mails "techtrash" "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+
+
+Quand un mail est importé, les données récupérées sont :
+ +Toutes ces données seront accessibles à la consultation.
+ +L'application s'appuie sur Symfony (en version de développement) et le code est +totalement libre 😄
+]]>L'an passé, j'utilisais exclusivement OnlyOffice via +son connecteur Nextcloud et une instance +installée sur un serveur dédié. Puis, lors d'un déboire au sujet de l'édition +depuis un terminal mobile, j'ai décidé +de migrer vers Collabora Online via +son connecteur Nextcloud et une instance +installée sur un serveur (presque) dédié.
+ +Le problème est que si Collabora Online sait très bien traiter les fichiers ODF, +il galère un peu plus avec les fichiers Open XML. Aussi, force est de constater que +OnlyOffice reste très performant pour jouer avec Open XML. J'ai donc +décidé de les installer ensemble. Collabora Online est donc l'éditeur ouvert pour +les documents ODF tandis que OnlyOffice le sera pour les fichiers Open XML.
+ + + +Afin de les discerner dans le menu pour créer un nouveau document, j'ai développé +un bout de javascript que vous pouvez injecter via JSLoader. +Je pense d'ailleurs que cela sera une bonne idée de forker cette application +afin d'en reprendre la maintenance.
+ + + +Alors ce n'est sans doute pas le code le plus élégant mais il fonctionne bien.
+ +try {
+ setInterval(function() {
+ var elements = {
+ 'docx': 'onlyofficeDocx',
+ 'xlsx': 'onlyofficeXlsx',
+ 'pptx': 'onlyofficePpts',
+ };
+
+ for (var i in elements) {
+ var selector = 'a.menuitem[data-action="' + elements[i] + '"] .displayname';
+ var span = document.querySelector(selector);
+
+ if (!span) {
+ return;
+ }
+
+ if (span.innerHTML.indexOf(i) !== -1) {
+ continue;
+ }
+
+ span.innerHTML = (i !== 'docx' ? 'Nouvelle ' : 'Nouveau ') + span.innerHTML.toLowerCase() + ' (' + i + ')';
+ }
+
+ elements = {
+ 'odt': 'add-odt',
+ 'ods': 'add-ods',
+ 'odp': 'add-odp',
+ };
+
+ for (var i in elements) {
+ var selector = 'a.menuitem[data-action="' + elements[i] + '"] .displayname';
+ var span = document.querySelector(selector);
+
+ if (!span) {
+ return;
+ }
+
+ if (span.innerHTML.indexOf(i) !== -1) {
+ continue;
+ }
+
+ span.innerHTML = span.innerHTML + ' (' + i + ')';
+ }
+ }, 100);
+} catch (e) {
+
+}
+
+]]>Ou comment instrumentaliser à des fins politiques un événement tragique qui n'a aucun rapport pour relancer une loi anticonstitutionnelle : La loi AVIA
+ + +L'appareil législatif contient déjà tous les outils pour lutter contre les +contenus manifestement illicites tels que les incitations à la haine, +les injures à caractère raciste ou anti-religieuses.
+ +Les contenus terroristes ou pédopornographiques doit être considérés comme tel
+par un juge et non par l'appréciation de l'administration. Les
+plateformes privées ne doivent pas jouer le rôle d'organe de censure et encore
+moins l'automatiser.
+Le conseil constitutionnel s'est déja prononcé en indiquant que
+« le législateur porte une atteinte à la liberté d'expression qui n'est ni adaptée,
+ni proportionnée au but poursuivi ». Il persiste « le risque que les opérateurs
+soient incités à retirer tous les contenus contestés, y compris ceux qui sont licites » [1].
Si un contenu devait être supprimé, cela veut donc dire qu'il a +été nécessairement publié donc le mal est déjà fait. Mais sous couvert de la +lutte contre l'anonyma sur Internet (qui n'est qu'une idée reçue), la loi Avia +va permettre de museler les personnes qui dérangent, ceux qui ont des idées en +marge, les mouvements contestataires, ceux qui militent pour un état de droit et +non pas pour un état policier en imposant une suppression pure et dure de leurs +contenus sans l'accord d'un juge.
+ +Cette loi est la porte ouverte vers une énième derive totalitaire où l'état va nous +imposer son idéologie.
+]]>Nextcloud est une plateforme web qui se compose d'applications +pour faire tout et n'importe quoi. On peut héberger et partager des documents, +gérer ses calendriers et ses contacts, enregistrer ses marque-pages, lire des flux +RSS, réaliser des sondages, etc.
+ +Selon moi, quand on active beaucoup d'applications, un des problèmes principaux +est le menu qui n'est pas du tout adapté.
+ + + +Pour résoudre ce problème, j'ai entrepris le développement d'une application +dédiée à la gestion de ce menu et j'ai publiées les premières versions +pendant le confinement du début d'année.
+ +Custom menu est totalement personnalisable. On peut modifier l'emplacement du menu +selon trois dispositions : dans un panneau latéral, affiché en +permanance comme le menu d'Ubuntu ou via un panneau qui s'ouvre sur le dessus. Vous pouvez +bien sur choisir les couleurs de tous les éléments, afficher votre logo, la photo +de profil de l'utilisateur ou rien du tout, choisir la taille du texte celle des +icônes, etc.
+ +On peut aussi désigner des applications qui doivent rester affichées dans le menu original, +choisir lesquelles doivent s'ouvrir dans un nouvel onglet et si l'administrateur +le permet, alors chaque utilisateur pourra faire sa propre organisation.
+ +Custom menu est compatible avec AppOrder de manière à pouvoir choisir l'ordre +d'affichage des applications.
+ + + +Si vous êtes curieux, n'hésitez pas à tester Custom menu et si vous avez des idées +pour faire évoluer l'application ou que vous rencontrez un bug alors je vous invite +à ouvrir un ticket sur le dépot du projet.
+ +Enfin, si vous désirez soutenir mon travail, vous avez la possibilité de +m'offrir un café 😀
+]]>Ce film réalisé par Jeff Orlowski et produit par Larissa Rhodes a pour objectif +de nous faire prendre conscience que derrière un post Facebook ou Instagram, +qu'autour d'un e-mail affiché sur Gmail ou pendant que vous regardez un contenu +sur YouTube, des algorithmes font leur possible pour accaparer votre temps.
+]]>Avant tout, cela fait un moment que j'ai intégré la gestion de mes mots de passes en dehors +du navigateur en m'appuyant sur passwords. +Mes marques pages sont duppliqués vers bookmarks. +et mes lectures différées sont gérées avec wallabag. +Tous ces outils possèdent des extensions compatibles avec les "autres" navigateurs.
+ +Passons maintenant au "choix" du potentiel remplaçant. En dehors de +Firefox, tous s'appuient sur chromium, le Internet Explorer du 21ème siècle. Je n'ai pas +voulu faire le mec ultra borné donc j'ai fais un choix dans la maigre liste des +navigateurs qui tiennent la route. Je me suis arrêté sur Vivaldi : il est possible +de synchroniser son profil avec un compte Vivaldi et les données sont chiffrées. Les extensions +que j'utilise tous les jours fonctionnent avec et Vivaldi ne semble pas collecter mes données. +En terme de licence, le code de l'interface n'est pas accessible mais le moteur et les modifications +le sont (source).
+ +Donc j'ai installé Vivaldi, j'ai synchronisé mes marques pages, +j'ai retrouvé mes mes mots de passe et mes extensions favorites sont paramétrées. Chouette.
+ + + +…mais en navigant à tout casser 3 minutes, je me suis posé cette question : où sont +mes conteneurs comme chez Firefox ? +Spoiler : ils n'existent pas et aucun navigateur ne le propose. Donc j'ai ravalé ma salive +et je me suis demandé s'il y avait un Master Password +pour sécuriser les mots de passe collectés ? Spoiler : il n'existe pas non plus…
+ +Du coup, je suis revenu sur Firefox et j'ai fais un don à Mozilla, en espérant que d'autres +feront comme moi et que Firefox survivra encore longtemps.
+]]>Festival 100% local et virtuel pour inventer Le 1er jour d'après - Organisé par La Furiseuse et Le Pixel
+ +Le numérique est un enjeu sociétal important. Nous réalisons plusieurs constats
+qui doivent mener à une prise de conscience collective et permettre de changer
+en profondeur notre compréhension et nos usages du numérique.
+Nous proposons quelques pistes de réflexions pour créer un numérique plus éthique
+et plus juste.
Participants : Alexis Gabry, Benjamin Lavigne, Fabien Normand, Simon Vieille
+ +L'ensemble du festival est disponible sur Youtube.
+]]>Le "Festival 100% local et virtuel pour inventer Le 1er jour d'après", + c’est réfléchir ensemble, imaginer et inventer un autre monde ainsi + que recenser ce qui existe déjà, à notre échelle. C’est trouver et + valoriser des solutions collectives, adaptées, à développer et mettre en + place sans attendre.
+ + +J'interviendrai à 19h25 pour parler du numérique 😊
+]]>Aujourd'hui j'ai publié une application destinée à Nextcloud et qui permet de +modifier l'affichage du menu principal pour en faire un panneau qui s'ouvre sur la +gauche de l'interface : Side menu. +Cette application est plutôt adaptée aux instances qui activent beaucoup d'outils 🔨
+ +Pour l'installer, vous pouvez passer par le gestionnaire d'application de Nextcloud +ou vous pouvez l'installer manuellement en suivant les instructions (en anglais) +disponibles dans le dépot du projet 🧪
+ +Une fois installée, la liste des applications du menu supérieur sera masquées et +une bouton va apparaître à gauche du logo. C'est depuis ce bouton que vous pourrez +afficher le menu. Fonctionne sur bureau, tablette et mobile 📱
+ + +]]>La "guerre" contre le coronavirus Covid-19 met le système de santé et les + institutions à l'épreuve et paralyse l'économie. Mais au-delà de la crise sanitaire, + doit-on également craindre une crise informatique ? Réponses et réflexions, + avec des spécialistes.
+ +]]>On a installé un thermomètre et un hygromètre analogiques mais les valeurs ne sont +pas précises à la lecture. Cela a été un bon prétexte pour jouer avec un Raspberry PI +et entreprendre l'installation d'une sonde pour mesurer la température et l'hygrométrie. +On a en profité pour ajouter une caméra infra-rouge. Nous pouvons donc avoir +des alertes quand les seuils sont dépassés et il est possible de quitter l'appartement +tout en gardant un œil sur le dinosaure 🦖
+ +Le Raspberry PI utilisé est le modèle 4 avec 2Go de RAM muni de Raspbian Lite. +La vidéo s'appuie sur la caméra fisheyes à vision nocturne +et le logiciel Motion +combiné au frontend MotionEye. Le +capteur est un AM2302 +et mesure la température et l'hygrométrie.
+ + + +Le Raspberry PI est dédié pour faire les mesures et gérer la caméra. Les mesures sont +envoyées vers une application web développée en PHP avec Symfony pour produire +de jolis graphiques 📈. Des enregistrements +vidéos sont également réalisés lorsqu'un mouvement est détecté. Les captures +sont récupérés périodiquement vers l'application web afin qu'on puisse les consulter +quand on veut 📽
+ +Le résultat est plutôt pas mal cool et on apprécie vraiment l'aide que ça apporte !
+ + +]]>Ils sont attirants, attachants … et rapidement indispensables. Les réseaux sociaux nous appâtent à coup de likes et nous bercent dans leurs "infinite scroll". Et rapidement leurs interfaces nous poussent à la consommation jusqu’à l’overdose. Et ce n’est pas un hasard. Ils ont bâti leurs empires sur notre addiction à la dopamine.
+ +Retrouvez toutes les sources de l'épisode sur : https://wiki.datagueule.tv/Réseaux_:flux_à_lier(EP.95)
+ +]]>