{"id":1232,"date":"2022-12-18T10:39:14","date_gmt":"2022-12-18T09:39:14","guid":{"rendered":"https:\/\/torstenzimmermann.de\/wordpress\/?p=1232"},"modified":"2023-01-17T18:12:29","modified_gmt":"2023-01-17T17:12:29","slug":"pihole-mit-eigenen-recursive-dns-server-unbound-installieren-raspberry-pi-etc","status":"publish","type":"post","link":"https:\/\/torstenzimmermann.de\/wordpress\/pihole-mit-eigenen-recursive-dns-server-unbound-installieren-raspberry-pi-etc\/","title":{"rendered":"Pihole mit eigenen recursive DNS Server (unbound) installieren (Raspberry Pi \/ etc.)"},"content":{"rendered":"\n<p>Gr\u00fczi liebe Freunde der gepflegten Unterhaltung,<\/p>\n\n\n\n<p>hier findet ihr eine Anleitung, wie wir Pihole und unbound installieren z.b. auf einem Raspberry Pi der sich daf\u00fcr super eignet. Aus eigener Erfahrung kann ich sagen: selbst der Pi der Gernation 1 reicht daf\u00fcr v\u00f6llig.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Kurze Frage: Ich wei\u00df was Pi-hole ist aber was ist ein recursive DNS Servern bzw \u201eunbound\u201c ?<\/p>\n\n\n\n<p>Long Story short: normalerweise werden alle Internet Anfragen an ein DNS Server, z.b. Google 8.8.8.8 oder Cloudflare 1.1.1.1 gesendet (bzw oder auch den vom Provider automatisch zugewiesenen DNS Server). Ein DNS Server ist sowas wie ein Adressbuch f\u00fcr Computer wo zu einer Internet Adresse z.b. www.heise.de zur IP 193.99.144.80 nachgeschlagen kann.<br><br>Quelle:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.giga.de\/extra\/internet\/specials\/was-ist-dns-dns-server-einfach-erklaert\/\">https:\/\/www.giga.de\/extra\/internet\/specials\/was-ist-dns-dns-server-einfach-erklaert\/<\/a><\/p>\n\n\n\n<p>Hier mal 2 Gr\u00fcnde warum ihr einen eigenen DNS Server wollt:<br>Theoretisches Problem: Was ist wenn das Adresssbuch eine falsche Antwort liefert ?<br>Dann w\u00e4re die Seite \u00fcber die URL nicht erreichbar. Genau das machen wir ja gezielt teilweise mit dem Pihole indem wir Webeadressen \u201eumbiegen\u201c<br>Ausserdem: Jede Internetanfrage die ihr macht gehr \u00fcber den DNS Server mindestens 1x um nachzufragen wie die Adresse ist. Das hei\u00dft euer DNS Server wei\u00df theoretisch eine Menge \u00fcber euch.<br>weitere infos dazu gerne auch hier <a href=\"https:\/\/www.reddit.com\/r\/pihole\/comments\/dgc2io\/what_is_unbound\/\">https:\/\/www.reddit.com\/r\/pihole\/comments\/dgc2io\/what_is_unbound\/<\/a><\/p>\n\n\n\n<p>oder <br><a href=\"https:\/\/docs.pi-hole.net\/guides\/dns\/unbound\/\">https:\/\/docs.pi-hole.net\/guides\/dns\/unbound\/<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Wovon ich hier ausgehen werde: Ihr habt bereits ein <a href=\"https:\/\/www.raspberrypi.com\/software\/\">Raspberry OS<\/a> (oder \u00e4hnliches) auf dem Zielsystem.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>Schritt 1: Pihole installieren:<br>root@pihole:~# <strong>curl -sSL https:\/\/install.pi-hole.net | bash<\/strong><br><br>Das wars auch schon, pihole ist installiert und kann eigentlich schon genutzt werden. Ggfs wollt ihr eigene blocklists noch einf\u00fcgen, ist aber optional hier.<br>detailierte infos findet ihr u.a. hier:<br><a href=\"https:\/\/www.heise.de\/tipps-tricks\/Pi-Hole-auf-dem-Raspberry-Pi-einrichten-so-geht-s-4358553.html\">https:\/\/www.heise.de\/tipps-tricks\/Pi-Hole-auf-dem-Raspberry-Pi-einrichten-so-geht-s-4358553.html<\/a><br><br>Schritt 2: unbound installieren<br>root@pihole:~# <strong>apt update &amp;&amp; apt install unbound<\/strong><br><br>hier noch die ben\u00f6tigte config f\u00fcr die <strong>\/etc\/unbound\/unbound.conf.d\/pi-hole.conf<\/strong><\/p>\n<\/div><\/div>\n\n\n\n<pre id=\"__code_1\" class=\"wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><code><code><em>server:\n    # If no logfile is specified, syslog is used\n    # logfile: \"\/var\/log\/unbound\/unbound.log\"\n    verbosity: 0\n\n    interface: 127.0.0.1\n    port: 5335\n    do-ip4: yes\n    do-udp: yes\n    do-tcp: yes\n\n    # May be set to yes if you have IPv6 connectivity\n    do-ip6: no\n\n    # You want to leave this to no unless you have *native* IPv6. With 6to4 and\n    # Terredo tunnels your web browser should favor IPv4 for the same reasons\n    prefer-ip6: no\n\n    # Use this only when you downloaded the list of primary root servers!\n    # If you use the default dns-root-data package, unbound will find it automatically\n    #root-hints: \"\/var\/lib\/unbound\/root.hints\"\n\n    # Trust glue only if it is within the server's authority\n    harden-glue: yes\n\n    # Require DNSSEC data for trust-anchored zones, if such data is absent, the zone becomes BOGUS\n    harden-dnssec-stripped: yes\n\n    # Don't use Capitalization randomization as it known to cause DNSSEC issues sometimes\n    # see https:\/\/discourse.pi-hole.net\/t\/unbound-stubby-or-dnscrypt-proxy\/9378 for further details\n    use-caps-for-id: no\n\n    # Reduce EDNS reassembly buffer size.\n    # IP fragmentation is unreliable on the Internet today, and can cause\n    # transmission failures when large DNS messages are sent via UDP. Even\n    # when fragmentation does work, it may not be secure; it is theoretically\n    # possible to spoof parts of a fragmented DNS message, without easy\n    # detection at the receiving end. Recently, there was an excellent study\n    # &gt;&gt;&gt; Defragmenting DNS - Determining the optimal maximum UDP response size for DNS &lt;&lt;&lt;\n    # by Axel Koolhaas, and Tjeerd Slokker (https:\/\/indico.dns-oarc.net\/event\/36\/contributions\/776\/)\n    # in collaboration with NLnet Labs explored DNS using real world data from the\n    # the RIPE Atlas probes and the researchers suggested different values for\n    # IPv4 and IPv6 and in different scenarios. They advise that servers should\n    # be configured to limit DNS messages sent over UDP to a size that will not\n    # trigger fragmentation on typical network links. DNS servers can switch\n    # from UDP to TCP when a DNS response is too big to fit in this limited\n    # buffer size. This value has also been suggested in DNS Flag Day 2020.\n    edns-buffer-size: 1232\n\n    # Perform prefetching of close to expired message cache entries\n    # This only applies to domains that have been frequently queried\n    prefetch: yes\n\n    # 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.\n    num-threads: 1\n\n    # Ensure kernel buffer is large enough to not lose messages in traffic spikes\n    so-rcvbuf: 1m\n\n    # Ensure privacy of local IP ranges\n    private-address: 192.168.0.0\/16\n    private-address: 169.254.0.0\/16\n    private-address: 172.16.0.0\/12\n    private-address: 10.0.0.0\/8\n    private-address: fd00::\/8\n    private-address: fe80::\/10<\/em><\/code><\/code><\/pre>\n\n\n\n<pre id=\"block-a454931b-fcb9-409a-b880-374a22838b33\" class=\"wp-block-code\"><code>startet den Rechner danach neu und das wars zur installation schon. hier gibts keine fancy r\u00fcckmeldung, es wird einfach installiert. damit w\u00e4re unbound an sich schon arbeitsf\u00e4hig.\n\nwollt ihr testen \u00fcber welchen DNS Server die anfragen kommen ? okay:\n<strong>rootdig pi-hole.net @127.0.0.1 -p 5335<\/strong><\/code><\/pre>\n\n\n\n<p>root@pihole:~# dig torstenzimmermann.de @127.0.0.1 -p 5335<\/p>\n\n\n\n<p>das ergebnis sieht dann so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code has-vivid-green-cyan-color has-black-background-color has-text-color has-background\"><code><em>; &lt;&lt;&gt;&gt; DiG 9.16.33-Raspbian &lt;&lt;&gt;&gt; torstenzimmermann.de @127.0.0.1 -p 5335\n;; global options: +cmd\n;; Got answer:\n;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 10068\n;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1\n\n;; OPT PSEUDOSECTION:\n; EDNS: version: 0, flags:; udp: 1232\n;; QUESTION SECTION:\n;torstenzimmermann.de. IN A\n\n;; ANSWER SECTION:\ntorstenzimmermann.de. 97 IN A 213.136.81.240\n\n;; Query time: 0 msec\n;; SERVER: 127.0.0.1#5335(127.0.0.1)\n;; WHEN: Sun Dec 18 10:28:34 CET 2022\n;; MSG SIZE rcvd: 65<\/em>\n<\/code><\/pre>\n\n\n\n<p>wie ihr seht hat 127.0.0.1 geantwortet.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Ich w\u00fcrde zus\u00e4tzlich noch gerne ein cronjob einrichten der in regelm\u00e4ssigen abst\u00e4nden die &#8222;root.hints&#8220; von den internic DNS Servern abfragt und bei sich aktualisiert, an sich sollten diese aber vom paket unbound kommen:<\/p>\n\n\n\n<p>root@pihole:~# <strong>crontab -e<\/strong><\/p>\n\n\n\n<p><code><strong>55 3 * * 7 \/usr\/bin\/wget https:\/\/www.internic.net\/domain\/named.root -qO- | sudo tee \/var\/lib\/unbound\/root.hints<\/strong><\/code><\/p>\n\n\n\n<p>Das bedeutet, das ihr jeden Sonntag um 3:55 die Daten aktualisiert. Euch passt die Zeit nicht ? Kein Problem, klickt euch euren eigenen cronjob zusammen:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.bennetrichter.de\/tools\/crontab-generator\/\">https:\/\/www.bennetrichter.de\/tools\/crontab-generator\/<\/a><\/p>\n\n\n\n<p>der auszuf\u00fchrende Befehl ist im cronjob ist:<br><strong>wget https:\/\/www.internic.net\/domain\/named.root -qO- | sudo tee \/var\/lib\/unbound\/root.hints<\/strong><\/p>\n\n\n\n<p>wobei hier vieleicht nochmal angemerkt werden sollte: so oft \u00e4ndern sich die root server von denic nicht. 1x im monat w\u00e4re auch mehr als ausreichend.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Jetzt m\u00fcssen wir nur noch Pihole selbst dazu bringen den unbound zu nutzen, das geht wie folgt:<\/p>\n\n\n\n<p>Im &#8222;Pihole&#8220; bei &#8222;Settings&#8220; die &#8222;DNS&#8220; ausw\u00e4hlen und dort bei &#8222;Custom DNS 1&#8220; den wert &#8222;127.0.0.1#5335&#8220; ein.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"499\" src=\"https:\/\/torstenzimmermann.de\/wordpress\/wp-content\/uploads\/2022\/12\/2022-12-18-10_33_57-Pi-hole-pihole1-\u2013-Mozilla-Firefox-1024x499.png\" alt=\"\" class=\"wp-image-1233\" srcset=\"https:\/\/torstenzimmermann.de\/wordpress\/wp-content\/uploads\/2022\/12\/2022-12-18-10_33_57-Pi-hole-pihole1-\u2013-Mozilla-Firefox-1024x499.png 1024w, https:\/\/torstenzimmermann.de\/wordpress\/wp-content\/uploads\/2022\/12\/2022-12-18-10_33_57-Pi-hole-pihole1-\u2013-Mozilla-Firefox-300x146.png 300w, https:\/\/torstenzimmermann.de\/wordpress\/wp-content\/uploads\/2022\/12\/2022-12-18-10_33_57-Pi-hole-pihole1-\u2013-Mozilla-Firefox-768x374.png 768w, https:\/\/torstenzimmermann.de\/wordpress\/wp-content\/uploads\/2022\/12\/2022-12-18-10_33_57-Pi-hole-pihole1-\u2013-Mozilla-Firefox.png 1416w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Und das wars: ihr seid euer eigener DNS Server, keine dNS abfragen an Telekom, Google, Cloudflare oder was auch immer.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Frohe Weihnachten und guten Rutsch<\/p>\n\n\n\n<p>Euer Rudi<\/p>\n<div class=\"thanks_button_div\" \n                  style=\"float: left; margin-right: 10px;\"><div id=\"thanksButtonDiv_1232_1\" style=\"background-image:url(https:\/\/torstenzimmermann.de\/wordpress\/wp-content\/plugins\/thanks-you-counter-button\/images\/thanks_large_blue.png); background-repeat:no-repeat; float: left; display: inline;\"\n                onmouseover=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_1232_1', true);\" \n                onmouseout=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_1232_1', false);\"\n                onclick=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_1232_1', false);\" >\n                <input type=\"button\" onclick=\"thankYouButtonClick(1232, 'You left &ldquo;Thanks&rdquo; already for this post')\" value=\"Thank You 7\"\n                  class=\"thanks_button thanks_large thanks_blue\"\n                  style=\"  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;\"\n                  id=\"thanksButton_1232_1\" title=\"Click to leave &ldquo;Thanks&rdquo; for this post\"\/>\n             <\/div><div id=\"ajax_loader_1232_1\" style=\"display:inline;visibility: hidden;\"><img decoding=\"async\" alt=\"ajax loader\" src=\"https:\/\/torstenzimmermann.de\/wordpress\/wp-content\/plugins\/thanks-you-counter-button\/images\/ajax-loader.gif\" \/><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Gr\u00fczi liebe Freunde der gepflegten Unterhaltung, hier findet ihr eine Anleitung, wie wir Pihole und unbound installieren z.b. auf einem Raspberry Pi der sich daf\u00fcr super eignet. Aus eigener Erfahrung kann ich sagen: selbst der Pi der Gernation 1 reicht daf\u00fcr v\u00f6llig. Kurze Frage: Ich wei\u00df was Pi-hole ist aber was ist ein recursive DNS [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1232","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/posts\/1232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/comments?post=1232"}],"version-history":[{"count":3,"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/posts\/1232\/revisions"}],"predecessor-version":[{"id":1238,"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/posts\/1232\/revisions\/1238"}],"wp:attachment":[{"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/media?parent=1232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/categories?post=1232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/torstenzimmermann.de\/wordpress\/wp-json\/wp\/v2\/tags?post=1232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}