My WireGuard Setup

We have a new VPN at work which works with WireGuard. There are a lot of guides on the web like : Wireguard VPN : Typical Setup : The poetry of (in)security Getting Started with WireGuard I’m going to present 2 cases: Home need: I need a VPN access for my phone and laptop in order to access block stuff in some situation. All the traffic goes throught the VPN. It’s the simplest case Work need: I need to access some ip or ip ranges but not all the traffic goes throught the VPN. Home Server Install of WireGuard. I’m on debian 10 create a /etc/apt/sources.list.d/backport.list deb http://deb.debian.org/debian buster-backports main apt update && apt install wireguard reboot. WireGuard consist of a kernel module which need to be loaded by the kernel. And unstable will upgrade you kernel to 4.19. that’s why. On ArchLinux for example you don’t need to reboot. Generate the key pair cd /etc/wireguard umask 077 wg genkey | tee privatekey | wg pubkey > publickey Fill the the file /etc/wireguard/wg0.conf. wg0 is the name of your interface it can be everything like wg10 or even chambery [Interface] Address = 10.10.10.1/24 ListenPort = 51820 PrivateKey = <my private key> PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] PublicKey = <client pub key> AllowedIPs = 10.10.10.2/32 Interface means that you listen here. And a Peer means a distant… Peer at the end of the tunnel. You have to declare every peer in your VPN. Which mean that if you deploy wireguard as a VPN concentrator for you company you will need some automation here ! There are some work going on to add dynamic IP to wireguard. Look at the idea here ...

April 22, 2020 · 5 min · 892 words · Rémi Desgrange

Why I Love Vuejs

Background I’m a backend developer. I went to embedded software dev, that all the industry are now calling “IoT”, because it is much more cooler, to SysAdmin, now called DevOps, to backend developper. I never learned frontend dev, I always use all the possible helper builds to help me not do it. But really don’t like this way of using wrapper blindly and not understand what you do and copy paste StackOverflow stuff into my code. ...

April 11, 2020 · 3 min · 583 words · Rémi Desgrange

4G Et Teletravail

