5529 links
  • GuiGui's Show

  • Home
  • Login
  • RSS Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
◄Older
page 31 / 277
Newer►
  • #960023 - SSHFP stops working with libc6 2.31 [AD bit stripped] - Debian Bug report logs

    Avant de se reposer sur la validation DNSSEC, il faut avoir confiance envers les serveurs DNS récursifs (resolver) que l'on utilise et sur la sécurité du chemin réseau qui nous sépare de lui.

    C'est pour ça que, par défaut, le stub-resolver DNS de la libc ne demande pas la validation DNSSEC et retire le bit qui indique qu'une réponse est validée. Pour marquer notre confiance envers les récursifs que l'on utilise (et surtout celle envers le chemin qui nous sépare d'eux), il faut ajouter options trust-ad dans /etc/resolv.conf.

    L'utilisation des enregistrements DNS de type SSHFP par le client SSH repose dessus. Sans la validation, il affiche (avec « -v ») : « found 1 insecure fingerprints in DNS ».

    Vache, ça fait des années que le comportement du stub-resolver a changé et que je ne m'en étais pas rendu compte. :O

    Sat Jul 8 00:37:54 2023 - permalink -
    - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=960023
  • Déverrouiller un système distant et chiffré lors de son démarrage

    Le système de mon serveur personnel (pas celui qui héberge ce site web) est totalement chiffré (/boot est une partition indépendante même si GRUB permet de s'en passer). Au démarrage, je saisis la phrase de passe depuis le VNC proposé par l'hébergeur.

    Très récemment, j'ai changé d'hébergeur. Avant mon déménagement, son VNC a été dysfonctionnel pendant quasiment une semaine. Ça a été le déclic : comment faire si je dois redémarrer mon serveur pendant une panne ou une maintenance du VNC de mon hébergeur ? Autant une panne du VNC de mon ancien hébergeur me semblait improbable ou très limitée dans le temps au nom du « too big to fail », autant une panne longue de mon nouvel hébergeur me paraît crédible. Donc il m'appartient de concevoir un plan B. (On pourra aussi argumenter qu'une connexion SSH directe sera toujours plus sécurisée que le VNC over HTTPS de l'hébergeur par la simple disparition de l'intermédiaire.)

    Il est possible de demander à l'initrd de se connecter au réseau, de proposer un accès SSH (avec l'implémentation minimaliste dropbear) et un terminal (implémentation minimaliste busybox) qui permettent d'ouvrir le conteneur LUKS. J'avais lu ça chez Aeris il y a quelques années, mais on va adapter un peu.

    • Installer un serveur SSH minimaliste uniquement dans l'initramfs : apt install dropbear-initramfs ;

    • Ajouter sa clé publique SSH dans /etc/dropbear-initramfs/authorized_keys. L'auth par mot de passe est impossible (cela garantit la sécurité du serveur contre la force brute en cas de redémarrage inattendu suite à un plantage ou à une maintenance côté hébergeur) ;

    • Créer un fichier /etc/initramfs-tools/conf.d/ip. Format : « IP=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>:<ntp0-ip> » (via) ;

      • Exemple : (je ne configure ni serveur NFS ni nom d'hôte, ni DNS, ni NTP) : IP=192.0.2.42::192.0.2.1:255.255.255.0::eth0:off ;

      • ATTENTION : contrairement à ce que dit la doc', « IP= » est en majuscule et sensible à la casse (au moins sur Debian GNU/Linux Bullseye) ;

      • IPv6 statique n'est pas disponible sans ajouter des scripts persos. Vu la criticité de l'initrd, ça ne me tente pas. Des messages ICMPv6 « Router Solicitation » sont émis par l'initrd, ce qui laisse à penser qu'IPv6 dynamique est disponible. Mais, chez tout hébergeur sérieux, le niveau 2 (ARP, NDP, DHCP, STP, etc.) est filtré ou rendu caduque, donc ça n'a pas d'intérêt.
    • Reconstruire les initrd : update-initramfs -uk all ;

    • On fabrique un enregistrement DNS de type SSHFP ou une entrée pour le fichier known_hosts (cela permettra d'authentifier la machine, d'être sûr qu'on causera au bon serveur SSH qui aura booté sur l'initrd). Dans les deux cas, ça nécessite de convertir la clé privée du serveur depuis le format dropbear vers une clé publique au format openssh (attention : depuis OpenSSH 8.7, il ne peut y avoir qu'un seul enregistrement SSHFP par nom, donc une seule paire de clés pour l'initrd et le système…) :

      • known_hosts : ssh-keygen -y -f /dev/stdin <<< $(dropbearconvert dropbear openssh /etc/dropbear-initramfs/dropbear_rsa_host_key -). Ajouter la sortie au fichier known_hosts de la machine qui accédera au serveur ;

      • Enregistrement SSHFP : ssh-keygen -r <FQDN> -f /dev/stdin <<<$(ssh-keygen -y -f /dev/stdin 2>/dev/null <<<$(dropbearconvert dropbear openssh /etc/dropbear-initramfs/dropbear_rsa_host_key -)).
    • reboot le serveur ;

    • dropbear n'implémente pas toute la crypto moderne, donc, si comme moi tu blindes ta conf' client SSH, il faudra réduire tes prétentions. Cela peut se faire avec une entrée dédiée dans .ssh/config ;

    • ssh root@<serveur> doit fonctionner ;

    • Comme nous le dit le prompt, il suffit d'utiliser la commande cryptroot-unlock. Après la saisie de la phrase de passe, le système démarrera :

      ~ # cryptroot-unlock
      Please unlock disk sda2_crypt: 
      cryptsetup: sda2_crypt set up successfully
      ~ # Connection to 192.0.2.42 closed by remote host.
      Connection to 192.0.2.42 closed.
    Fri Jul 7 23:35:22 2023 - permalink -
    - http://shaarli.guiguishow.info/?cgjIQw
  • Dix ans de DNSSEC

    Cela fait plus de 10 ans que j'utilise DNSSEC sur mes noms de domaine personnels. \o/

    À l'époque, info. était signé mais la soumission de délégations signées n'était pas ouverte (ou pas disponible chez mon bureau d'enregistrement ‒ Gandi ‒), donc j'utilisais le registre DLV de l'ISC, et BIND ne gérait pas entièrement les clés DNSSEC ni leur renouvellement automatique (source). :D

    Je gère moi-même l'hébergement de mes zones DNS (avec BIND9 et NSD) et DNSSEC (avec OpenDNSSEC).

    Au global, de nos jours, c'est une affaire qui tourne sans douleur. Ça n'a pas toujours été le cas :

    • En 2013, sur Debian Squeeze, OpenDNSSEC n'était pas fonctionnel sur Raspberry Pi (voir) ni sur OLinuXino (voir). Point commun : architecture ARM ;

    • En 2013, OpenDNSSEC avait un bug lors du roulement de la KSK (voir) ;

    • Je me souviens surtout des mises à jour très pénibles, y compris pour un changement mineur de version (voir). Parfois, comme en 2017 / Debian Stretch, la responsabilité incombait à un paquet Debian mal conçu (voir) ;

    • Depuis Debian Buster / 2020, j'ai une race-condition qui se déclenche très rarement et sans impact (voir).
    Fri Jul 7 19:36:58 2023 - permalink -
    - http://shaarli.guiguishow.info/?w4pvpw
  • [ Lister les prochains renouvellements de clés planifiés par OpenDNSSEC + forcer un renouvellement ] Rollover with OpenDNSSEC

    Visualiser / lister les prochains roulements (renouvellements) de clés DNSSEC planifiés par OpenDNSSEC : ods-enforcer rollover list.

    Forcer le renouvellement / roulement / rollover des clés (en cas de compromission, par ex.) : ods-enforcer key rollover --zone <nom_zone>. On peut limiter à un type de clé (KSK ou ZSK) en ajoutant --keytype <KSK|ZSK>.

    Fri Jul 7 18:47:31 2023 - permalink -
    - https://nsrc.org/activities/agendas/en/dnssec-3-days/dns/materials/labs/en/opendnssec-lab2-rollover.html
  • La carte aux trésors - Replay et vidéos en streaming - France tv

    Depuis le 5 juillet dernier, des épisodes inédits du jeu télévisé La Carte aux trésors sont diffusés les mercredis soirs. \o/

    La disponibilité d'une semaine du replay est abusée, mais, comme d'hab, torrent est notre ami. :)

    (ÉDIT DU 12/07/2023 : aujourd'hui, la dispo court jusqu'au 04/08/2023. FIN DE L'ÉDIT.)

    Pour regarder en direct : yt-dlp -o - 'https://www.france.tv/france-3/direct.html' | vlc -.

    Fri Jul 7 18:41:09 2023 - permalink -
    - https://www.france.tv/france-3/la-carte-aux-tresors/
  • Politique de conservation des journaux (logs) basée sur le temps avec journald ?

    systemd-journald est conçu pour archiver puis supprimer les vieux journaux (logs) selon une politique d'occupation de l'espace de stockage. Détails ici.

    Parfois, on a besoin de conserver un journal un certain temps, ni plus, ni moins. Exemple ? L'obligation de conservation des données de connexion qui, en France, pèse sur les opérateurs de communications et les hébergeurs. Elles doivent être conservées 1 an. En dessous, l'opérateur / l'hébergeur ne remplit pas son obligation. Au-delà, le traitement est illégal au regard du RGPD car dénué de base légale (l'obligation légale court pour 1 an, pas plus).

    Exemple moins pertinent : avec un volumineux système de stockage, on se retrouve avec 4 Go de journaux qui peuvent donc remonter loin et être pénibles à exploiter. Mais dans ce cas, on préférera affiner la valeur des paramètres de journald.

    Pour une politique temporelle de conservation, journald propose le paramètre MaxRetentionSec. Source. Délai après lequel un journal contenant des entrées plus vieilles que ce délai sera supprimé. Par défaut, sa valeur est 0 afin de mettre en œuvre uniquement une politique de conservation basée sur l'occupation disque.

    Il faut également configurer MaxFileSec. Un journal ne peut pas stocker des entrées au-delà de cette durée (1 mois par défaut). Un nouveau journal sera créé (et, l'ancien, archivé, donc supprimable). Il faut la positionner à « 1day ». Ainsi, lors de la suppression d'un journal archivé, après 1 an, seules les entrées d'il y a 366 jours seront supprimées. De même, seules les entrées du jour seront dans le journal courant, le reste sera archivé. Sans ce paramètre, soit journald supprimera le 12e mois (improbable), soit il conservera 1 an et 1 mois. Dans les deux cas, ça ne répond pas au besoin.

    (Cette réflexion est basée sur le fait, qu'à priori, journald efface un journal en entier, pas les entrées d'un journal qui ont dépassé la date de péremption. Sa doc' consigne, pour le paramètre MaxFileSec : « However, to ensure that not too much data is lost at once when old journal files are deleted, it might make sense to change this value from the default of one month. ». Et le manuel de journalctl, pour l'action rotate, consigne : « Journal file rotation has the effect that all currently active journal files are marked as archived and renamed, so that they are never written to in future ».)

    Conséquence logique : il faudra également modifier la valeur de SystemMaxFiles, car il y aura jusqu'à 1 an de journaux archivés chaque jour. Et il faudra désactiver la politique de conservation fondée sur l'occupation de l'espace de stockage (cf) sinon journald pourra supprimer des journaux récents si l'espace de stockage vient à manquer.

    On peut aussi désactiver totalement ou partiellement journald (Storage). Il continuera à transmettre les journaux à rsyslog (par défaut sous Debian), et on pourra les traiter à l'ancienne avec logrotate.

    Mon Jul 3 17:32:00 2023 - permalink -
    - http://shaarli.guiguishow.info/?EhB5iA
  • Un regard sur systemd-journald

    systemd-journald est conçu pour archiver puis supprimer les vieux journaux (logs) selon une politique d'occupation de l'espace de stockage. Pour une politique basée sur le temps, lire ici.

    Par défaut, il prend le minimum entre 10 % de la taille du système de fichiers (SystemMaxUse) et 85 % (SystemKeepFree), dans la limite de 4 Go soit min( min(10 % ; 4 Go) ; min(85 % ; 4 Go) ). 85 % car SystemKeepFree calcule ce qui doit rester libre, alors que SystemMaxUse calcule la taille maximale du journal. Les deux ne sont pas comparables directement, donc on harmonise : si 15 % doivent rester libre, 85 % peuvent être occupés et se comparent aux 10 % de SystemMaxUse.

    Si la valeur de SystemKeepFree est dépassée dès le démarrage de journald, alors le plafond sera l'espace restant.

    Évidemment, si tu sépares / et /var dans des systèmes de fichiers différents, journald prend en compte la taille de /var.

    SystemMaxFileSize définit la taille maximale d'un fichier journal. Par défaut, 1/8e de SystemMaxUse. SystemMaxFiles définit le nombre parallèle de journaux. 100 par défaut.



    L'occupation du stockage se mesure avec :

    • journalctl --disk-usage

    et/ou

    • du -hs /var/log/journal

    et/ou, en version prise de tête inutile :

    • journalctl -u systemd-journald -o json | jq 'select(.JOURNAL_PATH | test("/var/log/journal"))' 2>/dev/null | jq -s '.[-1].CURRENT_USE_PRETTY'.



    Sur tous mes systèmes Debian GNU/Linux 11 (bullseye), SystemKeepFree est calculé automatiquement pour 5 % du système de fichiers, pas 15 % comme le dit la doc'.

    On peut voir ça avec :

    • journalctl -u systemd-journald -x

    et/ou

    • journalctl -u systemd-journald -o json | jq 'select(.JOURNAL_PATH | test("/var/log/journal"))' 2>/dev/null | jq -s '.[-1] | .MAX_USE_PRETTY,.DISK_KEEP_FREE_PRETTY'.

    Le manuel (man) livré par Debian dit 15 %. La configuration n'est pas surchargée dans aucun des chemins donnés par la doc' de journald (on peut également vérifier avec systemd-analyze cat-config systemd/journald.conf | grep -e 'SystemMaxUse' -e 'SystemKeepFree'). Donc, a priori, Debian change ça à la compilation. 5 %, ce n'est pas déconnant, ça correspond à l'espace réservé pour root sur un système de fichiers ext, mais ça serait mieux de l'annoncer.



    Sur l'un de mes systèmes Debian GNU/Linux, une station de travail, journald dépasse la limite qu'il cale sur SystemMaxUse. Toutes les commandes permettant de mesurer l'occupation disque le montrent, y compris du.

    Dès son démarrage, il consigne que le journal dépasse la limite, mais ne prend aucune action correctrice.

    Lors du démarrage, il restait, et il reste 40 % de libre sur le système de fichiers /var, donc on n'est pas dans l'hypothèse d'un dépassement de SystemKeepFree (et, toute façon, la limite a été calée sur SystemMaxUse).

    J'ai 8 fichiers journaux dont 7 archives, donc il ne s'agit pas d'un unique journal courant volumineux impossible à supprimer (seuls les archives peuvent l'être). Sa taille, comme celle des journaux archivés est inférieure à SystemMaxFileSize.

    Après un journalctl --rotate, qui demande d'archiver les journaux courants, je repasse sous la limite. Donc, a priori, journald s'impose la limite au moment de l'archivage, donc la limite est SystemMaxUse + SystemMaxFileSize (source), soit, par défaut, SystemMaxUse + (1/8)*SystemMaxUse.

    Je constate également qu'il y a deux journaux dans /var/log/journal : system et user-1000. Et, d'après mes observations sur mon système, chaque fragment (archive + courant) peut grossir jusqu'à 1/8e de SystemMaxFileSize, donc, forcément, ça peut dépasser SystemMaxUse



    Merci Johndescs du coup de main pour démêler tout ça.

    Mon Jul 3 16:10:26 2023 - permalink -
    - http://shaarli.guiguishow.info/?9dWrxA
  • Firefox is ready to protect against potentially dangerous downloads | TechRadar

    Firefox me gonfle à bloquer des téléchargements avec le motif « Fichier non téléchargé : risque de sécurité potentiel ».

    about:config, dom.block_download_insecure => false.

    C'est censé gueuler lors d'un téléchargement en HTTP (sans TLS), mais ça semble aussi dépendre de la source : un .deb depuis les serveurs de Debian, ça couine ; le même .deb depuis mon serveur perso, toujours en HTTP, ça passe.

    Ça ne fait que le énième paramètre Firefox à changer…

    Fri Jun 30 17:15:32 2023 - permalink -
    - https://www.techradar.com/news/firefox-is-ready-to-protect-against-potentially-dangerous-downloads
  • Article R343-3 - Code des relations entre le public et l'administration - Légifrance

    Une administration a un mois pour informer la CADA de la suite qu'elle va donner à une demande d'avis dans le cadre d'une communication de documents.

    Dans son rapport d'activité 2021, la CADA consigne que le taux de réponse des administrations s'élève à 61,5 %, constant sur les 5 dernières années. Parmi ces réponses, 69,6 % des administrations ont fait part de leur intention de suivre au moins partiellement l'avis de la CADA, en baisse constante depuis 5 ans.

    On notera que ce même article prévoit que la CADA rende son avis sous un mois. Ça n'a jamais été le cas pour moi. Le même rapport d'activité consigne un délai moyen annuel de traitement d'une demande d'avis de 82 jours en 2021.

    Thu Jun 29 18:01:28 2023 - permalink -
    - https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000031370511
  • Adresser une demande de communication de docs à la CADA, c'est possible

    Il est possible de demander la communication d'un certain nombre de documents détenus par une administration française. Si cette dernière s'y oppose (explicitement ou implicitement après un mois sans réponse), il est possible de saisir, dans les deux mois, une autorité administrative indépendante, la CADA, d'une demande d'avis (qui est un pré-requis pour contester le refus de l'administration au contentieux). Lire toutes les notes concernant cette procédure.

    La CADA contacte alors l'administration visée afin qu'elle produise des observations (pourquoi a-t-elle refusé ?). Ces observations destinées à la CADA sont des documents administratifs… communicables (sous réserve des habituelles réserves ‒ vie privée, secrets des affaires, fiscal, défense, etc. ‒). Pré-requis : la CADA doit avoir rendu son avis (sinon, documents relatifs à une décision en cours d'élaboration, donc pas communicables). C'est le journaliste Marc Rees qui me l'avait appris (je ne trouve plus le tweet ou l'article NextInpact original, mais il y a ce tweet plus récent).

    Il y a deux parties qui échangent (CADA et administration). À qui demander ? Est-il seulement possible d'adresser une demande de communication de docs à la CADA ? Oui ! Il est même possible de saisir la CADA contre un refus de communication de la CADA. :D Pour m'en assurer, j'ai cherché (et trouvé) des avis dans la base des avis de la CADA.

    La CADA a répondu à ma demande de communication en me transmettant les observations produites par l'administration.

    À titre d'inspiration, voici ma demande adressée à la CADA par email :

    Sujet : Demande de communication de documents détenus par la CADA

    Bonjour,

    Je demande à la CADA de me communiquer une copie des documents suivants :

    • Tous les échanges (email, courrier, etc.), toute la correspondance bidirectionnelle, entre la CADA et <CENSURE> intervenus dans le cadre de ma demande d'avis numéro <CENSURE> adressée à la CADA le <CENSURE> via son formulaire de saisine en ligne (avis rendu le <CENSURE> qui m'a été transmis le <CENSURE>). Pour les éventuels courriers postaux envoyés par la CADA, vous y joindrez toute preuve de dépôt La Poste (affranchissement, suivi LRAR, tampon La Poste, etc.) ;

    L'existence de ces échanges est attestée dans le corps de l'avis rendu par la CADA, cf. PJ 1 (« en réponse à la demande qui lui a été adressée », « ce que fait valoir le président de <CENSURE> », « le président de <CENSURE> […] lui a indiqué », etc.).

    Conformément à l’article L311-9, 3° du CRPA, je vous demande de m’adresser ces documents par courrier électronique à l’adresse <CENSURE>.

    Cordialement.

    Thu Jun 29 17:10:45 2023 - permalink -
    - http://shaarli.guiguishow.info/?saasZg
  • Up : Rotation / rollover des clés DKIM : opendkim-genkey et sélecteurs - GuiGui's Show

    Ce tuto reste d'actualité.

    Je n'avais pas renouvelé mes clés DKIM depuis 2016. C'est fait. Ça prend moins de 15 minutes par serveur, et encore, en traînant.

    Malgré un rejet dû à cela en 2020, je suis resté sur une taille de clé RSA de 3072 bits. La norme (RFC 8301 qui met à jour le RFC 6376) dit que les expéditeurs devraient utiliser une clé RSA d'au moins 2048 bits et que les destinataires doivent savoir valider une taille de clé RSA comprise entre 1024 bits et 4096 bits. Pas d'avancées cryptographiques et pas d'actualisation du référentiel de l'ANSSI, donc je ne vois pas l'intérêt de passer à la taille supérieure.

    ÉDIT DU 30/12/2023 : consécutivement à une pièce jointe trop lourde, le serveur emails d'une administration m'a renvoyé mon email. Les entêtes ajoutés par lui montraient une erreur de validation de ma signature DKIM au motif d'une clé trop grosse (sans que ça soit l'origine de mon problème). J'ai décidé de passer à une clé RSA de 2048 bits. DKIM ne sert déjà à rien, ni dans la lutte contre le spam, ni pour l'acceptation d'un petit serveur par les géants de l'email, je ne vais pas en plus me mettre des bâtons dans les roues. Dommage. FIN DE L'ÉDIT DU 30/12/2023.

    Sat Jun 24 15:15:53 2023 - permalink -
    - http://shaarli.guiguishow.info/?D0LR4Q
  • Outils de diagnostic DoT / DoH

    Liste non exhaustive triée par préférence.

    kdig

    Ma préférence va à kdig, le dig de l'implémentation DNS Knot, car il donne des informations techniques sur la négociation TLS et le dialogue HTTP (status, etc.). Paquet knot-dnsutils dans Debian GNU/Linux.

    DoT avec vérification du certificat x509 : kdig @ns1.fdn.fr +tls +tls-ca=/etc/ssl/certs/ca-certificates.crt AAAA shaarli.guiguishow.info.

    DoH avec vérif' du cert' x509 : kdig @ns1.fdn.fr +https +tls-ca=/etc/ssl/certs/ca-certificates.crt AAAA shaarli.guiguishow.info.


    dig

    À partir de sa version empaquetée dans la version 12 (bookworm) de Debian GNU/Linux (paquet bind9-dnsutils), dig, l'outil de l'implémentation DNS BIND prend en charge DoT et DoH, mais il file aucune info sur la session TLS et les messages HTTP.

    DoT avec vérif du cert' x509 : dig @ns1.fdn.fr +tls +tls-ca=/etc/ssl/certs/ca-certificates.crt AAAA shaarli.guiguishow.info.

    DoH avec vérif : dig @ns1.fdn.fr +https +tls-ca=/etc/ssl/certs/ca-certificates.crt AAAA shaarli.guiguishow.info.


    homer / remoh

    Développé en python par Bortz. Dépôt git. Tutoriel. Il n'est plus maintenu (source : échange privé avec Bortz).

    La sortie est brute de décoffrage. Outil plus pour s'amuser qu'autre chose et qui ne file aucune info sur la session TLS et les messages HTTPS. Vérif' du cert' x509 effectuée de base.

    DoT avec vérif' : ./remoh.py -t ns1.fdn.fr shaarli.guiguishow.info AAAA.

    DoH avec vérif' : ./remoh.py https://ns1.fdn.fr/dns-query shaarli.guiguishow.info AAAA.

    Je note les options --check et --mandatory-level qui testent la conformité d'un serveur DoT / DoH avec les RFC, les bonnes pratiques, etc.


    dog

    Dépôt git.

    La sortie est minimaliste : pas d'info, ni sur TLS, ni sur HTTPS ni sur le DNS lui-même. Codé en Rust, donc cargo télécharge la moitié de l'Internet (317 Mo pour un binaire de 14 Mo). En revanche, a priori, la vérification du cert' x509 est effectuée de base, sans option supplémentaire, en se reposant sur OpenSSL.

    DoT avec vérif' : ./dog -S @ns1.fdn.fr shaarli.guiguishow.info AAAA

    DoH avec vérif' : /dog -H @https://ns1.fdn.fr/dns-query shaarli.guiguishow.info AAAA


    openssl / gnutls

    Évidemment, toute la partie TLS peut être testée avec openssl et gnutls.

    openssl s_client -connect ns1.fdn.fr:853

    gnutls-cli ns1.fdn.fr:853.

    Fri Jun 23 23:10:24 2023 - permalink -
    - http://shaarli.guiguishow.info/?AfT46Q
  • Configurer DoT ou DoH au niveau du système (system-wide)

    DoT = DNS over TLS (lire).
    DoH = DNS over HTTPS (lire).
    Explication en vidéo 1. Explication vidéo 2.

    Dans les deux cas, on chiffre et on authentifie le trafic DNS entre une machine (stub resolver) / un serveur récursif local (genre Pi-hole) et un serveur récursif sur Internet.

    Le but ? Si l'on utilise un serveur DNS récursif (resolver) différent de celui de son FAI afin d'échapper à différents types de filtrage (judiciaire, administratif, technique, etc.), le FAI peut voir et censurer ce trafic DNS. Donc on le chiffre et on l'authentifie (je ne parle pas d'authentifier la donnée, ça c'est le boulot de DNSSEC). (Évidemment, le FAI pourra bloquer l'adresse IP d'un récursif DoT / DoH ou en fonction du SNI… et on passera alors à Encrypted SNI, etc., etc.)

    Un stub resolver (la libc de GNU/Linux, par exemple) ne sait pas utiliser DoT / DoH.

    Certains logiciels savent les utiliser (Firefox, par ex.), mais alors seuls eux en bénéficient, le trafic DNS des autres logiciels reste en clair.

    Comment utiliser DoT ou DoH pour tous les logiciels d'une machine ? En demandant au stub resolver (la libc de GNU/Linux) de les transférer à un intermédiaire qui, d'un côté, cause DNS, et de l'autre, DoT / DoH. Mais lequel ? (Le transfert s'effectue en mettant l'adresse IP de l'intermédiaire, y compris ::1 / 127.0.0.1 dans /etc/resolv.conf.)


    DoT

    systemd-resolved implémente DoT mais je souhaite éviter cette pieuvre.


    Unbound

    (Ou tout autre serveur DNS récursif installé localement.)

    Config' à mettre dans /etc/unbound/unbound.conf.d/forward.conf (par exemple) :

    server:
        tls-cert-bundle: /etc/ssl/certs/ca-certificates.crt # magasin des certificats racines, apt install ca-certificates
    
    forward-zone:
        name: "."
        forward-tls-upstream: yes # activation DoT 
        forward-addr: 2001:910:800::40@853#ns1.fdn.fr # syntaxe : <IP>@<PORT>#<NOM> (le nom sera comparé avec ceux présentés par le serveur dans son certificat x509)
        forward-addr: 2001:910:800::12@853#ns0.fdn.fr

    Source.

    Tout comme tonton Bortz, j'ai d'abord rencontré une erreur dans la vérification du certificat x509 : « error: ssl handshake failed crypto error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed ». openssl s_client et gnutls-cli validaient le certificat avec le même magasin de certificats. Puis Unbound est tombé en marche tout seul… Je l'ai réinstallé en supprimant /etc/ounbound et en vérifiant qu'il n'avait rien laissé dans /var, et ça fonctionne encore avec la conf' ci-dessus… Ce n'est pas un problème de Subject / Subjet Alternative Name, ni un problème de certificat intermédiaire non-fourni dans l'échange TLS, ni… J'ai aucune piste sérieuse.


    stubby

    Dans le cadre de tests de charge simulant un usage courant, je voulais que les requêtes DNS de mon système soient transférées à un récursif DNS sans mise en cache local des réponses. Or, Unbound pratique une telle mise en cache.

    Tonton Bortz m'a signalé deux options censées désactiver la mise en cache dans Unbound :

    rrset-cache-size: 0
    msg-cache-size: 0

    Mais il n'a pas testé et le manuel d'Unbound ne dit pas explicitement que ça désactive toute forme de cache. Donc ça ne me convient pas : un test doit se faire sur des bases saines.



    Bortz m'a parlé de Stubby. Il est empaqueté dans Debian GNU/Linux (paquet du même nom).

    Dans /etc/stubby/stubby.yml, on s'assure d'avoir :

    dns_transport_list:
      - GETDNS_TRANSPORT_TLS

    Et dans « upstream_recursive_servers: », on choisit ou on ajoute ses serveurs. Exemple :

    upstream_recursive_servers:
      - address_data: 2001:910:800::40
        tls_auth_name: "ns1.fdn.fr"
      - address_data: 2001:910:800::12
        tls_auth_name: "ns0.fdn.fr"

    C'est du YAML donc gaffe à bien respecter l'indentation.

    On peut aussi pratiquer l'épinglage (le pinning) afin de s'assurer que la clé privée du serveur en face ne changera pas en douce, mais pour moi, il s'agit d'une surenchère inutile.


    dnsproxy

    Je vais en parler pour DoH. Il suffit de remplacer le schéma « https:// » par « tls:// » dans le paramètre « -u » pour transmettre les requêtes DNS via DoT.


    DoH

    stubby

    Stubby n'implémente pas DoH.


    dnsproxy

    Le projet Adguard (équivalent à uBlock Origin, mais, d'après mes notes de 2016, il était ouvert à la publicité dite acceptable) propose dnsproxy. Source.

    Attention : dans les dépôts Debian, c'est un tout autre logiciel qui est empaqueté sous le même nom.

    On télécharge. On décompresse le binaire dans /usr/local/sbin.

    On l'utilise (il est possible de passer un fichier de configuration YAML avec --config-path) :

    sudo dnsproxy -l ::1 -l 127.0.0.1 -p 53 -u https://ns1.fdn.fr/dns-query -u https://ns0.fdn.fr/dns-query --all-servers -b [2001:910:800::40]:53 -b [2001:910:800::12]:53

    Écouter sur localhost, en IPv6 et en IPv4, sur le port 53. Transférer les requêtes DNS en alternance aux serveurs ns1.fdn.fr et ns0.fr. Les noms ns(1|0).fdn.fr seront résolus en clair en utilisant les serveurs 2001:910:800::40 et 2001:910:800::12 (qui sont ns(1|0).fdn.fr).

    Pour gérer dnsproxy, j'ai créé l'unit systemd suivante dans /etc/systemd/system/dnsproxy.service :

    [Unit]
    Description=Proxy DoH
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    Type=simple
    ExecStart=/usr/local/sbin/dnsproxy -l ::1 -l 127.0.0.1 -p 53 -u https://ns1.fdn.fr/dns-query -u https://ns0.fdn.fr/dns-query -b [2001:910:800::40]:53 -b [2001:910:800::12]:53
    RemainAfterExit=no
    Restart=on-failure
    RestartSec=10s
    
    [Install]
    WantedBy=multi-user.target
    Fri Jun 23 23:06:59 2023 - permalink -
    - http://shaarli.guiguishow.info/?DX1ENw
  • Unbound: error: failed to read /var/lib/unbound/root.key - GUIDE

    Si Unbound refuse de résoudre des noms (même s'il est configuré pour transférer toutes les requêtes à un autre serveur DNS récursif) en consignant « error: failed to read /var/lib/unbound/root.key » dans syslog, il suffit de lancer sudo unbound-anchor -vv. :-

    Fri Jun 23 19:15:22 2023 - permalink -
    - https://guide.no/unbound-error-failed-to-read-var-lib-unbound-root-key/
  • Factorisation de mes journaux et configurations httpd

    J'avais configuré mes serveurs web pour écrire des journaux (accès et erreurs) par virtualhost, au sens littéral, donc deux pour l'accès HTTP à un site web, deux autres pour l'accès HTTPS au même site web.

    Cette granularité m'a jamais servi en plus de dix ans. Dans mes différents emplois, nous ne faisions pas la distinction, et nous n'avons jamais regretté un manque d'information ou une difficulté à la retrouver.

    Même théoriquement, je ne vois pas l'intérêt de journaliser différemment les requêtes en fonction de la couche de chiffrement. Les erreurs liées à la configuration TLS seront consignées dans l'error.log général (nginx) ou dans le premier virtualhost HTTPS avec parfois une indication dans l'error.log général (Apache httpd).

    Donc, désormais, hop, deux journaux par site web (access.log, error.log), plus de discrimination en fonction de la présence ou non du chiffrement.



    De même, je stockais la configuration de chaque virtualhost dans un fichier différent. Donc, un pour HTTP, un pour HTTPS (pour un même site web). Évidemment, j'incluais les directives de configuration communes depuis un fichier de config' tiers.

    Là encore, ça ne m'a jamais servi, ça ne se faisait pas dans les emplois que j'ai occupés, et je n'en vois pas l'intérêt. Dans quel cas voudrais-je désactiver HTTPS sur un site web sans désactiver HTTP (ou inversement) ? Aucune idée. Si je le veux absolument, je pourrais toujours mettre un virtualhost en commentaire. C'est un poil plus chronophage que la suppression d'un lien symbolique (avec ou sans a2dissite), mais ça cette échelle-là, compter sert à rien.

    Donc, désormais, hop, un fichier de configuration par site web contenant un virtualhost HTTP et un HTTPS.

    Fri Jun 23 16:16:36 2023 - permalink -
    - http://shaarli.guiguishow.info/?JxYxcg
  • Re : Re: Re : Le jeune facho - Liens en vrac de sebsauvage - Le Hollandais Volant - Antichesse (o ^ω^ o) - GuiGui's Show - Antichesse (o ^ω^ o) - GuiGui's Show - Antichesse (o ^ω^ o)

    Le sujet est l'effet de contagion de la GPL, pas de faire ce qu'on « veut avec du code source libre pour le rendre propriétaire ». On parle donc d'un sous-ensemble, d'un cas minoritaire.

    Payer ne résout pas le problème en cela que ça ne lève pas la contrainte posée par la GPL. Payer n'est utile dans le cas qui nous intéresse que si le code d'origine est sous une double licence privatrice, donc qu'on est sortis de la GPL et de sa contagion, donc du sujet. Mon « tu es essentiellement hors-sujet » vient de là.

    De plus, si l'on prend la définition de « libre » du HV (en tout cas ce que j'en comprends de ses articles sur la GPL), la GPL a bien posé une restriction à la liberté de réutilisation du logiciel libre (qui est l'une de ses caractéristiques) puisque, dans un cas de contagion, le ré-utilisateur est marron si le code original n'est pas sous une double licence (ce qui est le cas majoritaire, peu de logiciels libres sont diffusés sous une double licence).

    Jusque-là, comme lors de ma dernière intervention, je ne prends pas position, j'expose ce que j'ai compris des termes du débat.

    Je suis dubitatif sur l'aspect moral de payer pour s'affranchir d'une contrainte au motif que ça contribuera indirectement au logiciel. Ça me rappelle toutes les compensations bidonnes (carbone, volet civil d'une affaire pénale, pour la perte accidentelle d'un proche, épargne salariale / partage de la valeur, etc.). L'argent résout-il tous les problèmes ? Sans compter que rien ne dit que les contributions payantes seront intégrées à la version communautaire (mais on espère que les devs pourront coder d'autres fonctionnalités avec l'argent reçu, youpi). Et que dire de payer pour pouvoir diffuser son travail dérivé.

    Thu Jun 22 22:31:13 2023 - permalink -
    - https://cakeozolives.com/shaarli-antichesse/?sKqiPw
  • Re: Re : Le jeune facho - Liens en vrac de sebsauvage - Le Hollandais Volant - Antichesse (o ^ω^ o) - GuiGui's Show - Antichesse (o ^ω^ o)

    Tu es essentiellement hors-sujet. LHV fait référence à l'effet contaminant / contagieux de la GPL (si un programme diffusé dépend, combine ou étend un ou plusieurs codes sous GPL alors ce programme doit être sous GPL), et estime que ça restreint certaines réutilisations, alors que sa définition du concept de liberté se rapproche plus de la WTFPL : n'importe qui devrait pouvoir réutiliser du code libre pour n'importe quel usage, sans conditions.

    Thu Jun 22 15:42:06 2023 - permalink -
    - https://cakeozolives.com/shaarli-antichesse/?ljVadg
  • Is Google reCAPTCHA GDPR Compliant? - Oros links

    As we’ll consider below, it might be impossible to use reCAPTCHA legally under EU law, but no data protection authority has said this.

    Si, si, des APD ont clairement estimé que reCAPTCHA n'est pas conforme au RGPD, notamment dans des mises en demeure. Idem pour hCAPTCHA (arrêt CJUE Schrems II, raisonnement ici).

    L'auteur connaît au moins l'une des mises en demeure de la CNIL sur le sujet, donc j'imagine qu'il voudrait qu'une APD dise que reCAPTCHA est illégal en tout temps et en tout lieu. Or, au moins en droit français, une autorité administrative ne peut pas prescrire des interdictions d'ordre général, mais elle doit examiner la conformité au cas par cas. C'est au responsable de traitement (et à son DPO) de décliner des lignes directrices ou une décision de justice ou celle d'une autorité administrative pour vérifier si ses traitements de données personnelles sont conformes au RGPD à travers le temps (il y a un travail de suivi).

    Après tout, tu peux légalement faire télécharger aux visiteurs de ton site web une police de caractères depuis les serveurs de Google Fonts si tu installes un reverse proxy bien configuré au milieu (ceci dit, tu iras plus vite en hébergeant ladite police en local, avec les autres fichiers de ton site web). Tu peux légalement utiliser Google Analytics sous la même condition technique (mais tes stats vont perdre tout intérêt). Tu peux légalement stocker les données chiffrées de tes clients sur du stockage à froid ricain type mamazone S3. Etc. L'enjeu, c'est les conditions de mise en œuvre.

    Par simplification, on fait parfois des raccourcis comme d'affirmer que Google Analytics est illégal, car les moyens de l'utiliser légalement détruisent complètement son intérêt, donc on sait d'avance qu'environ personne s'y aventurera, donc on peut directement affirmer que son utilisation est illégale. Mais il n'est pas toujours possible d'exclure tous les cas d'utilisation d'un produit / service.

    Exemple. À l'heure actuelle, les conditions d'utilisation de reCAPTCHA précisent qu'il collecte beaucoup plus de données techniques identifiantes que ce qui est nécessaire pour la sécurisation d'un formulaire web. Donc son utilisation doit reposer sur le consentement du visiteur. Or, le RGPD dispose que le refus de consentir ne doit pas entraîner de préjudice. Donc il faudrait autoriser l'envoi du formulaire web protégé à tout visiteur qui refuserait de consentir… dont les robots. Ou basculer sur une deuxième procédure de vérification. Dans les deux cas, l'intérêt d'utiliser reCAPTCHA tombe. Tant que Google ne changera pas le fonctionnement interne de reCAPTCHA, ce raisonnement demeurera intact. Et ça, c'est pour un seul grief, il reste le deuxième, le fait que des données personnelles (ne serait-ce que l'adresse IP pour télécharger le CAPTCHA) sont envoyées à une société commerciale ricaine sans garanties suffisantes (arrêt Schrems II de la CJUE, toujours). Vu les données techniques récoltées par reCAPTCHA pour son fonctionnement, il n'est pas certain qu'intercaler un reverse proxy qui supprime les données persos permette son fonctionnement. Donc il n'est pas faux d'affirmer que reCAPTCHA n'est pas conforme au RGPD. Et encore moins qu'il vaut mieux dépenser de l'énergie à s'en passer plutôt que d'essayer de le tordre, ainsi que le RGPD, dans l'espoir que ça fasse le boulot.

    Thu Jun 22 15:28:22 2023 - permalink -
    - https://ecirtam.net/links/?yc40HQ
  • Re : Le jeune facho - Liens en vrac de sebsauvage - Le Hollandais Volant - Antichesse (o ^ω^ o)

    Autant j'arrive à comprendre les autres points autant celui-ci je n'y parviens pas. À quel moment rendre des sources libres peut-il empêcher leur emploi ?
    @Timo tu aurais un exemple à me donner ?

    Il s'agit de l'éternel débat autour de la GPL. Comme d'hab, tout dépend du sens que l'on donne au mot « libre ». La liberté, est-ce faire tout ce que je veux, de la manière dont je l'entends, y compris au détriment d'autrui ou est-ce plus subtile, comme choisir son carcan, etc. ?

    Thu Jun 22 14:50:58 2023 - permalink -
    - https://cakeozolives.com/shaarli-antichesse/?gi1C_Q
  • Suite : Suite : 1665577 - self signed SMTPS certificate exceptions can't be added - GuiGui's Show - GuiGui's Show

    Bug toujours présent dans la version 102.12 de Thunderbird packagée dans Debian 11. Pour SMTP, mais aussi pour IMAP.

    Sérieusement… :(

    Thu Jun 22 09:46:18 2023 - permalink -
    - http://shaarli.guiguishow.info/?a0mfIQ
Links per page: 20 50 100
◄Older
page 31 / 277
Newer►
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community