pi-hole

A1 Net Protect

Written by  on August 16, 2020

A1 Net Protect klingt laut Leistungsbeschreibung nach einer Art Pi-Hole, dass man auf Provider Ebene einkaufen kann.
Das Wort „cloudbasiert“ impliziert schon, dass es nicht von der A1 selber betrieben wird. Dahinter versteckt sich Whalebone.
Danke für den Hinweis auf Twitter

Pi-hole mit rekursivem Nameserver

Written by  on Juli 12, 2019

Wer sich Sorgen um die Privatsphäre macht, sollte Pi-hole direkt mit eigenem, rekursivem Nameserver betreiben, statt die DNS Daten an Google, Cloudflare oder seinem Internetprovider zu spenden.
Beschrieben wird das etwa unter Setting up Pi-hole as a recursive DNS server solution
Nochmal von mir getestet auf „Raspbian GNU/Linux 9 (stretch)“

apt-get install unbound
# root hints herunterladen, sollte man ab und zu aktualisieren
wget -O root.hints https://www.internic.net/domain/named.root
sudo mv root.hints /var/lib/unbound/

/etc/unbound/unbound.conf.d/pi-hole.conf

server:
    # If no logfile is specified, syslog is used
    # logfile: "/var/log/unbound/unbound.log"
    verbosity: 0

    port: 5353
    do-ip4: yes
    do-udp: yes
    do-tcp: yes

    # May be set to yes if you have IPv6 connectivity
    do-ip6: no

    # Use this only when you downloaded the list of primary root servers!
    root-hints: "/var/lib/unbound/root.hints"

    # Trust glue only if it is within the servers authority
    harden-glue: yes

    # Require DNSSEC data for trust-anchored zones, if such data is absent, the zone becomes BOGUS
    harden-dnssec-stripped: yes

    # Don't use Capitalization randomization as it known to cause DNSSEC issues sometimes
    # see https://discourse.pi-hole.net/t/unbound-stubby-or-dnscrypt-proxy/9378 for further details
    use-caps-for-id: no

    # Reduce EDNS reassembly buffer size.
    # Suggested by the unbound man page to reduce fragmentation reassembly problems
    edns-buffer-size: 1472

    # Perform prefetching of close to expired message cache entries
    # This only applies to domains that have been frequently queried
    prefetch: yes

    # One thread should be sufficient, can be increased on beefy machines. In reality for most users running on small networks or on a single machine it should be unnecessary to seek performance enhancement by increasing num-threads above 1.
    num-threads: 1

    # Ensure kernel buffer is large enough to not lose messages in traffic spikes
    so-rcvbuf: 1m

    # Ensure privacy of local IP ranges
    private-address: 192.168.0.0/16
    private-address: 169.254.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
    private-address: fd00::/8
    private-address: fe80::/10
service unbound start
# Dienst aktivieren
systemctl enable unbound
dig pi-hole.net @127.0.0.1 -p 5353

DNS Sec testen

dig sigfail.verteiltesysteme.net @127.0.0.1 -p 5353
dig sigok.verteiltesysteme.net @127.0.0.1 -p 5353

Im Pi-hole Admin als DNS Server festlegen: „127.0.0.1#5353“

PI Setup

Written by  on August 25, 2018

Win32 Imager
Download Link für Image (Version & Kernel)

