Unbound als zentraler DNS-Server und Adblocker

© Chavalit Kamolthamanon, 123RF

Gut gefiltert

Mit Unbound sorgen Sie für blitzschnelle Antworten auf DNS-Anfragen – und sperren bei Bedarf lästige Web-Werbung aus.

Das Domain Name System fungiert quasi als Telefonbuch des Internets. Mit Unbound [1] auf einem Raspberry Pi optimieren Sie den Einsatz des Protokolls für die Geräte im LAN. So sorgen Sie für kürzere Antwortzeiten, mehr Privatsphäre und schützen die Clients vor unerwünschter Werbung. Dabei steht der Dienst zentral für alle Geräte bereit.

Bei der Einwahl ins Internet schicken Provider in der Regel die Einträge für DNS-Server mit, die die Router automatisch übernehmen. Das genügt normalen Anwendern, die lediglich mit dem Browser unterwegs sind.

Wer jedoch die Grenzen des Möglichen austesten will, stößt schnell auf Probleme – etwa wenn die DNS-Server der Telekom für einen nicht existierenden Namen auf ihre Suchseite umleiten, anstatt die korrekte Fehlermeldung (NX_NODOMAIN) zu liefern. Was für einen surfenden Anwender praktisch erscheint, ist für einen automatischen Dienst nicht unbedingt erwünscht.

Solche Probleme lassen sich umgehen, indem Sie einfach die entsprechenden Einträge im Router ersetzen. Trotzdem müssen Sie weiterhin für jede Anfrage eine Verbindung zum externen DNS-Server aufbauen – obwohl vielleicht ein anderer Rechner im LAN dieselbe Abfrage zuvor bereits gestellt hat.

Hier hilft Unbound als DNS-Server mit eigenem Cache dabei, das Auflösen der Namen auf Trab zu bringen. Die Möglichkeit, beliebig viele Upstream-Server zu konfigurieren, bietet dabei mehr Sicherheit gegen Ausfälle.

Darüber hinaus dient das dem Schutz der Privatsphäre: Da die konfigurierten Server im Round-Robin-Verfahren zum Einsatz kommen, streuen Sie so die Abfragen über verschiedene Anbieter. Auf diese Weise erhält niemand einen vollständigen Überblick über abgefragten Adressen. Verwenden Sie ausschließlich DNSSEC-fähige Upstream-Server, sind Sie außerdem gut geschützt gegen gefälschte Antworten.

In Ausgabe 03-04/2017 haben wir mit Pi-hole bereits ein ähnliches Projekt vorgestellt, dessen Fokus auf dem Blockieren von Werbung auf Webseiten liegt [2]. Diesen Teil deckt Unbound ebenfalls mit ab; eine entsprechende Liste mit zu blockierenden Einträgen aktualisieren Sie bei Bedarf sogar automatisch.

Im Vergleich zu Pi-hole kommt Unbound jedoch wesentlich schlanker daher: Es gibt keine grafische Oberfläche, die Konfiguration findet mit dem Editor statt. Die Abhängigkeiten fallen daher deutlich geringer aus.

Installation

Da sich Unbound in den Raspbian-Repos findet, gelingt die Installation mit einem einfachen apt-get install unbound in einem Terminal. Fehlende Abhängigkeiten installiert das Paketmanagement dabei automatisch mit.

Im Verzeichnis /etc/unbound finden Sie die Konfiguration. Für dynamische und modulare Bestandteile lädt die Software alle Dateien aus dem Verzeichnis /etc/unbound/unbound.conf.d automatisch nach, was Sie sich im Folgenden zunutze machen.

Um das Programm als einfachen, puffernden DNS-Server nutzen zu können, bedarf es lediglich einer simplen Konfiguration, wie sie Listing 1 zeigt. Über interface: 0.0.0.0 weisen Sie die Software an, auf allen Schnittstellen zu lauschen, also sowohl Anfragen an localhost beziehungsweise 127.0.0.1 als auch von anderen Rechnern im Netz anzunehmen (Zeile 5).

Listing 1

 

## Simple recursive caching DNS
## unbound.conf -- https://calomel.org
#
server:
  interface: 0.0.0.0
    access-control: 10.0.0.0/16 allow
    access-control: 127.0.0.0/8 allow
    access-control: 192.168.0.0/16 allow
    verbosity: 1
forward-zone:
  name: "."
  # definitely censor free & log free with DNSSEC Support:
  forward-addr: 84.200.69.80   # DNS Watch
  forward-addr: 84.200.70.40   # DNS Watch
  forward-addr: 77.109.148.136 # Xiala.net
  forward-addr: 77.109.148.137 # Xiala.net
  forward-addr: 91.239.100.100 # censurfridns.dk
  forward-addr: 89.233.43.71   # censurfridns.dk

