DNS und DHCP Server auf einem Raspberry Pi 2

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Das Tutorial beschreibt die Installation eines DHCP und DNS Servers auf einem Raspberry Pi 2 mit 512 MB RAM.

    Als Grundlage dient ein Beitrag aus der Raspberry Pi Geek 05-06/2017 Seite 48.

    Hier wird der DNS Server(Unbound) mit Addblocker beschrieben. Der DNS benutzt nur DNSSEC Upstream-Server.

    Da die Listings auf der Heft CD fehlen werden diese hier zur Verfügung gestellt.

    Im Tar Archiv sind alle benutzten Scripte, Timer, Services und Beispiel x.conf Dateien enthalten diese Bitte anpassen.

    Ups eine xyz.tar.gz Datei ist mit der Foren Software nicht möglich !! dann Bitte unzip verwenden.

    Für den DHCP Server wird der isc-dhcp-server verwendet.

    Es waren einige Änderungen nötig da die Cronjobs in /etc/cron.weekly/ nicht liefen wird mit Timern gearbeitet.

    Der DNS/DHCP Server wurde im Menü einer Fritzbox 7490 als Lokaler DNS Server eingetragen.

    Eine Abfrage des RasPi ergab "GNU/Linux 8 (jessie)" das wird Aktuallisiert, mit "raspi-config" bekommt er den Hostnamen "dns-raspi".

    Das Tar Archiv wird nach /home/pi kopiert und entpackt. Mit Hilfe der Datei 50-dns.network bekommt der RasPi eine statische IP.

    Code
    less /etc/os-release
    sudo apt update
    sudo apt upgrade
    sudo apt install dnsutils
    sudo raspi-config
    rsync projekt_dns.tar.gz pi@192.168.101.xx:/home/pi
    cd /home/pi
    tar xzvf projekt_dns.tar.gz
    sudo cp 50-dns.network /etc/systemd/network/
    sudo reboot

    Dann wird der DHCP Server Installiert, Konfiguriert dazu die dhcpd.conf Datei anpassen dann Start des Servers.

    Nachtrag 1:

    Das in der dhcpd.conf benutzte Netz, die Range, der Router(Default Gateway), die Such Domain und die DNS IP

    sind ein Beispiel und sollten an die eigenen Anforderungen angepasst werden um solche Fehler zu vermeiden.


    Fehler


    Code
    sudo apt-get install isc-dhcp-server
    sudo cp isc-dhcp-server /etc/default/
    sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf_alt
    sudo cp dhcpd.conf /etc/dhcp/
    sudo systemctl start isc-dhcp-server
    systemctl status isc-dhcp-server

    Der DNS Server wird installiert dann eine Kontrolle der unbound.conf Datei.

    Nur diese Zeile sollte vorhanden sein: include: "/etc/unbound/unbound.conf.d/*.conf"

    Code
    sudo apt install unbound
    less /etc/unbound/unbound.conf

    Step 1: Mit der simple.conf die Datei entspricht dem Listing 1.

    Dann ein Test für die eigenen *.conf Dateien. Die Antwort muss "unbound-checkconf: no errors" ergeben.

    Code
    sudo cp simple.conf /etc/unbound/unbound.conf.d/
    unbound-checkconf /etc/unbound/unbound.conf.d/simple.conf

    Step 2: Mit der localzone.conf die Datei entspricht dem Listing 4.

    Wenn der Test OK war beide Dateien scharf schalten.

    Code
    sudo cp localzone.conf /etc/unbound/unbound.conf.d/
    unbound-checkconf /etc/unbound/unbound.conf.d/localzone.conf
    sudo service unbound reload
    service unbound status

    Step 3: Mit der complex.conf die Datei entspricht dem Listing 3.

    Dann den Schlüssel Importieren und Kontrolle ob die Dateien root.hints und root.key da sind.

    Code
    sudo cp complex.conf /etc/unbound/unbound.conf.d/
    sudo curl -o /etc/unbound/root.hints https://www.internic.net/domain/named.cache
    sudo unbound-anchor -v
    ls -la /etc/unbound/
    unbound-checkconf /etc/unbound/unbound.conf.d/complex.conf

    Step 4: Mit dem Addblocker das entspricht dem Listing 5 und Listing 6. Zuerst die Liste der geblockten Hosts laden.

    Dann den Addblocker in der unbound.conf dem DNS Serer bekannt machen, dazu die Zeile eintragen.

    Code
    sudo curl -sS -L --compressed "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=unbound&showintro=0&mimetype=plaintext" -o /etc/unbound/unbound.conf.d/unbound-ad-servers
    sudo nano /etc/unbound/unbound.conf
        include: "/etc/unbound/unbound.conf.d/unbound-ad-servers"

    Step 5: Da nur die simple.conf oder complex.conf laufen kann wird die simple.conf umbenannt oder gelöscht.

    Dann wird die complex.conf und die localzone.conf für den DNS Server scharf geschalten.

    Code
    sudo mv /etc/unbound/unbound.conf.d/simple.conf ~/simple.conf.test
    sudo rm /etc/unbound/unbound.conf.d/simple.conf
    sudo service unbound reload

    Step 6: Abweichung vom Listing 7. Periodisches Updaten der Addblocker Hosts Liste und der Schlüssel Datei für den DNS Server.

    Es wurden 2 Script Dateien gebaut die unbound_update.sh und die hints_update.sh auch um einzeln Testen zu können.

    Die beiden Scripte werden von den Unbound Timern gestartet nicht mit Hilfe von cron oder anacron.

    Step 7: Kontroll Abfragen auf dem DNS Server.

    Code
    nslookup raspi-geek.de
    dig @localhost ct.de
    dig @localhost dnssec.works

    Abfrage 1 sollte so aussehen.

    Server: 127.0.0.1

    Address: 127.0.0.1#53

    Non-authoritative answer:

    Name: raspi-geek.de

    Address: 195.122.146.144

    Abfrage 2 sollte so aussehen.

    ct.de. 86400 IN A 193.99.144.80

    Abfrage 3 sollte das wichtige ad flag mitbringen.

    flags: qr rd ra ad;

    Fehler Quellen.

    In der dhcp.conf wird ein _ im Hostnamen ignoriert deshalb sind in der dhcp.conf nur noch - Zeichen im Namen.

  • Zitat

    Fehler Quellen.

    In der dhcp.conf wird ein _ im Hostnamen ignoriert deshalb sind in der dhcp.conf nur noch - Zeichen im Namen.

    Im DNS-Namen sind nur Buchstaben, Zahlen und das 'Minus-Zeichen' erlaubt.

    Als Buchstaben sind, abhängig von der verwendeten Sprache, auch die jeweiligen Umlaute im Punycode erlaubt.

    Keine erlaubten Zeichen bei der Namensgebung von Systemen sind der Unterstrich, der Doppelpunkt und der Klammeraffe @.

    Computer ..... grrrrrr

  • Hallo, danke für die Anleitung!

    Ich habe mich bis zu Step 6 vorgehangelt, komme nun aber nicht weiter da unbound beim Start meldet:

    "Failed to start unbound.service: The name org.freedesktop.PolicyKit1 was not provided by any .service files

    See system logs and 'systemctl status unbound.service' for details."

    Lösung: Paket "policykit-1" nach installieren.

    Einmal editiert, zuletzt von bitti1 (18. Januar 2018 um 07:54)

  • Servus Leute

    "Mit Hilfe der Datei 50-dns.network bekommt der RasPi eine statische IP."

    Funktioniert das auch mit einem Raspi3b+ und aktuellem Raspian 9? Also reicht das kopieren der individuell konfigurierten Datei?

    Ich hab die Datei konfiguriert und nach /etc/systemd/network/ kopiert aber der Raspi bekommt nach Reboot immer noch eine DHCP-Adresse.

    Gruß Dirk

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!