Rechercher un article

Un an d'utilisation de AdGuard comme DNS

Au moment où j'ai commencé à utilisé Wireguard, je me suis aperçu que le principal usage que j'en ferais serait le DNS.

Sur l'ensemble de mes périphériques (ordinateurs, smartphones, serveurs), j'apporte une grande attention à la protection de ma vie privée. Mon informatique n'est pas parfaite mais j'essaye de faire de mon mieux en ajustant la sécurité des services, la protection des données et le confort des outils.
À ce titre, j'utilisais Blockada sur mon smartphone. Cette application permet (principalement) de modifier les DNS utilisés sur votre smartphone. Si on choisi un DNS qui opère du filtrage, alors on peut réduire l'affichage des publicités ou bloquer l'accès à des services malveillants. Mais je devais nécessairement passer par un DNS public que je ne peux pas configurer.

Lors de la configuration d'un accès via Wireguard, on peut spécifier un DNS à attribuer au périphérique. J'ai donc mis en place un DNS redondant dans mon réseau privé, accessible aussi via mon réseau VPN Wireguard. J'ai choisi d'utiliser l'application AdGuard et j'ai ajouté quelques listes pour réaliser du filtrage. Tout mon réseau privé et mes périphériques connectés au VPN bénéficient de ces DNS privés. Que je sois chez moi ou en itinérance, mes filtres DNS sont appliqués et mon traffic mobile passe systématiquement dans mon VPN.

En complément de ce DNS, j'utilise l'extension uBlock Origin et je dois dire que la combo est vraiment efficace. C'est extrèment rare de voir de la publicité et ma navigation est selon moi plus sécurisée. Si toutefois uBlock ne bloque pas une requête, alors le DNS prend le relais et fait le reste du ménage.

Sur les 30 dernières jours, le DNS principal a réalisé 1,3 millions de résolutions et en a bloqué près de 43 milles. En moyenne, 3 à 5% des requêtes DNS sont filtrées, ce qui représente environ 500 domaines qui délivrent majoritairement de la publicité et de la télémétrie.

Adguard


Expiration de certificats SSL

Fin avril dernier, j'ai publié un projet qui génère un récapitulatif de la date d'expiration d'un ou plusieurs nom de domaines.

Je publie aujourd'hui une mise à jour qui intègre un outil pour avoir un récapitulatif des dates d'expirations des certificats SSL. C'est sur le même principe que pour les noms de domaines avec une uniformisation des affichages.

Pour l'installation, rien ne change si ce n'est une dépendance à openssl :

$ git clone --recurse-submodules https://gitnet.fr/deblan/domain-expiration.git
$ cd domain-expiration
$ composer install

Les commandes varient un petit peu mais rien de bien méchant. Pour tester les noms de domaines :

./check domains google.com amazon.com facebook.com apple.com microsoft.com
+---------------+------+---------------------+
| Domain        | Days | Date                |
+---------------+------+---------------------+
| apple.com     | 438  | 2021-02-20 05:00:00 |
| microsoft.com | 510  | 2021-05-03 04:00:00 |
| amazon.com    | 1787 | 2024-10-31 04:00:00 |
| facebook.com  | 3033 | 2028-03-30 04:00:00 |
| google.com    | 3201 | 2028-09-14 04:00:00 |
+---------------+------+---------------------+

Pour tester les certificats :

./check https-certificates google.com amazon.com facebook.com apple.com microsoft.com 
+---------------+------+---------------------+
| Domain        | Days | Date                |
+---------------+------+---------------------+
| google.com    | 49   | 2020-01-27 13:25:53 |
| facebook.com  | 56   | 2020-02-03 13:25:52 |
| amazon.com    | 112  | 2020-03-31 13:25:52 |
| apple.com     | 222  | 2020-07-19 13:25:52 |
| microsoft.com | 543  | 2021-06-05 13:25:50 |
+---------------+------+---------------------+

