diff --git a/hosts/common/default.nix b/hosts/common/default.nix index e08c19c..5943752 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -186,45 +186,192 @@ in ''; system.activationScripts.dconfUpdate.text = "${pkgs.dconf}/bin/dconf update"; - # Confidentialité générique (pas de SearXNG/DNS perso : repo public). + # Reprend la config Firefox d'oreo (nixos_users/hosts/oreo/configuration.nix) + # -- c'est elle qui tue la page d'accueil/configuration au premier + # lancement (aboutwelcome, newtabpage...) et bloque les pubs/contenu + # sponsorisé bien plus largement que l'ancienne version ici (qui ne + # coupait que le strict showSponsored). Deux choses changées par + # rapport à oreo, volontairement : SearXNG (perso, privé) remplacé par + # DuckDuckGo (public, intégré à Firefox) ; ExtensionSettings réduit à + # uBlock Origin + Privacy Badger (oreo en a une quinzaine, trop pour + # un poste générique de flotte). programs.firefox = { enable = true; languagePacks = [ "fr" ]; preferences = { + "browser.startup.homepage" = "https://duckduckgo.com"; "privacy.resistFingerprinting" = true; - "browser.newtabpage.activity-stream.showSponsored" = false; + + "network.trr.mode" = 3; + "network.trr.uri" = "https://dns.quad9.net/dns-query"; + "network.trr.fallback-resolver" = "https://mozilla.cloudflare-dns.com/dns-query"; + + "browser.newtabpage.enabled" = false; + "browser.newtabpage.activity-stream.enabled" = false; + "browser.startup.page" = 1; + + # Page de configuration/bienvenue au premier lancement -- désactivée. + "browser.aboutwelcome.enabled" = false; + "browser.newtabpage.pinned" = "[]"; + "browser.newtabpage.section.discovery" = false; + + "places.history.enabled" = false; + "privacy.clearOnShutdown.history" = true; + "privacy.clearOnShutdown.cache" = true; + "privacy.clearOnShutdown.downloads" = true; + "privacy.clearOnShutdown.cookies" = false; + "privacy.clearOnShutdown.sessions" = false; + "privacy.clearOnShutdown.formdata" = false; + "privacy.clearOnShutdown.offlineApps" = true; + + # Onglets verticaux à gauche par défaut + "sidebar.revamp" = true; + "sidebar.verticalTabs" = true; + + # Virer "Recent browsing" (Firefox View) + "browser.tabs.firefox-view" = false; + "browser.tabs.firefox-view-next" = false; + + # Virer "List all tabs" (bouton chevron dropdown) + "browser.tabs.tabmanager.enabled" = true; + + # Virer suggestions de recherche (y compris tendances) "browser.search.suggest.enabled" = false; + "browser.urlbar.suggest.searches" = false; + "browser.urlbar.suggest.trending" = false; + "browser.newtabpage.activity-stream.showSponsored" = false; + + # HTTPS obligatoire en permanence "dom.security.https_only_mode" = true; + "dom.security.https_only_mode_ever_enabled" = true; + + # Désactiver WebRTC (fuite d'IP réelle même via VPN) "media.peerconnection.enabled" = false; + + # Désactiver la géolocalisation "geo.enabled" = false; + + # Désactiver DRM (Widevine) + "media.eme.enabled" = false; + + # Désactiver le prefetching (DNS/liens) — fuite d'intention de navigation + "network.dns.disablePrefetch" = true; + "network.prefetch-next" = false; + "network.predictor.enabled" = false; + "network.http.speculative-parallel-limit" = 0; + + # Désactiver Safe Browsing distant (envoie des hachages d'URL à Google) + "browser.safebrowsing.malware.enabled" = false; + "browser.safebrowsing.phishing.enabled" = false; + + # Désactiver la détection de portail captif (requête réseau vers Mozilla) "network.captive-portal-service.enabled" = false; + "network.connectivity-service.enabled" = false; + + # Isolation par premier-parti (empêche le cross-site tracking via cache/cookies) + "privacy.firstparty.isolate" = true; + + # Désactiver WebGL (vecteur de fingerprinting majeur) + "webgl.disabled" = true; + + # Désactiver l'API batterie (fingerprinting) + "dom.battery.enabled" = false; + + # Bloquer l'autoplay média + "media.autoplay.default" = 5; + + # Référent minimal envoyé aux sites + "network.http.referer.XOriginPolicy" = 2; + # Do Not Track : plus d'UI depuis les versions récentes de Firefox, # mais le pref existe encore et envoie bien l'en-tête DNT=1. "privacy.donottrackheader.enabled" = true; }; policies = { - DisableTelemetry = true; - DisablePocket = true; DisableFirefoxStudies = true; - OfferToSaveLogins = false; - DontCheckDefaultBrowser = true; - EnableTrackingProtection = { - Value = true; - Locked = true; + DisableFirefoxAccounts = false; + DisableFirefoxScreenshots = true; + DisableForgetButton = true; + DisableMasterPasswordCreation = true; + DisableProfileImport = true; + DisableProfileRefresh = true; + DisableSetDesktopBackground = true; + DisablePocket = true; + DisableTelemetry = true; + DisableFormHistory = true; + DisablePasswordReveal = true; + SanitizeOnShutdown = false; + GenerativeAI.Enable = false; + + FirefoxSuggest = { + WebSuggestions = false; + SponsoredSuggestions = false; + ImproveSuggest = false; }; - # DuckDuckGo est un moteur intégré à Firefox, pas besoin de l'Add. - SearchEngines.Default = "DuckDuckGo"; - - # Pubs/contenu sponsorisé sur le nouvel onglet et la barre d'adresse. FirefoxHome = { SponsoredTopSites = false; SponsoredPocket = false; + TopSites = false; + Highlights = false; + Pocket = false; + Snippets = false; Locked = true; }; - FirefoxSuggest.SponsoredSuggestions = false; + + UserMessaging = { + WhatsNew = false; + MoreFromMozilla = false; + }; + + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + }; + + BlockAboutConfig = false; + BlockAboutProfiles = false; + BlockAboutSupport = false; + + DontCheckDefaultBrowser = true; + HardwareAcceleration = true; + OfferToSaveLogins = false; + DefaultDownloadDirectory = "$HOME/Downloads"; + PromptForDownloadLocation = true; + DisplayBookmarksToolbar = "never"; + + Preferences = { + "privacy.globalprivacycontrol.enabled" = { + Value = true; + Status = "locked"; + }; + "privacy.globalprivacycontrol.functionality.enabled" = { + Value = true; + Status = "locked"; + }; + }; + + # DuckDuckGo est un moteur intégré à Firefox, pas besoin de l'Add. + Homepage = { + URL = "https://duckduckgo.com"; + Locked = true; + StartPage = "homepage"; + }; + SearchEngines = { + Default = "DuckDuckGo"; + PreventInstalls = true; + }; + + "browser.aboutConfig.showWarning" = { + Value = false; + Status = "locked"; + }; + + NewTabPage = false; ExtensionSettings = { "uBlock0@raymondhill.net" = {