En France, comme dans le reste de l'Union européenne (UE) et un peu partout ailleurs, les opérateurs de communications électroniques ouverts au public et les hébergeurs informatiques de contenus accessibles au public sont tenus de conserver certaines données durant un certain temps pour certaines finalités légales à tendance répressive (enquêtes pénales, renseignement, et droit de communication des administrations). On nomme ça la rétention des données de connexion. (Cette désignation est trompeuse puisque la conservation d'autres jeux de données est également obligatoire.) Le régime juridique des données de connexion est distinct de celui des interceptions (portant sur le contenu des communications) qui ne sera pas traité ici.
Durant les dix dernières années, ce cadre a évolué, donc je voulais faire le point. De plus, je me suis toujours demandé quelles obligations précises pèsent sur moi avec mon site web perso, mes serveurs emails et de messagerie instantanée persos, etc. Voyons ça.
Dernière mise à jour : août 2025.
Plan :
2000 : la loi française 2000-719 codifie, dans la loi 86-1067 relative à la liberté de communication, l'obligation, pour les Fournisseurs d'accès à Internet (FAI), les hébergeurs, et les Fournisseurs de services Internet (FSI) de conserver les données permettant l'identification de l'auteur d'un contenu. On est donc avant le 11 septembre, le Patriot Act, blablabla, hein. ;)
2001 :
2011 : le décret 2011-219, précisant la LCEN, est, avec l'ancienne version du R10-13 du CPCE, la dernière définition du régime français avant le grand chamboulement. Il prévoit la conservation des données de connexion suivantes : données d'identité (nom, prénom, etc.), d'abonnement (adresse IP, numéro de téléphone, etc.), de facturation, de trafic (appels, SMS, donc fadettes, date+heure+durée de chaque communication, etc.), et de localisation (d'un smartphone, à la granularité de la couverture d'une zone par une antenne).
2013 : la Loi de programmation militaire, notamment son article 20, octroie, pour la première fois, l'accès aux données de connexion aux services de renseignement (au sens très large, il existe de nombreux « services de renseignement du second cercle »), et aux agents des ministères de l'économie et du budget (articles L246-1 et L246-2 du Code de la sécurité intérieure, CSI) pour la sécurité nationale, la sauvegarde des éléments essentiels du potentiel scientifique et économique de la France, ou la prévention du terrorisme, de la criminalité et de la délinquance organisées et de la reconstitution ou du maintien de groupements dissous (L241-2 CSI). En réalité, le L246-2 CSI parle d'« informations ou documents » et le L246-1 « des informations ou documents traités ou conservés » par les intermédiaires techniques, ce qui est susceptible de dépasser le cadre des données de connexion. L'accès est en différé (L246-1 CSI) ou en temps réel (L246-3 CSI).
2014-2022 : dans plusieurs arrêts, via plusieurs questions préjudicielles renvoyées par plusieurs juridictions nationales, la Cour de Justice de l'UE (CJUE) invalide la directive 2006/24/CE et précise les exigences découlant du droit de l'UE. Arrêts notables (il y en a d'autres) : Digital Rights Ireland (2014, communiqué de presse), Tele2 Sverige et Watson (2016, communiqué de presse), La Quadrature du net ‒ LQDN ‒ et Privacy International (2020, communiqué de presse), Prokuratuur (2021, communiqué de presse), Commissioner of the Garda Síochána (2022, communiqué de presse), et SpaceNet / Telekom Deutschland (2022, communiqué de presse).
La conservation préventive, généralisée et indifférenciée des données de connexion est une atteinte disproportionnée à la vie privée, même si lesdites données ne sont pas exploitées, dès lors qu'un ensemble de données est susceptible de permettre de tirer des conclusions très précises concernant la vie privée d'une personne. Par dérogation :
(SpaceNet) La CJUE se montre inflexible. Le régime allemand post-2015 prévoyait : conservation 4 semaines pour la localisation, 10 semaines pour le reste, dans les deux cas uniquement pour les infractions particulièrement graves, sous le contrôle préalable d'un juge, par un mécanisme de conservation rapide, avec un cahier des charges technique pesant sur les opérateurs, etc. Pourtant, la CJUE le retoque car, indépendamment de la durée de la conservation, de la nature des données conservées, de la quantité de données conservées, et des conditions d'accès, il était « susceptible de permettre de tirer des conclusions très précises concernant la vie privée d'une personne ». Conclusion : la modulation de la durée, de la quantité, etc. n'a aucune incidence sur le raisonnement de la CJUE. On retrouve ce point dans Prokuratuur.
Analyse par les commentateurs :
2015-2020 :
2020 : dans son arrêt Breyer contre Allemagne (résumé ici), la Cour Européenne des Droits de l'Homme (CEDH) valide la collecte de données d'identité des détenteurs d'une carte SIM prépayée : l'ingérence est nécessaire et proportionnée.
2021-2022 : le Conseil d'État (avril 2021), la Cour de cassation (juillet 2022) et le Conseil constitutionnel (décembre 2021, mai et juin 2022) ajustent, a minima et à contrecœur, le droit français au droit de l'UE. Il s'agit de neutraliser l'effet de la jurisprudence de la CJUE.
Conseil d'État :
Sur la conservation :
Pas d'utilisation des données de connexion pour les autres infractions (non-graves), à l'exception des données d'identité.
Sur l'accès par les services de renseignement :
Arrêts de la Cassation (juillet 2022) :
Quand ces arrêts ont été rendus, la loi avait déjà changé (en juillet 2021 et en mars 2022, cf. infra) ;
Théoriquement, après les arrêts CJUE, le Parquet (le procureur), qui est l'autorité de poursuite (en sus de ne pas être indépendant de l'exécutif), ne peut plus valider les demandes d'accès aux données de connexion des OPJ dans les enquêtes préliminaires ou de flagrance (qui constituent l'écrasante majorité des investigations). Dans les informations judiciaires (commissions rogatoires), c'est le juge d'instruction qui valide les demandes. S'il est indépendant (magistrat du siège), il n'est pas extérieur à l'enquête, donc la CJUE risque de tiquer. Néanmoins, dans l'attente d'une réforme, la Cour de cassation a jugé qu'il n'y aura pas de nullité de procédure sauf si le prévenu peut montrer, au juge du fond, un préjudice, c'est-à-dire que l'accès à ses données de connexion aurait été interdit s'il y avait eu un contrôle indépendant. Il s'agit de la déclinaison du principe juridique « pas de nullité sans grief ». Donc les magistrats peuvent toujours demander l'accès aux données de connexion. Il s'agit d'un contrôle a posteriori à longue échéance. « La Cour de cassation […] a fixé des conditions si strictes qu’aucune nullité ne pourra être prononcée. » (source, page 123) ;
La Cour tolère l'exploitation, par ricochet, par le mécanisme de la conservation rapide, des données de trafic et de localisation recueillies à des fins de sécurité nationale dans des affaires de criminalité grave qui n'en relèvent pas, et le repêchage de données de connexion obtenues illégalement, ce que la CJUE interdit. À la demande d'un prévenu, un juge du fond pourra prononcer la nullité des réquisitions si elles outrepassent la stricte nécessité, mais même remarque que ci-dessus, en pratique, ça n'arrivera pas, et, là encore, il s'agit d'un contrôle a posteriori longtemps après, ce qui n'est pas conforme à la jurisprudence de la CJUE ;
Elle restreint l'exploitation des données de trafic et de localisation à la criminalité grave (ou aux atteintes à la sécurité nationale, j'vais y revenir). Comme il n'en existe pas de définition, c'est au juge du fond de décider ce qui en relève en fonction de la nature de l'infraction, au regard de la nature des agissements, du préjudice, des circonstances des faits, de la peine encourue, etc. c'est-à-dire, in fine, de la nature de l'infraction et de la peine encourue d'un côté, et de l'appréciation des circonstances sur le fondement des principes de nécessité et de proportionnalité, de l'autre. Ces faisceaux d'indice n'ont pas (encore ?) été repris dans le Code de procédure pénale ;
2021 :
mai : dans son arrêt Big Brother Watch et autres contre Royaume-Uni (communiqué de presse), la CEDH dégage des critères pour valider une législation nationale implémentant une surveillance de masse ou des échanges avec des services de renseignement étrangers. En clair, à mes yeux : les digues ont sauté, il est loin le temps de Klass et autres c. Allemagne et de son paragraphe 41 sur menace de surveillance = entrave à la liberté de communication.
La CEDH a mis en œuvre son contrôle in concreto habituel : point d'impératif absolu (comme dans la démarche première de la CJUE en 2014), mais la recherche d'une insuffisance cumulée de garanties ;
D'abord, en matière de surveillance de masse :
Ensuite, sur l'échange avec des services de renseignement étrangers :
juillet : ajustement à la marge du régime français par l'article 17 de la loi renseignement 2 (loi 2021-998 relative à la prévention d’actes de terrorisme et au renseignement) qui modifie les articles L34-1 CPCE et 6 LCEN, puis par l'édiction des trois décrets français qui régissent actuellement la conservation des données de connexion : 2021-1361 pour les opérateurs au titre du CPCE, 2021-1362 pour les hébergeurs et les opérateurs au titre de la LCEN, et 2021-1363 pour la conservation des données de connexion et de localisation à des fins de prévention de la menace grave et actuelle contre la sécurité nationale. Avis de la CNIL sur le décret 2021-1361. Avis de la CNIL sur le décret 2021-1362.
Sécurité nationale : comme craint, le décret 2022-1327 a pris la suite du 2021-1363, puis le 2023-933, puis le 2024-901 puis le 2025-980.
Conservation :
Accès :
2022 :
mars : deuxième ajustement à la marge du régime français par l'article 12 de la loi 2022-299 visant à combattre le harcèlement scolaire, notamment pour palier les inconstitutionnalités (cf. supra). Ajout de l'article 60-1-2 du Code de procédure pénal, vers lequel renvoient les articles 60-1 et 60-2 (réquisition en enquête de flagrance), 77-1-1 et 77-1-2 (enquête préliminaire), et 99-3 et 99-4 (information judiciaire) du même Code, afin de restreindre l'accès aux données de connexion (hors identité civile) aux infractions les plus graves : crime ou délit >= 3 ans de taule ; identification de l'auteur d'un crime ou délit >= 1 ans de taule commis via un réseau de communication électronique ; à la demande de la victime sur son matériel, si la taule est encourue ; ou recherche d'une personne disparue ou la reconstitution d'un parcours criminel.
septembre : arrêt C-339/20 de la CJUE (communiqué de presse) : les infractions d'abus de marché ne peuvent faire l'objet d'une collecte généralisée et indifférenciée pendant un an des données de trafic (l'Autorité des marchés financiers, AMF, avait obtenu des données de connexion recueillies en enquête pénale). Cette QPJ a été posée par la Cour de cassation dans les pourvois 19-80.908 et 19-82.223, jugés en mai 2023.
2023 :
En juin, le Conseil d'État a rendu ses décisions sur les décrets de 2021 / 2022 :
D'abord, la décision CE 468361 sur le décret 2022-1327 (injonction à conserver les données de trafic et de localisation pour la sécurité nationale), attaqué par Free et des individus :
Ensuite, la décision CE 459724 sur les décrets 2021-1361 et 2021-1362 (la conservation en elle-même), attaqués par Free :
En 2023, le Sénat a procédé à une mission d'information « sur les modalités d'investigation recourant aux données de connexion dans le cadre des enquêtes pénales ». Des auditions ont eu lieu en juillet et septembre 2023 (source : agenda de la rapporteure). Un rapport a été produit en novembre. Mes notes ici. En gros :
2024 :
En février, la Cour de cassation rend son arrêt dans le pourvoi 23-81.061. Commentaire ici. La localisation en temps réel d'un téléphone (article 230-32 et 230-33 du Code de procédure pénal), en ce que, contrairement au suivi d'un véhicule par une balise GPS, elle fait intervenir les données de connexion, ce qui implique l'application de la directive e-Privacy et des arrêts CJUE, ne peut être ordonnée par un procureur car il est l'autorité de poursuite. La circonstance de l'intervention d'un juge d'instruction après l'enquête préliminaire, qui a pour effet de faire perdre la direction de l'enquête et l'opportunité de poursuite au procureur, est sans effet. La nullité de la géolocalisation nécessite de montrer qu'elle n'a pas été limitée à la criminalité grave ou qu'elle a excédé le strict nécessaire. À ce stade, il est seulement reproché à la chambre de l'instruction de la Cour d'appel de ne pas avoir recherché cela. Même pour des interceptions de communications sans que le JLD ni le juge d'instruction n'en ai été informé à brève échéance, le prévenu doit montrer en quoi ça porte atteinte à ses intérêts.
En avril, la CJUE a rendu son arrêt LQDN contre HADOPI (C-470/21) :
Questions en suspens : obtenir l'identité civile à partir de l'adresse IP source d'une connexion est-il possible si l'infraction présumée ne relève pas de la criminalité grave ? Et si c'est le seul moyen d'identifier l'auteur présumé d'une infraction ? Faut-il un contrôle préalable par une autorité indépendante ? Quelles infractions relèvent de la criminalité grave ? ;
La CJUE répond que la correspondance entre une IP source et une identité civile peut être sollicitée pour toutes les infractions pénales, pas juste la criminalité grave, sauf si, conformément à sa jurisprudence antérieure (cf. supra), cela est susceptible de permettre de tirer des conclusions précises sur la vie privée, de tracer l'activité, de profiler l'utilisateur (aka ingérence grave dans la vie privée). Sans trop de surprise étant donné que l'inverse induirait une impunité totale (je peine à croire que les opérateurs gardent l'historique des IP assignées pour leurs besoins propres) ;
Un contrôle préalable et indépendant est obligatoire uniquement en cas d'ingérence grave. Par défaut, ce n'est pas le cas de l'obtention de l'identité civile à partir d'une IP.
Le délit de contrefaçon peut être considéré, par la France, comme relevant de la criminalité grave au regard de l'atteinte à un intérêt fondamental de la société (lol). Inversement, la contravention de négligence caractérisée n'en fait pas partie (en même temps, c'est dans son type : contravention). Sans trop de surprise au regard de la répartition des compétences entre l'UE et ses États-Membres, la définition de la criminalité grave est donc renvoyée aux États. C'est un désaveu de l'Avocat général qui, dans ses premières conclusions (point 74), proposait de considérer qu'une telle définition devrait être autonome. Je ne conçois pas l'intérêt qu'aurait la France à considérer que le délit de contrefaçon relève de la criminalité grave puisque la CJUE a validé l'obtention d'une identité civile à partir d'une IP pour toutes les infractions.
Sur la conservation, ce qui avait fait monter la CJUE dans les tours dans ses précédents arrêts, c'était qu'elle était confrontée à des législations, notamment la nôtre, française, qui prévoyait aussi la conservation de la date+heure + durée + type + destinataire de chaque communication (point 81). Si la législation prévoit uniquement la conservation des IP sources, c'est bon. Sauf que la législation française prévoit toujours, en sus de la conservation des adresses IP source, la conservation des données de trafic précitées et de localisation pour la sécurité nationale. Réponse de la CJUE (points 83 à 89) : la loi doit préciser de manière claire et précise les modalités de conservation. Ces modalités doivent inclure : la conservation de chaque jeu de données doit être séparée et étanche ; la mise en relation / combinaison (ex. : identité civile <> IP) doit être réalisée par un procédé technique qui ne remet pas en cause l'étanchéité (gné ?) ; la fiabilité de l'étanchéité doit être contrôlée par une autre autorité publique que celle qui accède aux données (vache, encore une entité de plus…). Bref, c'est de la cosmétique… ;
Divers :
2025 :
Sources pour rédiger cette section :
Gros résumé à la truelle de la section précédente.
En droit français (il n'y a plus de législation européenne sur le sujet, uniquement e-privacy qui la permet par dérogation), la rétention des données de connexion est codifiée dans :
Lire la section « Qui est concerné ? » infra sur la répartition des types d'acteurs entre CPCE et LCEN.
Plus précisément, les intermédiaires techniques doivent conserver :
L'accès aux données de connexion est régit par trois régimes :
Pour les enquêtes pénales :
Pour les services de renseignement :
Plein d'administrations disposent d'un droit de communication initialement accordé au fisc (L81 à L102 AH du Livre des procédures fiscales) : douanes (article 65 quinquies du Code des douanes), AMF (L621-10-2 du Code monétaire et financier), DGCCRF et ADLC (L450-3-3 du Code du commerce), sécu dont CAF (L114-19 à L114-21 du Code de la sécurité sociale), Pôle emploi (L5312-13-2 du Code du travail), URSSAF, inspection du travail (8113-5-2 du Code du travail), ANSSI (L2321-3 du Code de la défense), HADOPI (L331-14 du Code de la propriété intellectuelle), etc.
Ce droit porte sur plusieurs types de documents et données (relevé de compte bancaire, par ex.), dont les données de connexion. Rigolo : le Conseil constitutionnel aime rappeler que le droit de communication des données de connexion n'est pas assorti d'une exécution forcée, d'une contrainte, alors que, pour la HADOPI, par exemple, une contravention est prévue en cas de refus de répondre.
Toutes les administrations ne peuvent pas avoir accès aux données de connexion. Tel est le cas de la Sécu, de Pôle emploi, ou de la Haute autorité pour la transparence de la vie publie (HATVP) :
De même, toutes les administrations n'ont pas accès aux données de trafic et de localisation. Exemple : l'inspection du travail est limitée aux données permettant d'identifier l'auteur présumé de travail dissimulé (donc numéro de tél / adresse IP et identité civile), cf. 8113-5-2 du Code du travail.
Depuis 2018-2019, suite à des questions prioritaires de constitutionnalité et pour répondre au critère d'indépendance posé par la CJUE (l'autorité de poursuite ne peut pas être celle qui valide / contrôle l'accès aux données de connexion), l'AMF (2017-646/647 QPC), l'ADLC (2015-715 DC), et le fisc (2015-715 DC puis loi de finances pour 2021) demandent une autorisation préalable d'accéder aux données de connexion au Contrôleur des demandes de données de connexion (CDCD), c'est-à-dire un membre du Conseil d'État suppléé par un magistrat de la Cour de cassation (et inversement, par alternance). Voir ici et là.
Les autres administrations sont-elles soumises à un contrôle préalable ? La douane est soumise au contrôle du procureur, ce qui n'est pas conforme à la jurisprudence de la CJUE (mais c'est mieux que l'absence de contrôle d'avant la décision 2018-764 QPC). Le cas HADOPI est devant le Conseil d'État.
Pour les données de trafic et de localisation, est-ce que les crimes, les délits graves et les « manquements graves » dont ces autorités ont la charge relèvent de la gravité délimitée par la CJUE ? L'AMF s'est fait retoquer là-dessus (cf. 2022 dans la section « Historique »). Quid de la lutte contre les entraves à la concurrence (ADLC) ?
De là, se faire communiquer, via une injonction de conservation rapide, les données de trafic ou de localisation que les opérateurs collectent dans le cadre de la sécurité nationale (cf. 2021 dans la section « Historique ») pour traiter des affaires qui n'en relèvent pas, tient-il la route ? A priori, la CJUE a dit non (sauf ce que les intermédiaires techniques détiennent pour leurs besoins, mais la Cour de cassation a dit oui (cf. 2022 dans la section « Historique »).
Conservation :
Accès :
A priori, c'est dans un cadre juridique suisse similaire à celui de la France que ProtonMail a mouchardé l'adresse IP, le modèle, et l'identifiant du terminal de militants français (source). Il s'agit bien de données de compte / d'abonnement et d'identification (source d'une connexion).
On notera que la France a utilisé une procédure de coopération dédiée à la criminalité grave pour une affaire qui n'en relève pas et que les autorités suisses ont laissé faire (car ce n'est pas leur boulot de vérifier si des faits relèvent ou non des conventions d'entraide).
Pour obtenir une collaboration, il faut une équivalence de l'infraction dans le droit suisse (je ne suis pas convaincu que ça freine les demandes puisque les autorités ne reprochent jamais d'être un mouvement social mais des infractions précises comme trouble à l'ordre public, destruction ou dégradation de bien, etc. qui existent dans toutes les législations…).
Comme le note Reflets, on peut déplorer le flou dans la communication de ProtonMail, qui a changé plusieurs pages de son site web depuis cette histoire. Lire aussi l'analyse d'Alex Archambault.
Mais, quoi qu'il en soit, et comme l'écrit très bien Reflets, il existera toujours une conservation et un accès aux données de connexion. Toutes les législations prévoient ça. La vertu des arrêts CJUE et des contentieux LQDN, FFDN, FDN, c'est d'avoir nettoyé les imprécisions et les excès.
Il ne sert à rien de rechercher du « no log », VPN, TOR, etc. Ça ne sera que temporaire. Ça se fera défoncer par les autorités. Tout au plus est-il possible de jouer sur la temporalité, l'absence de coopération judiciaire, etc., mais ça ne se fait pas en souscrivant simplement à un service, cela demande plus d'efforts.
Une fois que l'on a écrit tout ça, comment savoir dans quelle catégorie entre un service usuel genre un site web personnel, et les obligations qui s'imposent à nous ?
Pour rédiger cette section, je me suis appuyé sur le travail du feu groupe juridique de la FFDN (copie ici) et sur le travail de LQDN (copie ici). On notera qu'il s'agit de brouillons. Ils sont faux en cela qu'ils ne tiennent pas compte des décrets de 2021. Le premier écrit ne faisait pas consensus au sein du groupe de travail, notamment sur l'interprétation à retenir (celle, militante, de la CJUE, ou celle du droit français). Ce pan du droit est vraiment ardu.
Deux catégories d'intermédiaires techniques sont concernées :
Les deux régimes (CPCE et LCEN) se recoupent en partie, notamment sur les données à conserver.
Dans les deux cas, la prestation peut être gratuite ou payante, et le fournisseur peut être une personne morale ou physique, ça ne change pas l'existence de l'obligation.
La définition d'un hébergeur est plutôt claire : stockage de signaux, d'écrits, d'images, de sons ou de messages pour leur mise à dispo via des services de communication au public en ligne.
Mais qu'est-ce qu'un opérateur de communications électroniques ? Les définitions sont dans l'article L32 du CPCE mais rien n'est clair. En gros, ça regroupe les personnes qui :
Sachant qu'une communication électronique, c'est toute transmission de signes, signaux, écrits, d'images ou de son par voie électromagnétique et qu'un service de communications électroniques est une prestation qui consiste à fournir de telles communications. Pourquoi le vocable change en plein milieu pour « communication au public » ? Bonne question. En tout cas, pour définir les « fournisseurs de services de communication au public en ligne » renvoie, in fine, vers les B du IV et 1 et 2 du I de l'article 6 de la LCEN donc éditeurs, hébergeurs et FAI.
On retrouve les opérateurs réseaux (première définition), les services de voix sur IP (VOIP) comme SkypeOut (deuxième), les Fournisseurs d'Accès à Internet (troisième), les fournisseurs de hotspots Wi-Fi (quatrième), etc.
Les hébergeurs ne sont pas englobés dans la deuxième définition. Par défaut, les fournisseurs de messagerie électronique non plus (je vais y revenir).
La notion qui revient est le caractère public. Un réseau privé n'est pas concerné. (C'est d'ailleurs pour cela que plusieurs entités qui opèrent un réseau informatique à une échelle métropolitaine, par exemple, destiné à un nombre prévisible d'utilisateurs (les salariés et clients / usagers de ces entités, par exemple) prennent le statut juridique de Groupe Fermé d'Utilisateurs ‒ GFU ‒, pour s'éviter les contraintes précitées du CPCE.) L'accès à Internet fournit par un employeur à ses seuls salariés / agents n'est pas concerné. Les services non-publiés (intranet, correspondance privée) ne sont pas concernés.
J'ai un blog Wordpress et un shaarli. Il s'agit de services de communication au public en ligne (article 6, III, 2 de la LCEN) dont je suis l'éditeur (au sens de la loi sur la presse). À ce titre, mon hébergeur doit conserver des données sur moi.
Dans les deux cas, comme sur les réseaux sociaux, d'autres personnes peuvent écrire des articles ou des commentaires. La loi permet deux statuts : soit je suis éditeur (au sens de la loi sur la presse), soit hébergeur (au sens de la LCEN).
Si je modère mes commentaires a priori et à la mano, je suis éditeur de facto, car je choisis les contenus, j'ai le contrôle de ce qui est publié. Le Bon Coin a été reconnu hébergeur en 2014 car les annonces sont modérées par un logiciel (source).
A priori, si j'octroie des droits de publication à un nombre restreint de personnes que je choisis, je suis aussi éditeur, je choisis toujours le contenu, ce n'est pas le tout-venant qui peut publier sur mon site. On notera qu'en droit de la presse, il y a une cascade de responsabilités : l'éditeur (ou le dirlo de publication) sera poursuivi, à défaut ou au titre de complicité, les auteurs aussi, à défaut les imprimeurs, à défaut les diffuseurs, donc, a priori, un éditeur n'a pas obligation de consigner qui a écrit quoi (juste il morflera seul).
Les réseaux sociaux jouent sur les deux tableaux : ils se prétendent hébergeurs mais rendent visibles ou invisibles des contenus, les hiérarchisent, les font modérer selon une charte qui leur est propre par des travailleurs sous-payés (troisième point du 2e bloc), etc., ce qui semble constituer un rôle éditorial. Cependant, la question est loin d'être évidente à résorber, lire 1, 2, 3, 4.
Généralement, la consignation des données relatives aux auteurs de contenus (commentaires, articles, etc.) est effectuée par le site web lui-même, par son code, dans sa propre base de données.
Les requêtes de lecture / consultation d'un site web ne doivent pas faire l'objet d'une journalisation au nom d'une prétendue obligation légale qui n'existe pas. L'article 6 de la LCEN et le titre du décret 2021-1362 sont clairs : l'obligation vise uniquement les personnes qui ont contribué à la création d'un contenu.
Pages Jaunes, qui conservait un tel journal des consultations, s'est ramassée sur ce point en ce quelle n'était pas hébergeur de contenus tiers (cf. section 5 de la délibération 2011-203 de la CNIL qui est l'objet du jugement précité), donc qu'il n'y avait aucun contributeur de contenu à identifier, donc pas d'obligation légale, donc une conservation dénuée de base légale.
D'autres finalités peuvent conduire à journaliser les consultations / lectures / accès, cf. section « Journaux techniques » ci-dessous, mais pas la rétention des données de connexion.
Dans mon cas, j'ai fermé les commentaires sur mon blog (mais sinon Wordpress consigne le cœur des données qu'il est obligatoire de conserver), je n'ai plus publié de contributions extérieures depuis 2011 (et Wordpress ne consigne pas les informations nécessaires), et je suis le seul auteur sur mon shaarli. Je suis uniquement éditeur, donc j'ai rien à conserver au titre d'hébergeur.
Évidemment, mes sites web non-publiés (gestionnaire de ToDo, GLPI, agrégateur RSS, etc.), dont je suis le seul utilisateur, et qui font l'objet d'une restriction d'accès par identifiant+mdp ou par adresses IP, ne sont pas des services de communication au public en ligne, donc ils sont hors périmètre (usage strictement personnel).
Garder un journal des accès web pourrait également permettre de se disculper en cas de piratage qui conduirait à la publication d'un contenu illégal plutôt que d'en assumer la responsabilité éditoriale. D'un côté, il faut que l'attaquant publie sa prose via le web (sinon il ne sera pas journalisé par le serveur web, et à part ça, j'ai uniquement un accès SSH (qui ne consigne pas les actions) et la probabilité d'une attaque réussie diminue avec des logiciels maintenus à jour. D'un autre côté, un tel journal sera inexploitable car l'attaquant se dissimulera derrière des rebonds / intermédiaires, et le contenu, qui sera temporaire (car je m'en rendrais compte rapido) et qui ne relèvera pas de la diffamation / injure / harcèlement / appel à la haine / dénigrement / etc. mais plutôt d'actes rentables genre vente de Viagra, ne sera jamais poursuivi, donc l'occasion de dégainer le journal n'existera pas. Tout montre qu'un tel journal est inutile. Sans compter qu'un piratage doit faire partie des cas de force majeur ou équivalent ("j'ai mis en place des mesures de sécurité, elles ont été contournées, c'est pas d'chance").
J'ai jamais lu que des commentaires ou articles de blog constituent une fourniture de service de communications électroniques entraînant l'application du régime prévu par le CPCE. La directive-cadre européenne 2002/21/CE dispose même de l'inverse (cf. arrêt C‑193/18 de la CJUE, points 29 à 31).
Il s'agit de correspondance privée qui s'entend comme un nombre prévisible et déterminé de destinataires individualisés. Il y a donc une communauté d'intérêt entre l'expéditeur et les destinataires. Cela a été tranché par les juridictions, y compris pour le spam… C'est différent d'un site web ou d'un profil ouvert sur un réseau social auxquels tout le monde peut accéder sans restriction. Donc le statut d'hébergeur ne s'applique pas (puisqu'il n'y a pas mise à dispo via des services de communication au public en ligne).
A priori, les listes de diffusion, les MUC (discussion de groupe) Jabber, IRC, et tant d'autres entrent également dans ce cadre-là.
Attention : parfois, un même service peut relever de plusieurs statuts. Exemple : la publication web ouverte au public des archives d'une liste de discussion ou la mise à disposition au public de pièces jointes ou de calendriers par un webmail (type GMail) sortent du cadre de la correspondance privée, donc le statut d'hébergeur s'applique. J'ai rien de tout ça, donc je suis peinard.
Suis-je un opérateur de communications électroniques ? Auquel cas, la rétention à ce titre s'appliquerait, quand bien même celle à titre d'hébergeur ne s'applique pas. La question se pose pour de gros fournisseurs de messagerie, car si la correspondance est privée, le service en lui-même est ouvert au public (tout le monde peut ouvrir une adresse Outlook, par ex.).
La CJUE a tranché : GMail n'est pas un service de communications électroniques car sa fonction première n'est pas la transmission de signaux (cette charge est majoritairement portée par d'autres acteurs du réseau, quand bien même Google dispose de son propre réseau mondial), donc Google n'est pas un opérateur de communications électroniques, donc le CPCE ne concerne pas GMail. Les juridictions suisses ont tranché dans le même sens pour ProtonMail.
Comme le relève le Conseil d'État (note 48 pages 13 et suivante), la CJUE semble se contredire dans son arrêt LQDN de 2020, sauf à considérer que la différence entre SkypeOut (qui a été reconnu service de communications électroniques) et GMail est que SkypeOut assure, contre rémunération, la responsabilité de la transmission des communications en vertu d'accords passés avec des opérateurs télécoms là où GMail n'en fait rien, que l'essentiel du transport des emails est assumé par d'autres acteurs en best effort.
Sur la qualification juridique de GMail, on peut lire cet excellent historique.
Conclusion : je ne suis concerné ni par la LCEN, ni par le CPCE pour mes serveurs emails et de messagerie instantanée.
De toute façon, j'utilise les fonctionnalités « smtpd_sender_login_maps » + « smtpd_sender_restrictions = […],reject_sender_login_mismatch,[…] » de Postfix qui permet d'associer une adresse d'expéditeur à un identifiant+mdp. Donc, si, du temps où mon serveur emails hébergeait aussi une partie de ma famille (ce qui n'est plus le cas, j'en suis le seul usager), les autorités avaient débarqué pour me demander qui a émis tel email à telle date, etc., tant qu'elles me donnaient l'adresse de l'expéditeur de l'email litigieux, je pouvais dire avec certitude, et sans journal, qui en était l'auteur (sauf en cas de vol de l'identifiant+mdp, mais bon…).
Cf. les décrets 2021-1361 (pour les opérateurs au titre du CPCE), 2021-1362 (pour les hébergeurs et les opérateurs au titre de la LCEN) et 2021-1363 (pour la conservation des données de connexion et de localisation à des fins de prévention de la menace grave et actuelle pesant sur la sécurité nationale), ainsi que l'arrêt 459724 du Conseil d'État (CE) qui précise de nombreux points, dont le fait qu'on conserve uniquement ce que l'on collecte dans le cadre normal de l'activité (cf. « 2023 » dans la section « Historique » supra) aka ne pas avoir toutes les données n'est pas un problème (en n'avoir aucune, en revanche…, cf. supra).
Pour la participation à l'identification de l'auteur d'un contenu (LCEN), cinq jeux de données sont prévus :
Facturation. Type de paiement, référence du paiement, montant, date et heure (et lieu si transaction physique). Conservation : 1 ans après la fin du contrat ;
Informations techniques sur un terminal ou la source d'une connexion. Conservation : 1 an à compter de la connexion ou de l'utilisation du terminal ou la création d'un contenu.
Il en va de même pour identifier l'auteur d'une communication (CPCE), à quelques variantes près : il faut conserver également le numéro de téléphone appelant (RTC, par ex.), le numéro d'identification du terminal (CE : « données relatives aux connexions internet fixes par wi-fi ». Je comprends adresse MAC) ; les caractéristiques techniques (CE : « données collectées par l'opérateur pour effectuer et justifier la facturation de l'abonné et gérer son réseau, tels que le sens de l'appel, le type d'appel, le rôle de l'abonné, le type de communication ou le volume de données échangées »), date, heure et durée de chaque communication ; les données relatives aux services complémentaires utilisés (CE : « services complémentaires à la fourniture de communication par internet ou par téléphonie, tels que, notamment, les renvois d'appels ou le recours à un commutateur téléphonique privé ») ; les données techniques relatives au terminal et à la connexion (le 4e jeu de données ci-dessus) du destinataire ; et la localisation des communications par téléphone mobile.
Comme le relève Alexandre Archambault, la législation dit que tu peux conserver uniquement ce que tu manipules pour ton usage propre (cf. article 8 du décret 2021-1362, par ex.), mais l'article 39-3 du CPCE et l'article 6, VI de la LCEN prévoient des peines de prison et d'amende pour non conservation…
J'ai toujours interprété ça comme une manière de sanctionner une intention délibérée d'entraver les services enquêteurs : si t'as aucune donnée, c'est louche, s'il t'en manque certaines, ça passe. Exemples : il n'y a pas de facturation dans le cadre d'une prestation gratuite genre devenir auteur sur mon site web ; il n'y a pas de mécanisme de vérification du mdp pour un commentateur de blog ; il est techniquement impossible de fournir les données techniques du terminal du destinataire s'il n'est pas chez le même opérateur ; un hébergeur de machines virtuelles ne peut pas journaliser les modifications de contenus de son client à cause de la démarcation technique (mais il détient les jeux de données 1 à 3) ; etc. L'arrêt 459724 du CE me conforte dans cette interprétation.
De même, si l'on regarde bien, des outils comme Wordpress ou shaarli ne collectent pas toutes les informations exigées d'un hébergeur : date et lieu de naissance d'un commentateur ? Nature, date et heure d'une opération sur les contenus d'un shaarli ? Etc. Wordpress ne permet même pas de supprimer automatiquement au bout d'un an les données personnelles des auteurs de commentaires (son outil « Effacer les données », en sus de ne pas répondre au besoin ‒ il est conçu pour les demandes RGPD ‒, laisse intacte l'adresse IP, seuls le pseudo et l'adresse emails sont effacés).
Je ne peux m'empêcher de penser que c'est à cause de ça qu'il y a une légende urbaine sur une prétendue obligation de conserver le journal des accès à un serveur web ou le journal d'un serveur emails pendant un an. Démystification : 1, décision du CE contre Pages Jaunes, et explications ci-dessus.
En effet, le cœur des informations exigées (identifiant du contenu, adresse IP de l'auteur, protocole, nature de l'opération, date et heure) peuvent apparaître dans le journal des accès d'un serveur web (l'identifiant du contenu et la nature de l'opération peuvent être précisés dans l'URL, genre, pour shaarli : « POST /?edit_link=20230709_204855 »). Un conseil d'avocat sur le vif consistant à recommander cette journalisation permet d'être agnostique du type de site web utilisé et de ses capacités de journalisation, et donc de protéger le client dans le plus de cas possibles (objectif d'un avocat). Sachant que tout dépend de la question posée, du contexte présenté à l'avocat, etc., ça me paraît crédible.
Bien évidemment qu'on conserve des journaux informatiques, y compris ceux contenant les consultations de contenus, pour d'autres motifs qu'une obligation légale, tels que l'identification et le diagnostic d'un incident ou la sécurisation d'un système (détecter une compromission, parer automatiquement une attaque, etc.).
Mais cela ne peut pas être fait sous couvert de l'obligation légale présentée dans ce shaarli, il faut distinguer les finalités et la base légale, adapter la durée de conservation, etc., et, si les journaux consignent des données personnelles (comme une adresse IP), il faut les anonymiser (selon la finalité, genre vaut mieux anonymiser après l'usage du journal par fail2ban, par ex., sauf à prendre tout intérêt ;) ).
Évidemment, le RGPD s'applique aux journaux contenant des données personnelles.
S'ils répondent aux obligations présentées dans ce shaarli, pour les éléments demandés, alors la base légale est l'obligation légale, la finalité et la durée de conservation sont précisées dans les décrets, etc. Il n'y a plus qu'à y appliquer le reste du RGPD (sécurisation, traçabilité des accès, information, ne pas divulguer tout et n'importe quoi même dans le cadre d'une décision de justice, etc.).
En revanche, si les obligations présentées ci-dessus ne t'incombent pas ou si tu souhaites journaliser plus d'éléments ou pour une durée supérieure à celle prévue par la législation ou en faire un autre usage que ceux prévus par la législation, il faut une base légale et une finalité en adéquation, une nécessité, etc. Ex. : faire des stats d'audience à partir d'un journal des accès d'un serveur web reposera très probablement sur l'intérêt légitime, et la durée de conservation (avant anonymisation) sera proportionnée à cette finalité. Un journal technique pour détecter les attaques et les compromissions reposera probablement sur l'intérêt légitime (idem). Etc.
Dernière mise à jour : août 2025.
J'aime beaucoup la présentation du protocole et le retour d'expérience (les embûches rencontrées et les contournements mis en œuvre genre les recruteurs qui redirigent vers un site web maison d'où un vivier d'offres limité, les recruteurs qui posent des questions imprévisibles, etc.).
Je ne suis pas surpris :
J'ignorais que :
Chiffres :
Il reste plusieurs biais dans la méthodologie :
Je ne suis pas d'accord pour affirmer qu'un premier entretien coûte rien aux sociétés commerciales. C'est une organisation et du temps supplémentaire pour étudier la candidature de manière plus approfondie, donc du fric.
Cela fait 10 ans que mes seules adresses emails personnelles sont liées à mes noms de domaine personnels, et que j'héberge et administre moi-même mes serveurs emails. \o/
Au global sur dix ans, ça tourne sans trop de douleur ni d'entretien. Mais, attention, cela dépend très fortement de l'usage.
En effet, tout administrateur d'un serveur emails doit s'atteler à deux problématiques : le spam entrant, et l'acceptation collective des emails qu'il envoie (émails sortants).
Je n'ai pas d'antispam, pas même de greylisting. Cela exige organisation et rigueur permanentes. Je communique ma véritable adresse uniquement à des gens de confiance et je file une adresse générique ‒ un alias ‒ ou une version suffixée par un délimiteur / tag aux autres, surtout aux sociétés commerciales, aux windowsiens et aux listes de discussion archivées sur le web. (Les alias et les délimiteurs sont également très pratiques pour tracer la revente / fuite d'une adresse emails et pour trier ses emails ‒ on peut ignorer l'adresse d'expédition et/ou elle peut changer en cours de route, ça n'a pas d'incidence sur le tri opéré sur l'adresse de destination, c'est-à-dire l'alias / le délimiteur ‒.) Mon seul regret est de ne pas avoir filé une telle adresse à plus de gens, par faiblesse. Heureusement, je comptabilise une unique conséquence fâcheuse. Bref, rigueur et ténacité. De plus, je n'ai pas besoin d'être contacté par le tout-venant, ce qui simplifie grandement la problématique.
L'acceptation collective se divise en deux : la norme et l'arbitraire. C’est essentiellement l'usage (volumétrie, contenu, destinataires) qui fait passer un serveur emails de l'une à l'autre de ces catégories.
J'ai mis en place toutes les techniques normalisées et informelles : le nom d'hôte EHLO (durant le dialogue SMTP) est déclaré dans le DNS, les adresses IPv4 et IPv6 pointées par ce nom sont celles de mon serveur, et j'ai configuré un reverse (PTR) pour chacune ; SPF ; DKIM ; ADSP ; DMARC ; TLS (avec un certificat auto-signé) + DNSSEC + DANE TLSA, etc. Pour un petit serveur emails (faible volumétrie), tout cela n'est pas obligatoire : DMARC et DKIM sont rarement imposés (GMail impose SPF ou DKIM), ADSP et DANE TLSA encore moins. C'est un investissement notable, mais quand c'est en place, ça ne coûte pas de temps de maintenance.
Surtout, les adresses IP du serveur emails doivent avoir une excellente réputation, c'est-à-dire ne pas traîner dans des listes de blocage (ce qui n'est pas le cas d'OVH, par ex.). SPF, DKIM, ADSP, DANE, etc. servent à rien si tes IP sont tricardes. Donc, il vaut mieux héberger son serveur emails chez un petit prestataire car plus c'est confidentiel, plus ça diminue la probabilité d'avoir des serveurs voisins spammeurs ou mal configurés. En IPv6, le blocage se fait par réseau de taille /64, donc pour ne pas être pénalisé par le comportement d'un voisin de réseau, il faut que l'hébergeur attribue au moins un /64 à ton serveur emails.
Comme tout cela ne suffit pas pour contrer le spam, il y a l'arbitraire. Des réseaux entiers, notamment ceux résidentiels, et des hébergeurs sont bloqués, temporairement ou non, car ils sont considérés comme des spammeurs notoires. Il existe des formalités administratives spécifiques à chaque fournisseur (ex. : Microsoft SNDS et JMRP) que j'ai toujours refusées d'accomplir (les normes, c'pas pour les chiens). Des mots-clés légitimes dans le corps d'un email sont bloqués. Des liens et des PJ légitimes et sans virus sont bloqués. La cadence de fournisseurs de liste de discussion légitimes est freinée. Sitôt qu'on grossit, à peu près tous les fournisseurs emails d'envergure cassent les pieds. Microsoft et GMail sont souvent cités mais c'est également la corvée avec Orange (qui limite la cadence autant que GMail) ou SFR Business (rejet arbitraire en fonction du contenu) ou…
Beaucoup attribuent une intention malveillante aux gros fournisseurs emails : ils voudraient fermer le marché, maintenir un oligopole afin de rendre captifs les usagers de l'email et exploiter toujours plus leur vie privée (GMail analyse le contenu des emails, La Poste ou ProtonMail modifient celui des emails sortants afin d'ajouter leur pub). C'est vrai, bien sûr, mais il ne faut pas expliquer par la malveillance ce que l'on peut expliquer par l'incompétence : à grande échelle, le spam est difficile à juguler et il est possible que les gros fournisseurs emails agissent pour le Plus Grand Bien (tm), mais leur part de marché, donc l'absence de contre-pouvoir, leur permet des prises de position cavalières qui, de fait, ne sont pas remises en question en interne. Une sorte de "ça marche / ça fait le job, je cherche pas plus loin, je réfléchis pas collectif / global" prononcé par un géant. Le poids des acteurs, voilà le cœur du problème, comme bien souvent. La concentration est néfaste. Et de ça, nous tous sommes responsables (absence de formation, laisser-aller vers la facilité, etc.).
Quand j'écris qu'un serveur emails perso tourne sans douleur ni entretien, c'est donc fonction de l'investissement technique initial sus-relaté, du fait que je suis un utilisateur avancé (alias, délimiteur, etc.), que je n'ai pas une quasi-obligation de recevoir les emails du premier venu, que j'émets un très faible volume d'emails (pas d'emails transactionnels ni de listes de discussion, etc.), que je converse plutôt avec des initiés (donc j'évite de fait les pénibles genre Orange, Microsoft Hotmail / Outlook, etc.), etc. Mon constat n'est pas transposable à des organismes (association, société commerciale, administration, peu importe) qui, eux, ont vocation à être ouverts au public, qui peuvent émettre un volume conséquent d’emails légitimes, qui ont des utilisateurs lambda donc peu formés, peu rigoureux, mais exigeants, etc.
Il y a bientôt un an, cet article a beaucoup circulé. Il dit vrai, bien entendu. Mais il manque des nuances que j'ai tenté d'apporter ici. Sans compter la prédominance erronée de l'analyse économique : à l'échelle de Microsoft / Orange / Google, etc., une analyse bayésienne coûte rien, mais sur un grand volume et une diversité d’usagers, elle est inefficace (beaucoup de faux-positifs), notamment car son apprentissage dépend de chaque usager et de sa bonne volonté et foi. Je partage partiellement son avis sur les bandeaux cookies : beaucoup de traitements de données persos étaient illicites depuis longtemps. Ils ne devaient pas perdurer, mais, plutôt que de changer de modèle économique, les acteurs continuent leurs pratiques crades en essayant d’obtenir un consentement vicié, tel le premier charo venu. Les traitements devraient reposer sur des bases légales plus saines, et le consentement devrait être l'exception, pas un prétexte pour dégainer n'importe quel traitement. La seule chose blâmable est la faiblesse des régulateurs.
En fonction de l'usage, un serveur emails perso est encore vivable.
P.-S. : il y a une différence entre l'offre gratuite de Microsoft (Hotmail / Live / Outlook) et les autres (Office 365, etc.). Mon serveur s'est toujours fait écourter quand je contacte des utilisateurs d'Outlook, et l'année écoulée n'a pas fait exception, mais, comme d'habitude, j'ai reçu des réponses de deux des trois destinataires professionnels dont le nom de domaine est porté par les serveurs emails de Microsoft (aucune idée si le troisième a voulu me répondre, mais, je le suppose, demande de devis, tout ça).
Quand on a un certificat auto-signé ou signé par une autorité de certification maison :
For example, the following RRset requests that no certificates be issued for the FQDN "nocerts.example.com" by any Issuer.
nocerts.example.com CAA 0 issue ";"
CAA utilise l'aspect arborescent du DNS donc une autorisation vaut pour le domaine visé et ses sous-domaines. ;)
J'ai déménagé mon serveur perso (pas celui qui héberge ce site web). Retour d'expérience.
Initialement, ce serveur était hébergé chez moi, sur un Raspberry Pi puis sur un OLinuXino, et raccordé proprement au réseau (condition pour avoir un serveur emails fonctionnel) avec le VPN d'un FAI associatif.
Quand ces ordinateurs ont rendu l'âme (avant les cartes SD, comme quoi), j'avais une contrainte personnelle de forte mobilité. J'ai donc hébergé ce serveur avec les autres auprès d'associations auxquelles je contribuais techniquement et financièrement, ARN et Grifon.
Début 2019, par démotivation et désespoir, j'ai quitté le monde associatif. Comme il est inconvenant de faire porter une charge de travail (héberger mon serveur) sur des bénévoles sans contribuer réellement (ne serait-ce qu'à la prise de décision), j'ai déménagé au plus simple : OVH. Ça fait le boulot pour pas cher. C'était censé être temporaire. Mais la flemme s'est installée.
Mon problème est simple : mes emails arrivent de moins en moins jusqu'à leurs destinataires. Quand j'étais auto-hébergé ou chez des assos, seuls quelques fournisseurs emails hégémoniques donc casse-couilles me rejetaient comme Microsoft. À l'inverse, ces derniers mois, je suis tricard, temporairement ou non, chez pas mal d'autres fournisseurs : Infomaniak, Octopuce (qui utilise Spamhaus), SFR (ceci dit, même les serveurs de Gandi se font rejeter), FDN (qui utilise Spamhaus sur ses anciennes listes de discussion), etc.
Deux explications :
MilkyWAN : je leur ai posé deux questions techniques (modèle d'hyperviseur et existence d'un VNC) en septembre 2022, pas de réponse. J'ai bien reçu l'accusé de réception émis par leur formulaire web.
FirstHeberg (anciennement FreeHeberg) :
Ikoula :
PulseHeberg :
Ligne Web Services (LWS) :
OuiHeberg :
OMGSERV :
ONETSolutions :
Chiffres d'affaires 2021 :
Source : societe.com.
J'ai choisi FirstHeberg.
Concernant le port tcp/25 (email), il est bloqué uniquement en sortie et en IPv4. Mes justificatifs caviardés (j'ai conservé les seules infos légalement obligatoires, cf. ci-dessus) ont été acceptés. Contrairement à ce que prétend le site web, le port tcp/587 n'est pas bloqué.
L'espace client ne permet pas de définir un reverse IPv6, mais une demande d'assistance permet de l'obtenir.
L'assistance est plutôt réactive et les réponses sont plutôt de qualité.
Évidemment, tout n'est pas parfait :
On verra comment ça se passe à la longue.
Mon système Debian GNU/Linux est chiffré en intégralité (sauf /boot, même si GRUB permet de s'en passer).
Même procédure que d'habitude. J'ai rencontré aucun des problèmes mentionnés. Ni partition mal copiée ni difficulté pour monter les partitions fraîchement copiées.
J'ai changé la phrase de passe du conteneur chiffré (cryptsetup luksAddKey /dev/sdX + cryptsetup luksRemoveKey /dev/sdX). J'en ai profité pour passer sans encombre à la version 2 de LUKS (cryptsetup convert --type luks2 /dev/sdX) et à l'algo de dérivation de clé argon2id (cryptsetup luksConvertKey --pbkdf argon2id /dev/sdX).
Prenant en compte la panne du VNC (cf. ci-dessus), j'ai mis en place un système me permettant de saisir la phrase de passe de mon système chiffré via SSH.
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
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.
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) ;
IP=192.0.2.42::192.0.2.1:255.255.255.0::eth0:off ;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…) :
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 ;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.
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 :
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>.
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 -.
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.
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-usageet/ou
du -hs /var/log/journalet/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 -xet/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.
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…
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.
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.
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.
Liste non exhaustive triée par préférence.
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.
À 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.
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.
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
É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.
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.)
systemd-resolved implémente DoT mais je souhaite éviter cette pieuvre.
(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
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.
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.
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.
Stubby n'implémente pas DoH.
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.targetSi 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. :-
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.