Ça y est, c’est la guerre. Vous êtes confiné chez vous, et votre ADSL commence à faire sacrement la gueule, entre vos gamins qui passent la journée sur Youtube/Netflix/Whatever et vous qui devez pousser cette satanée image docker de 2.8Gio (don’t…). Et puis il se peut aussi que votre ADSL soit tellement moisi que même une recherche sur Google est lente (#BeenThereDoneThat). Mais déjà pourquoi mon ADSL est plus mauvaise que d’hab A cause de la paradiaphonie sur la ligne, vous pouvez remercier vos voisins. Si vous avez la fibre plus de soucis, puisque ce qui circule dans une fibre optique, c’est de la lumière. ...

March 17, 2020 · 4 min · 791 words · Rémi Desgrange

My Dns-Over-HTTP (DoH) Setup

I recently setup a Dns over HTTP server. I use the excellent article from Stéphane Bortzmeyer : Documentation technique de mon résolveur DoH[FR]. The setup use dnsdist in 1.4 version, which support DoH. Here is a docker composition to run the setup : https://github.com/RemiDesgrange/dnsdist-config/ It run for 2 months on one of my machine without any problem. I didn’t put any TLS config on dnsdist, instead a nginx config takes care of it. It’s pretty standard nginx reverse proxy config from ...

January 7, 2020 · 1 min · 176 words · Rémi Desgrange

Decryptage des codes des données poste Nivo

Suite à l’article sur les données neiges en open-data J’ai réussi à mettre la main sur les codes que fournissent les pisteurs lors de relevés sur un poste Nivo. Données disponible en opendata chez Météo France Il y a un code que je n’ai pas réussi à retrouver, si certain savent, qu’ils se manifestent ! par exemple sur twitter Nom Colonnes dans le fichier CSV Valeurs possibles Description Temps Présent ww 0 Aucun des phénomènes suivants à la station au moment de l’observation : brouillard pluie neige orage 44 Brouillard mais ciel visible 45 Brouillard ciel invisible 48 Brouillard déposant du givre mais viel visible 49 Brouillard déposant du givre ciel invisible 16 Chute de pluie en vue, mais pas à la station 60 Pluie faible intermittente 61 Pluie faible continue (sans interruption depuis le début) 63 Pluis modérée 65 Pluie forte 67 Pluie se congelant 69 Pluie et neige mêlées 81 Averse(s) de pluie 16 Chute de neige en vue, mais pas à la station 36 Chasse neige à la station 70 Neige faible intermittente 71 Neige faible continue 73 Neige modérée 75 Neige forte 84 Averse(s) de neige mêlée de pluie 86 Averse(s) de neige 88 Averse(s) de grésil ou de neige roulée 17 Orage entendu mais pas de précipitation à la station 95 Orage avec pluie ou neige à la station 96 Orage avec grésil ou grêle à la station Temps passé w1, w2 0 Aucun phénomène significatif 3 il y a eu de la chasse-neige à la station 4 il y a eu du brouillard 6 il y a eu de la pluie, de la bruine… (eau liquide) 7 il a neige, grêlé Type de nuages à l’étage inférieur cl 0 Pas de nuage bas 2 Cumulus 5 stratocumulus 6 stratus 9 cumulonimbus / station dans le brouillard, ciel invisible Type de nuages à l’étage moyen cm 0 Pas de nuage moyen 1 Altostratus 2 Nimbostratus 3 Altocumulus 4 Altocumulus lenticulaire 7 Altocumulus altostratus / les nuages moyens sont invisibles Type de nuages à l’étage supérieur ch 0 Pas de nuages élevés 2 Cirrus 7 Cirrostratus 9 Cirrocumulus / Les nuages élevés sont invisibles Nuage dans la vallée nuage_val 0 Pas de nuage dans la vallée 1 Nuage isolées inférieur à 1000m 2 Nuage isolées entre 1000 et 1500m 3 Nuage isolées supérieur à 1500m 4 Mer de nuage partielle inférieur à 1000m 5 Mer de nuage partielle entre 1000 et 1500m 6 Mer de nuage partielle supérieur à 1500m 7 Mer de nuage complète inférieur à 1000m 8 Mer de nuage complète entre 1000 et 1500m 9 Mer de nuage complète supérieur à 1500m / Observation impossible (station dans le brouillard) Chasse neige en altitude chasse_neige 0 Pas de chasse neige 1 Il y a de la chasse-neige depuis la dernière observation mais pas actuellement 2 Chasse neige modérée d’Est 3 Chasse neige modérée de Sud 4 Chasse neige modérée d’Ouest 5 chasse neige modérée de Nord 6 Chasse neige forte d’Est 7 Chasse neige forte de Sud 8 Chasse neige forte d’Ouest 9 Chasse neige forte de Nord / Observation impossible (nuage ou brouillard) Description de l’avalanche observée aval_descr Je rien trouvé dans le guide qui correspondent à ce libellé. Genre d’avalanches aval_genre 0 Rien à signaler. Pas d’avalanches, ni de coulées, ni de fissures 1 Aucune avalanches mais fissure(s) dans le manteau neigeux 2 Coulées sèches ou humides 3 Avalanche(s) de neige récente, sèche, départ ponctuel 4 Avalanche(s) de neige récente, humide, départ ponctuel 5 Avalanche(s) de plaque friable (départ linéaire, neige sèche, dépôt plutôt fin) 6 Avalanche(s) de plaque dure de surface (départ linéaire, neige sèche dépôt de blocs) 7 Avalanche(s) de surface de vieille neige humide ou mouillée 8 Avalanche(s) de plaque de fond de neige sèche (départ linéaire) 9 Avalanche(s) de fond de vieille neige humide ou mouillée (départ ponctuel ou linéaire) / Inconnu Altitude de départ de l’avalanche aval_depart 0 Rien à signaler 1 Inférieur à 1500m 2 Entre 1500 et 1750m 3 Entre 1750 et 2000m 4 Départ à plusieurs altitudes mais la plupart inférieur à 2000m 5 Entre 2000 et 2250m 6 Entre 2250 et 2550m 7 Entre 2500 et 3000m 8 Supérieur à 3000m 9 Départ à plusieurs altitudes mais la plupart supérieur à 2000m / Inconnu Exposition de l’avalanche aval_expo 0 Rien à signaler 1 La plupart en versant Nord-Est 2 La plupart en versant Est 3 La plupart en versant Sud-Est 4 La plupart en versant Sud 5 La plupart en versant Sud-Ouest 6 La plupart en versant Ouest 7 La plupart en versant Nord-Ouest 8 La plupart en versant Nord 9 Aucune orientation privilégié / Inconnu Type de grains de surface grain_predom, grain_nombre 1 Neige fraiche 2 Particule reconnaissables 3 Grains fins 4 Faces planes 5 Gobelets 6 Grains ronds 7 Croûtes 8 Givre de surface 9 Neige roulée Homogénéité de la couche homogeneite 0 Il a neigé plus de 5cm depuis la dernière observation. Carottage vertical sur la planche 1 Il n’a pas neigé (ou moins de 5cm) et la couche de 10cm sous la surface est homogène (une seule strate). Carottage horizontal entre la surface de la neige et le niveau -10cm 2 Il n’a pas neigé (ou moins de 5cm) et la couche de 10cm sous la surface est constitué d’une ou plusieurs strates de nature ou de dureté différente. Pas de mesure de masse volumique Phénomène Spécial phenspeN Je n’ai pas trouvé d’indicateur dans le guide Etendue cche nuageuse 1 nnuage1 Je n’ai pas trouvé d’indicateur dans le guide Personnellement je trouve que ces données “bruts” sont difficilement utilisable par le chaland. Je vais essayer de bâtir des visu qui permettent de mieux comprendre les indicateurs. Ce sera mon passe temps de cet hiver 😀. Je trouve regrettable que Météo France diffuse des données sans en révéler la nature des données libérées. ...

November 29, 2019 · 5 min · 1025 words · Rémi Desgrange

My Python Setup

The Python programming language is, I think, a fantastic tool. But there is two fucking thing that really makes me sad: packaging and dependency management. Today, my Linux distribution, Arch, decide that it was OK to migrate python 3.8. And it broke tons of shit on my machine. So I took a moment to re-install and harden stuff so that it doesn’t happen again. Pyenv To Have Multiple Version I use Pyenv with the plugin to handle virtualenv. I use to rely on pew. But pew rely on the system Python. So today I couldn’t use my virtualenv… pew is a great tool but I don’t know why it use a fork of pythonz to handle version management. Latest version that you can install with pew is 3.5. 3.5 was release in 2015 ...

November 18, 2019 · 2 min · 228 words · Rémi Desgrange

Open data et données neiges

Je joue depuis quelques temps avec les données OpenData neige. J’ai un peu galéré, mais j’ai surtout rencontré des gens formidables qui ont pris le temps de m’expliquer tout ce que ne dit pas Météo France. De quoi on parle ? Je vais parler des données neiges disponible en open data, ou presque, pour les données non open data, au sens non réutilisable sans conditions, je spécifierais bien les conditions d’accès. ...

November 2, 2019 · 8 min · 1532 words · Rémi Desgrange

Why You Should Use Timestamptz

I see a lot project using timestamp data type in there databases. I tend to think that this is a bad idea. Dev Is Not Prod Your local setup may have a timezone which reflect your physical location. This may not be the case of your server(s), which could have a specific timezone, or, UTC time. Which is better by the way (more on than later). So you will experience bug and issues if you do not pay attention to it. ...

July 10, 2019 · 2 min · 332 words · Rémi Desgrange

Idea For A Multitenant PostgreSQL

I recently migrate a PostgreSQL DB from an ubuntu server VM to Azure PostgreSQL. If you use this DBaaS before, you may have noticed you need to add @<my_instance_name> after your login. For exemple if you create a test_azure_db, your url for this PostgreSQL instance is test_azure_db.postgres.database.azure.com. And imagine the name of your user is remi, to login you need to do psql -h test_azure_db.postgres.database.azure.com -U remi@test_azure. I don’t know what sort of magic Azure is doing, but it gave me an idea. You are a software editor company. Every company now have a SaaS product. But then you have this client, that have special needs, so you create a db for him. And then, Sales sell access to the db (or a replica) “for BI purpose” they say. But, hey, in PostgreSQL there are no way to limit the db a user can see. Plus this client want to be superuser, you know, reasons. ...

June 7, 2019 · 5 min · 1049 words · Rémi Desgrange

Reducing Python Docker Images Size

I’m using docker a lot to build and deploy the software that I (try to) write. I’m also writing a lot of Python. And one of the things that really annoy me is the size of docker images. Especially python. I often laugh about the size of a hello world in Go. But in Go you can deploy your application in docker with no extra cost. So, compiling this hello world in go : ...

April 19, 2019 · 6 min · 1108 words · Rémi Desgrange