Des options peuvent être ajoutées pour modifier le retour en simplifiant le tableau, pour générer du JSON et pour ralentir le programme entre chaque test (très pratique pour récupérer les whois sans être bloqué).

C'est toujours libre et le code est disponible sur Gitnet.


Vérifier la date d'expiration de noms de domaine

Que ce soit à titre personnel ou dans le cadre de mon travail, je dois gérer une liste relativement importante de noms de domaine et m'assurer qu'ils sont renouvelés à temps.

Les prestataires vers qui sont achetés les noms sont divers et il n'y a pas d'homogénéité des alertes qui notifient d'une expiration prochaine.

Par conséquent, j'ai écris un projet qui a pour seul et unique objectif de me donner la date d'expiration d'un ou plusieurs noms de domaine. Cette date prendra une couleur selon de l'échéance : rouge si on est dans les 2 dernières semaines, jaune si c'est dans les 30 prochains jours ou ou vert si c'est au délà.

$ domain-expiration check google.com amazon.com facebook.com apple.com microsoft.com
+---------------+---------------------+
| Domain        | Date                |
+---------------+---------------------+
| google.com    | 2020-09-14 04:00:00 |
| apple.com     | 2021-02-20 05:00:00 |
| microsoft.com | 2021-03-05 04:00:00 |
| amazon.com    | 2022-10-31 04:00:00 |
| facebook.com  | 2028-03-30 04:00:00 |
+---------------+---------------------+

Grâce à ansi2html, on peut réaliser une conversion du rendu en HTML afin générer un mail coloré.

$ domain-expiration --ansi check [...] | ansi2html | mail \
  -a "Content-type: text/html" \
  -s "Dates d'expirations des domaines" \
  admin@example.com

Le projet est écrit avec PHP 7.3. Les dépendances sont traitées avec composer et il faut le programme whois.

$ git clone https://gitnet.fr/deblan/domain-expiration.git
$ cd domain-expiration
$ composer install
$ php7.3 ./domain-expiration check mon-site.fr

Le code n'est pas parfait mais ça fonctionne 😊


[TIP] Générateur SPF

SPF est une des solutions techniques qui permet d'identifier un serveur comme légitime pour envoyer un email avec un nom de domaine précis. On s'appuie sur les DNS pour effectuer cette configuration. Pour plus d'informations, je vous invite à consulter l'article SPF sur Wikipedia.

La syntaxe n'est pas très compliquée mais il a quelques subtilités qui nécessitent de regarder de la doc avant de valider les modifications. Par conséquent, j'ai écrit un script shell qui permet de générer facilement une entrée SPF.

Voici quelques exemples d'utilisation :

$ spfgenerator -d '*' -mx -ip 109.190.159.83 -ip 5.135.190.125 -p fail
*	IN	TXT	"v=spf1 mx ip4:109.190.159.83 ip4:5.135.190.125 -all"
$ spfgenerator -a "" -mx -ip 1.2.3.4 -ip fe80::7e7a:91ff:fe27:d29c/64 -i example.com -s
v=spf1 mx a ip4:1.2.3.4 ip6:fe80::7e7a:91ff:fe27:d29c/64 include:example.com ?all

Et le code source : https://gitnet.fr/deblan/spfgenerator.deb/src/master/usr/bin/spfgenerator.

Enjoy :)


DNSLookup, nouveau service deblan !

Quand vous travaillez dans le web et que vous gérez des noms de domaines, vous vous posez toujours la même question pendant une propagation DNS : où est-ce que ça en est ?

Sur le principe de What's My DNS?, je vous propose un service qui permet de connaître l'enregistrement DNS de votre nom sur quelques serveurs majeurs Français.

DNSLookup est un programme (et un service en ligne) sous licence BSD. Vous pourrez le modifier et l'installer sur votre serveur si vous en avez envie.

Essayez tout de suite DNSLookup :)

DNSLookup


Update: cerise sur le gâteau, DNSLookup supporte à présent les requêtes Whois !