<description><![CDATA[<p>Dans le cadre de mon travail, je vais devoir supprimer les mots de passe définis dans plusieurs dizaines de fichiers Excel.</p>
<p>Un fichier Excel, ainsi que n'importe quel type de fichier généré par la suite Office, est ni plus ni moins qu'une archive Zip contenant des répertoires et des fichiers XML. Les mots de passe ne chiffrent aucune donnée dans le cas d'une protection simple (le comportement par défaut). Par conséquant, et uniquement dans ce cas de figure, le mot de passe est un artifice pour bloquer l'accès à du contenu. Dans le cas d'un chiffrement des données, il n'est pas possible de supprimer le mot de passe comme je vais le faire.
Les données sont stockées au format XML, il est donc très simple de retirer les mots de passe d'un classeur et de ses feuilles.</p>
<p>Afin d'industrialiser les modifications, j'ai écris un script qui fait toutes les modifications automatiquement : <ahref="https://gitnet.fr/deblan/excel-password-terminator">Excel password terminator</a>.</p>
<p>Pour l'installer, il suffit simplement de clôner le projet ou de télécharger une archive de dépots. Les dépendances sont très peu nombreuses : zip, unzip, grep et sed.</p>
<description><![CDATA[<p>Une fois de plus, la France signe pour le totalitarisme. Des articles des lois pour protéger la police de sa population, une surveillance de masse actée, la liberté d'expression abrogée en dehors de tout contexte terroriste.</p>
<p>La France est un état policier qui braque sa législation contre son peuple et le droit Européen.</p>
<description><![CDATA[<p>La loi sécurité globale a été définitivement adoptée hier par l'Assemblée nationale, à 75 voix contre 33, au terme d'un débat soumis aux exigences de la police et dont nous n'attendions plus grand chose.</p>
<description><![CDATA[<p>Les VPN ont le vent en poupe depuis quelques temps. Rares sont les vidéastes qui n'auront pas fait l'éloge de services comme NordVPN. Cependant, avant de permettre de visualiser le contenu US de Netflix, un VPN permet de créer un réseau entre plusieurs machines au travers d'autres réseaux comme Internet. Ainsi, quand des machines sont connectées au même réseau VPN, elles peuvent communiquer de la même façon que dans un réseau local. C'est donc très intéressant lorsque l'ont souhaites isoler une application d'internet en la rendant tout de même accessible dans ce réseau isolé.</p>
@ -31,7 +72,7 @@
<p>Sur d'autres distributions, il faudra installer <code>wireguard-tools</code> mais je vous laisse vous référer à <ahref="https://www.wireguard.com/install/">la page d'installation</a> pour plus d'informations.</p>
<p>En complément de Wireguard, je vous invite à installer <code>iptables</code> et <code>resolvconf</code> sur le serveur et uniquement <code>resolvconf</code> sur vos clients linux. <code>iptables</code> va permettre de realiser le routage des paquets tandis que <code>resolvconf</code> va permettre de gérer les DNS via la connexion VPN.</p>
<p>En complément de Wireguard, je vous invite à installer <code>iptables</code> et <code>resolvconf</code> sur le serveur <supid="fnref:1"><ahref="#fn:1"class="footnote-ref"role="doc-noteref">1</a></sup>et uniquement <code>resolvconf</code> sur vos clients<supid="fnref2:1"><ahref="#fn:1"class="footnote-ref"role="doc-noteref">1</a></sup> linux. <code>iptables</code> va permettre de realiser le routage des paquets tandis que <code>resolvconf</code> va permettre de gérer les DNS via la connexion VPN.</p>
<p>Une fois l'installation terminée, on va générer un couple de clés sur le serveur.</p>
@ -49,8 +90,8 @@ wg genkey | tee privateKey | wg pubkey > publicKey
<pre><codeclass="language-bash">[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
<p>Dans cet exemple, j'ai définie que seuls les paquets à destination du réseau VPN seront routés dans le VPN : <code>AllowedIPs = 10.0.0.0/24</code>. Si vous voulez router tout votre traffic, saisissez <code>AllowedIPs = 0.0.0.0/0</code>. Pour ajouter plusieurs plages, il suffit de les séparer par des virgules.
<p>Dans cet exemple, j'ai définie que seuls les paquets à destination du réseau VPN seront routés dans le VPN : <code>AllowedIPs = 10.0.0.0/24</code>. Si vous voulez router tout votre traffic, saisissez <code>AllowedIPs = 0.0.0.0/0</code><supid="fnref:2"><ahref="#fn:2"class="footnote-ref"role="doc-noteref">2</a></sup>. Pour ajouter plusieurs plages, il suffit de les séparer par des virgules.
Dans le bloc <code>[Interface]</code> des clients, vous avez la possibilté d'ajouter une propriété <code>DNS</code> 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 <code>AllowedIPs</code>. Attention, les DNS seront paramétrés comme des DNS classiques et ils seront sollicités pour résoudre tous les noms.</p>
<p>Une fois les configuration effectuée, vous pourrez démarrer ou arrêter la connexion VPN avec <code>sudo wg-quick up wg0</code> et <code>wg-quick down wg0</code> sur le serveur et sur les clients. Vous pourrez monitorer les connexions avec la commande <code>sudo wg</code>.</p>
<divclass="footnotes"role="doc-endnotes">
<hr/>
<ol>
<liid="fn:1">
<p>Techniquement, chaque pair (ou peer) est à la fois client et serveur. Quand je parle de "serveur", je fais référence à la machine qui va jouer le rôle de routeur pour les différents pairs du VPN. Techniquement, un pair peut s'interconnecter à autant d'autres pairs qui lui est possible de joindre (cf la <ahref="https://www.wireguard.com/quickstart/">doc officielle</a> et la <ahref="https://wiki.archlinux.org/index.php/WireGuard">doc Archlinux</a>). <ahref="#fnref:1"class="footnote-backref"role="doc-backlink">↩︎</a><ahref="#fnref2:1"class="footnote-backref"role="doc-backlink">↩︎</a></p>
</li>
<liid="fn:2">
<p>Que ce soit sur un "serveur" ou un "client", <code>AllowedIPs</code> indique pour quelle(s) plage(s) IP le pair sera emprunté pour router les paquets. Sur le serveur, on souhaite que chaque pair reçoivent exclusement les paquets qui leur sont destinés (IP du pair/32) tandis que sur le client, 2 cas d'usages classiques seront généralement retenus : soit on utilise le serveur pour router que le traffic du réseau VPN (<code>10.0.0.0/24</code>) soit on veut que le serveur serve de proxy et tout le traffic réseau passera par lui (<code>0.0.0.0/0</code>). <ahref="#fnref:2"class="footnote-backref"role="doc-backlink">↩︎</a></p>
<description><![CDATA[<p>Mon blog a été mon premier vrai projet quand j'ai commencé de faire du développement web et il me suit toujours aujourd'hui.</p>
@ -117,7 +173,7 @@ Je travaille sur la refonte du site web de l'association <a href="https://www.ti
<p>Ou comment instrumentaliser à des fins politiques un événement tragique qui n'a aucun rapport pour relancer une loi anticonstitutionnelle : La loi AVIA</p>
@ -464,7 +520,7 @@ imposer son idéologie.</p>
</item>
<item>
<title><![CDATA[Menu personnalisé dans Nextcloud 🎨]]></title>
<description><![CDATA[<p>Il y a quelques semaines, nous avons acheté un terrarium pour le pogona de ma chère
et tendre moitié. C'est un animal qui implique un environnement particulier avec
des températures de jour et de nuit à ne pas dépasser, et une hygrométrie
qui ne doit pas franchir le 50%.</p>
<p>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 🦖</p>
<p>Le Raspberry PI utilisé est le modèle 4 avec 2Go de RAM muni de Raspbian Lite.
La vidéo s'appuie sur la <ahref="https://www.kubii.fr/cameras-accessoires/2333-raspberry-pi-camera-fisheye-grand-angle-5mp-kubii-3272496012561.html">caméra fisheyes à vision nocturne</a>
et le logiciel <ahref="https://motion-project.github.io/motion_config.html">Motion</a>
combiné au frontend <ahref="https://github.com/ccrisan/motioneye/wiki">MotionEye</a>. Le
capteur est un <ahref="https://www.kubii.fr/composants-raspberry-pi/2329-capteur-am2011-humidite-et-temperature-kubii-3272496012493.html">AM2302</a>
<p>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.</p>
<p>Retrouvez toutes les sources de l'épisode sur : <ahref="https://wiki.datagueule.tv/Réseaux_:flux_à_lier(EP.95)">https://wiki.datagueule.tv/Réseaux_:flux_à_lier(EP.95)</a></p>
</blockquote>
]]></description>
<guidisPermaLink="false">579</guid>
<pubDate>Wed, 26 Feb 2020 08:31:00 +0100</pubDate>
# API pour récupérer le contenu Open Graph d'une page web
* 2019-06-26 17:01:25
* Développement
Pour la fonctionnalité de partage de liens sur ce blog, j'ai développé un script qui récupére le contenu d'une page et analyse ses balises `<meta>` pour identifier ses données
=> http://ogp.me/ Open Graph
.
Dans un autre contexte, j'ai rencontré un bug dans
=> https://wallabag.org/ Wallabag
qui l'empêche de récupérer le contenu de plusieurs pages web que je désirait lire plus tard. Avec la volonté de créer un rapport de bug, la documentation m'a amené sur la piste du projet
=> https://github.com/j0k3r/graby Graby
utilisé par Wallabag.
Pour comprendre et peut-être proposer un correctif, j'ai joué avec Graby et ça m'a amené à réaliser une API pour remplacer le script utilisé par le blog, en combinent Graby et
@ -28,7 +28,7 @@ Sur d'autres distributions, il faudra installer `wireguard-tools` mais je vous l
=> https://www.wireguard.com/install/ 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.
En complément de Wireguard, je vous invite à installer `iptables` et `resolvconf` sur le serveur [^1] et uniquement `resolvconf` sur vos clients [^1] 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.
@ -48,8 +48,8 @@ Nous allons ensuite générer le fichier `/etc/wireguard/wg0.conf` où `wg0` dé
[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
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.
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` [^2]. 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`.
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`.
[^1]: Techniquement, chaque pair (ou peer) est à la fois client et serveur. Quand je parle de "serveur", je fais référence à la machine qui va jouer le rôle de routeur pour les différents pairs du VPN. Techniquement, un pair peut s'interconnecter à autant d'autres pairs qui lui est possible de joindre (cf la
[^2]: Que ce soit sur un "serveur" ou un "client", `AllowedIPs` indique pour quelle(s) plage(s) IP le pair sera emprunté pour router les paquets. Sur le serveur, on souhaite que chaque pair reçoivent exclusement les paquets qui leur sont destinés (IP du pair/32) tandis que sur le client, 2 cas d'usages classiques seront généralement retenus : soit on utilise le serveur pour router que le traffic du réseau VPN (`10.0.0.0/24`) soit on veut que le serveur serve de proxy et tout le traffic réseau passera par lui (`0.0.0.0/0`).
La loi sécurité globale a été définitivement adoptée hier par l'Assemblée nationale, à 75 voix contre 33, au terme d'un débat soumis aux exigences de la police et dont nous n'attendions plus grand chose.
# Le Conseil d'État valide durablement la surveillance de masse
* 2021-04-21 04:00:00
* Quick links
Une fois de plus, la France signe pour le totalitarisme. Des articles des lois pour protéger la police de sa population, une surveillance de masse actée, la liberté d'expression abrogée en dehors de tout contexte terroriste.
La France est un état policier qui braque sa législation contre son peuple et le droit Européen.
Dans le cadre de mon travail, je vais devoir supprimer les mots de passe définis dans plusieurs dizaines de fichiers Excel.
Un fichier Excel, ainsi que n'importe quel type de fichier généré par la suite Office, est ni plus ni moins qu'une archive Zip contenant des répertoires et des fichiers XML. Les mots de passe ne chiffrent aucune donnée dans le cas d'une protection simple (le comportement par défaut). Par conséquant, et uniquement dans ce cas de figure, le mot de passe est un artifice pour bloquer l'accès à du contenu. Dans le cas d'un chiffrement des données, il n'est pas possible de supprimer le mot de passe comme je vais le faire. Les données sont stockées au format XML, il est donc très simple de retirer les mots de passe d'un classeur et de ses feuilles.
Afin d'industrialiser les modifications, j'ai écris un script qui fait toutes les modifications automatiquement :
Pour l'installer, il suffit simplement de clôner le projet ou de télécharger une archive de dépots. Les dépendances sont très peu nombreuses : zip, unzip, grep et sed.