Mit access-control legen Sie fest, wer den Dienst benutzen darf. Je nachdem, welcher Adressbereich in Ihrem Netz zum Einsatz kommt, passen Sie hier die Daten an (Zeilen 6 bis 8).

Im Abschnitt forward-zone definieren Sie mit name: "." die Upstream-Server (Zeile 11ff.). Alle hier festgelegten Rechner kommen im Round-Robin-Verfahren zum Einsatz. Die drei Dienste im Beispiel (DNS Watch, Xiala.net, Censurfridns.dk) erfüllen wichtige Kriterien: Sie unterstützen DNSSEC, speichern keine Logs und zensieren keine Abfragen.

Mit dieser Konfiguration wären, abgesehen vom Blockieren der Werbung, alle eingangs genannten Kriterien abgedeckt. Um DNSSEC zu aktivieren und Unbound als verantwortlichen Server für das LAN zu nutzen, sind jedoch noch weitere Schritte notwendig. Zuerst einmal konfigurieren Sie Unbound mit den zentralen Root-Servern des DNS:

$ curl -o /etc/unbound/root.hints https://www.internic.net/domain/named.cache

Außerdem benötigt die Software den Schlüssel für den Root-Server, den sie laut /etc/unbound/unbound.conf.d/root-auto-trust-anchor-file.conf in der Datei /var/lib/unbound/root.key erwartet. Existiert diese Datei noch nicht oder bleibt sie leer, sollte sie initial den Inhalt aus Listing 2 erhalten.

Listing 2

 

    . IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5

Sie verifizieren diesen Eintrag über die Webseite der Internet Assigned Numbers Authority (IANA) [3]. Außerdem fügen Sie noch ein, wo sich die root.hints befinden (Listing 3, Zeile 14). Die Konfigurationsdatei fällt nun ein wenig komplexer aus (Listing 3).

Listing 3

 

server:
  verbosity: 1
  interface: 0.0.0.0
  port: 53
  do-ip4: yes
  do-ip6: no
  do-udp: yes
  do-tcp: yes
  access-control: 10.0.0.0/16 allow
  access-control: 127.0.0.0/8 allow
  access-control: 192.168.0.0/16 allow
  root-hints: "/etc/unbound/root.hints"
  hide-identity: yes
  hide-version: yes
  harden-glue: yes
  harden-dnssec-stripped: yes
  use-caps-for-id: yes
  cache-min-ttl: 300
  cache-max-ttl: 86400
  prefetch: yes
  num-threads: 2
  forward-zone:
    name: "."
    # definitely censor free & log free with DNSSEC Support:
    forward-addr: 84.200.69.80   # DNS Watch
    forward-addr: 84.200.70.40   # DNS Watch
    forward-addr: 77.109.148.136 # Xiala.net
    forward-addr: 77.109.148.137 # Xiala.net
    forward-addr: 91.239.100.100 # censurfridns.dk
    forward-addr: 89.233.43.71   # censurfridns.dk

Jetzt lässt sich Unbound als zentrale Verwaltungsstelle für Geräte im lokalen Netz einsetzen, indem Sie den Inhalt von Listing 4 in die Konfiguration integrieren.

Listing 4

 

server:
  local-zone: "home.lan." static
  local-data: "firewall.home.lan.  IN A 10.0.0.1"
  local-data: "laptop.home.lan.    IN A 10.0.0.2"
  local-data: "xboxone.home.lan.   IN A 10.0.0.3"
  local-data: "ps4.home.lan.       IN A 10.0.0.4"
  local-data-ptr: "10.0.0.1  firewall.home.lan"
  local-data-ptr: "10.0.0.2  laptop.home.lan"
  local-data-ptr: "10.0.0.3  xboxone.home.lan"
  local-data-ptr: "10.0.0.4  ps4.home.lan"

Mit local-zone legen Sie fest, für welche Domain der Block gilt. Im Beispiel kommt home.lan für ein lokales Netzwerk zum Einsatz. Für jeden Host legen Sie anschließend mittels local-data einen Eintrag für den Forward Lookup an, also das Auflösen eines Namens in eine IP-Adresse. Mittels local-data-ptr ergänzen Sie einen Eintrag für den Reverse Lookup, also das Auflösen einer IP-Adresse in einen Namen [4].

Adblocker

Den geforderten Adblocker rüsten Sie nun recht einfach nach. Dazu laden Sie zunächst eine entsprechende Liste von Hosts herunter (Listing 5). Anschließend binden Sie diese Datei über einen entsprechenden Eintrag in der Konfiguration ein (Listing 6). Jetzt noch ein beherztes service unbound restart getippt, und die Arbeit ist getan.