Einstellungen am PI:

  1. Deutsche Tastatur
  2. Statische IP
    static ip config am eth0
    /etc/network/interfaces.d/eth0

    auto eth0
    allow-hotplug eth0
    iface eth0 inet static
    address 10.0.XXX.XXX
    netmask 255.255.255.0
    gateway 10.0.XXX.XXX
    dns-nameservers 127.0.0.1
    
  3. SSH aktivieren
    service ssh start
    systemctl enable ssh
    
  4. DHCP Client deaktivieren
    service dhcpcd stop
    systemctl disable dhcpcd
    
  5. Pihole setup
  6. DoH (DNS over HTTPS aktivieren
  7. interne DNS Zone aufbauen

DOH – DNS over HTTPS

Written by  on April 22, 2018

Nach der Anleitung für Pi-hole
Erst wird der cloudflared benötigt

wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz
tar -xvzf cloudflared-stable-linux-arm.tgz
sudo cp ./cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
# Kontrolle ob das binary so funktioniert
cloudflared -v
cloudflared version 2018.4.6 (built 2018-04-11-1516 UTC)

Einen Benutzer hinzufügen

sudo useradd -s /usr/sbin/nologin -r -M cloudflared

Optionen erstellen sudo vi /etc/default/cloudflared

# Commandline args for cloudflared
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query

Berechtigungen anpassen

sudo chown cloudflared:cloudflared /etc/default/cloudflared
sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared

Systemd Service erstellen
sudo vi /lib/systemd/system/cloudflared.service

[Unit]
Description=cloudflared DNS over HTTPS proxy
After=syslog.target network-online.target

[Service]
Type=simple
User=cloudflared
EnvironmentFile=/etc/default/cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Testing

dig @127.0.0.1 -p 5053 google.com

dnsmasq config anpassen
/etc/dnsmasq.d/50-cloudflared.conf

server=127.0.0.1#5053

Disable „server=“ entries under /etc/dnsmasq.d/

# Disable Pi-hole updates ind /etc/pihole/setupVars.conf
#PIHOLE_DNS1=8.8.8.8

Testen ob alles funktioniert unter en.conn.internet.nl/connection

Pi-hole, dnsmasq und privacy

Written by  on April 14, 2018

Idee: Um es Datensammlern schwerer zu machen, die eigenen DNS Anfragen auf möglichst viele DNS Server verteilen. Das kann man in Pi-hole ganz leicht konfigurieren. Pi-hole verwendet im Hintergrund dnsmasq zur Namensauflösung. Laut Manpage sollte eine Anfrage nur zu einem Server gehen, außer es wird die Option –all-servers verwendet:

–all-servers
By default, when dnsmasq has more than one upstream server available, it will send queries to just one server. Setting this flag forces dnsmasq to send all queries to all available servers. The reply from the server which answers first will be returned to the original requester.

dnsmasq Manpage

Die Option ist nicht gesetzt. Auch eine Nachfrage an Pi-hole bestätigt das. Aber trotzdem verhält sich dnsmasq nicht wie erwartet und schickt trotzdem die Anfragen an alle eingetragenen Nameserver.

Test mit tcpdump und mehreren Nameservern eingetragen:

05:20:25.118102 IP 10.0.0.99.50586 > 10.0.0.110.53: 58302+ A? ctldl.windowsupdate.com. (41)
05:20:25.118817 IP 10.0.0.110.6516 > 1.0.0.1.53: 6292+ A? ctldl.windowsupdate.com. (41)
05:20:25.119191 IP 10.0.0.110.6516 > 1.1.1.1.53: 6292+ A? ctldl.windowsupdate.com. (41)
05:20:25.130168 IP 1.0.0.1.53 > 10.0.0.110.6516: 6292 5/0/0 CNAME ctldl.windowsupdate.nsatc.net., CNAME ctldl.windowsupdate.com.edgesuite.net., CNAME a1621.g.akamai.net., A 104.83.4.152, A 104.83.4.170 (193)
05:20:25.130799 IP 1.1.1.1.53 > 10.0.0.110.6516: 6292 5/0/0 CNAME ctldl.windowsupdate.nsatc.net., CNAME ctldl.windowsupdate.com.edgesuite.net., CNAME a1621.g.akamai.net., A 104.83.4.152, A 104.83.4.170 (193)

Das heißt, für maximale Privacy sollte man eher den ersten und zweiten Nameserver des gleichen Anbieters nehmen und den Anbieter eventuell ab und zu wechseln.

Pi-hole

Written by  on Dezember 3, 2017

Wie kann man mehr aus einer eher bescheidenen Internetanbindung herausholen? Am schnellsten ist der Traffic, der eingespart werden kann. Auch dann wenn genügend Bandbreite vorhanden wäre.
Was könnte man sparen? Spam- ähm… natürlich Werbenetzwerke und bereits bekannte Maleware bieten sich an. Am einfachsten sind Adblocker als Browser-Erweiterung zu verwenden. Aber die bekommt man so schlecht auf alle Geräte, wie zum Beispiel aufs Smart TV oder den Blueray Player. Auch am Handy schaut es eher düster aus mit Adblocking. Wer mehrere Browser verwendet muss schon auf einem Gerät mehrere Plugins einrichten und aktuell halten!
Warum also nicht Adblocking auf DNS-Ebene im ganzen Netzwerk? Exakt das setzt Pi-hole auf einem Raspberry Pi um.
Pi-hole setzt auf dnsmasq und stellt am Besten auch gleich den DHCP Dienst zur Verfügung. Der lässt sich ganz einfach über das Webinterface konfigurieren. Dieses zeigt auch recht interessante Statistiken an.

Ein zusätzlicher Vorteil ist, dass man seine DNS Anfragen über verschiedene Anbieter verteilen kann, so dass die Wahrscheinlichkeit sinkt, dass jemand alle Daten auf einmal bekommt. Und man ist nicht der verordneten Zensur der lokalen DNS Anbieter unterworfen.
Vordefiniert sind die Nameserver von Google, OpenDNS (gehört zu CISCO), Level3, Norton, Comodo und DNS.WATCH. Es steht aber frei einfach eigene zu definieren.