aboutsummaryrefslogtreecommitdiff
path: root/modules/services/blocky/default.nix
blob: ca58f4f027be54b458d2aef140ab4fbf51bb2e05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
{ pkgs, ... }:
{
  services.blocky = {
    enable = true;
    package = pkgs.blocky;
    settings = {
      upstreams = {
        init.strategy = "fast";
        groups.default = [
          "9.9.9.9"
          "149.112.112.112"
        ];
      };
      bootstrapDns = [{
        upstream = "https://dns.quad9.net/dns-query";
        ips = [ "9.9.9.9" ];
      }];
      ports = {
        dns = 53;
        tls = 853;
        https = 443;
      };
      blocking = {
        denylists = {
          ads = [
            "https://adaway.org/hosts.txt"
            "https://v.firebog.net/hosts/AdguardDNS.txt"
            "https://v.firebog.net/hosts/Admiral.txt"
            "https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt"
            "https://v.firebog.net/hosts/Easylist.txt"
            "https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext"
            "https://raw.githubusercontent.com/FadeMind/hosts.extras/master/UncheckyAds/hosts"
            "https://raw.githubusercontent.com/bigdargon/hostsVN/master/hosts"
          ];
          malicious = [
            "https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt"
            "https://v.firebog.net/hosts/Prigent-Crypto.txt"
            "https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Risk/hosts"
            "https://phishing.army/download/phishing_army_blocklist_extended.txt"
            "https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-malware.txt"
            "https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt"
            "https://raw.githubusercontent.com/AssoEchap/stalkerware-indicators/master/generated/hosts"
            "https://urlhaus.abuse.ch/downloads/hostfile/"
            "https://v.firebog.net/hosts/Prigent-Malware.txt"
          ];
          other = [
            "https://zerodot1.gitlab.io/CoinBlockerLists/hosts_browser"
          ];
          suspicious = [
            "https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt"
            "https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Spam/hosts"
            "https://v.firebog.net/hosts/static/w3kbl.txt"
            "https://raw.githubusercontent.com/matomo-org/referrer-spam-blacklist/master/spammers.txt"
            "https://someonewhocares.org/hosts/zero/hosts"
            "https://raw.githubusercontent.com/VeleSila/yhosts/master/hosts"
            "https://winhelp2002.mvps.org/hosts.txt"
            "https://v.firebog.net/hosts/neohostsbasic.txt"
            "https://raw.githubusercontent.com/RooneyMcNibNug/pihole-stuff/master/SNAFU.txt"
            "https://paulgb.github.io/BarbBlock/blacklists/hosts-file.txt"
          ];
          tracking-telemetry = [
            "https://v.firebog.net/hosts/Easyprivacy.txt"
            "https://v.firebog.net/hosts/Prigent-Ads.txt"
            "https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.2o7Net/hosts"
            "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt"
            "https://hostfiles.frogeye.fr/firstparty-trackers-hosts.txt"
            "https://www.github.developerdan.com/hosts/lists/ads-and-tracking-extended.txt"
            "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/android-tracking.txt"
            "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt"
            "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/AmazonFireTV.txt"
            "https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-blocklist.txt"
          ];
        };
        clientGroupsBlock.default = [
          "ads"
          "malicious"
          "other"
          "suspicious"
          "tracking-telemetry"
        ];
        loading = {
          concurrency = 16;
          strategy = "failOnError";
        };
      };
    };
  };

  networking.firewall = {
    allowedTCPPorts = [ 53 443 853 ];
    allowedUDPPorts = [ 53 ];
  };
}