Listing 5

 

$ curl -sS -L --compressed "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext" > /etc/unbound/unbound.conf.d/unbound_ad_servers

Listing 6

 

include: "/etc/unbound/unbound.conf.d/unbound_ad_servers"

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • RasPi als DHCP- und DNS-Server

    Es sprechen einige Gründe dafür, die Namensauflösung im heimischen Netz in die eigene Hand zu nehmen. Der RasPi erledigt nicht nur das, sondern betätigt sich nebenbei auch noch als Adressverteiler und Zeitserver.

  • Die neue Firefox Synchronisation

    Mozillas Sync-Server erlaubt es, den Bestand von Lesezeichen, offenen Tabs oder gespeicherten Passwörtern über mehrere Browser zu synchron zu halten. Mit wenig Aufwand läuft er auch auf dem RasPi.

  • Raspberry Pi als Tor-Router und Web-Filter

    Auf dem Raspberry Pi lässt sich ein Tor-Proxy im Handumdrehen einrichten und mit minimalen Kosten betreiben. Damit platziert sich der Mini-Rechner als ideales Werkzeug, um die Privatsphäre bestmöglich zu wahren.

  • FreeBSD auf dem RasPi installieren

    FreeBSD bietet auf dem Raspberry Pi eine interessante Alternative zu den bekannten Linux-Derivaten. Wer die etwas aufwendige Installation nicht scheut, erhält als Lohn der Mühe ein äußerst stabiles System.

  • Aktuelle Software im Kurztest

    Mit Gadmin-Samba 0.2.9 stellen Sie Dateifreigaben für Windows-Rechner bereit, ohne dazu umständlich per Editor Konfigurationsdateien bearbeiten zu müssen.Auf dem RasPi spielt der leichtgewichtige Webserver Lighttpd 1.4.31 seine Qualitäten voll aus. Er bietet alle wichtigen Funktionen, wird von vielen CMS unterstützt und benötigt nur minimale Systemressourcen.Mit Sslh 1.13 bündeln Sie alle wichtigen Dienste für eine sichere Kommunikation hinter einem einzigen Port. Das spart Konfigurationsarbeit an der heimischen Firewall und hebelt die Beschränkungen vieler Provider aus.Der leistungsfähige Netzwerk-Manager Wicd 1.7.2.4 lässt sich intuitiv bedienen und erlaubt damit das schnelle und unkomplizierte Konfigurieren von Netzwerkverbindungen aller Art.

Aktuelle Ausgabe

02/2019
Neue Energien

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Scheibchenweise

    Zu den Stärken von Sonic Pi gehört es, mit wenigen Zeilen Code Samples dynamisch auszuwählen und zu zerlegen.

  • Unter Strom

    Für einen kleinen Spannungsmesser wie den INA3221 gibt es viele Einsatzmöglichkeiten. Wir zeigen, wie Sie den flexiblen Baustein richtig verdrahten.

  • Vermittlungsstelle

    Fischertechnik-Modelle bieten sich zum Fernsteuern an. Mit dem Ftduino schlagen Sie die Brücke zwischen dem RasPi und dem Technik-Spielzeug.

  • Durchgeschlängelt

    Mit den M0-Boards steigen Sie unkompliziert in die Welt der Mikrocontroller ein – ganz ohne C-Kenntnisse.

  • Gesiebt und gefiltert

    Filter und Werbeblocker einzurichten ist besonders auf Smartphones aufwendig. Den eBlocker hingegen schließen Sie einfach nur an Ihren Router an.

  • Es werde Licht

    Wollen Sie bei beginnender Dämmerung nicht ständig die Helligkeit der heimischen Beleuchtung nachregeln, überlassen Sie das einfach einem RasPi – der macht es automatisch.

  • Energiekontrolle

    Der Gesetzgeber erschwert das Direktvermarkten von Strom durch technische Hürden: So muss sich die Einspeisung etwa aus der Ferne abschalten lassen. Der RasPi löst das Problem.

  • H<->2<->-Power

    Gilt es, Energie aus einer regenerativen Quelle zu speichern, erweist sich die Kombi aus einer Brennstoffzelle und dem RasPi als ideale Lösung.

  • Kleine Wolke

    Lokale Cloud-Lösungen im Heimnetz finden immer mehr Nutzer. Mit dem RasPi und Seafile haben Sie eine Lösung zur Hand, die selbst professionellen Ansprüchen genügt.

  • Planvoll verdrahtet

    Die Leiterplattendesign-Software KiCad leistet trotz einer etwas umständlichen Bedienung auch Hobbybastlern gute Dienste.