Beiträge zu “DNS”

Bind DNS für Letsencrypt aufsetzen

Möchten man die Letsencrypt (LE) Zertifikate auch in einem internen Netzwerk hinter einer Firewall verwenden kann man die sogenannte HTTP Validation nicht nutzen. Bei dieser am meisten verwendeten Variante startet man den Prozess von dem Webserver aus und es wird von Letsencrypt über HTTP geprüft “ob man den Server auch kontrolliert”. Hinter einer Firewall geht das natürlich nicht. Hierfür gibt es die DNS Validierung.

Bei der DNS Validierung wird man beim Abruf eines Zertifikates aufgefordert im Domain Name System (DNS) einen bestimmten Eintrag hinzuzufügen. Hat man das gemacht und LE konnte diesen Eintrag prüfen bekommt man das Zertifikat. Natürlich kann man diese Einträge auch manuell über die DNS Administration hinzufügen aber das ist natürlich bei den regelmässigen Erneuerungen etwas mühselig. Deshalb gibt es verschiedene Methoden dies zu automatisieren. Diese hängen natürlich vom DNS Provider ab. Die grossen Provider bieten hierfür eine Schnittstelle an. Leider ist mein bisheriger nicht dabei. Da ich mich sowiso mal mit einem DNS Server beschäftigen wollte eine gute Begründung einen eigenen aufzusetzen. Und da dieser ja nur für eine interne Domaine “verantwortlich” ist und mein interner DNS Server ja auf meiner pfsense Firewall läuft braucht er nicht besonders mächtig und ausfallsicher sein.

Nach Rücksprache mit JP Mens (“I adore DNS..) fiel meine Wahl auf Bind 9 und der Prozess ist eigentlich recht einfach. In Anlehnung an dieses Dokument habe ich einen sogenannten “Authoritive Server” aufgesetzt und die dynamische Änderung der DNS Einträge eingerichtet

  • Installation Bind
  • Konfiguration der Domaine
  • dynamische Änderungen zulassen

Im folgenden verwende ich den Namen “internal_domain” als Platzhalter der internen Domaine für die der DNS Server die LE Anfragen beantworten soll.

Installation

sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc

Wir wollen keinen DNS Server “für die Welt” bereitstellen sondern nur für unsere eigene Domaine arbeiten

vi /etc/bind/named.conf.options

      recursion no;
      allow-transfer { none; };

Für welche Domaine “arbeiten wir” und wo liegen die Daten?

vi /etc/bind/named.conf.local

  zone "internal-domain.net" {
    type master;
    file "/etc/bind/zones/db.internal-domain.net";
};

Wir starten mit einem Beispiel das wir leicht anpassen müssen

mkdir /etc/bind/zones
cp /etc/bind/db.local /etc/bind/zones/db.internal-domain.net
vi /etc/bind/zones/db.internal-domain.net 
    internal-net.net             IN SOA  ip-address.your-dns-server. your-mail.adresse.de. (

named-checkconf 
named-checkzone internal-domain.net /etc/bind/zones/db.internal-domain.net 
zone internal-domain.net/IN: loaded serial 3
OK
sudo service bind9 restart

Jetzt sollte man den neuen DNS Server etwas fragen können

dig internal-domain.net @ip-addres.your-dns-server 

Jetzt gilt es das dynamische Ändern von DNS Einträgen zu konfigurieren. Von all den Beschreibungen fand ich diese hier am besten.

Die Schritte sind

  • Erstellen eines Schlüssels.
  • Definition das mit diesem Schlüssel bestimmte Einträge in Bind geändert werden dürfen.
  • Testen

Den Schlüssel erstellen und mal schauen was drin ist

dnssec-keygen -a HMAC-MD5 -b 512 -n HOST internal-domain-net
Kinternal-domain-net.+157+55477

ls -ls Kinternal-domain-net.+157+55477.*
4 -rw------- 1 root root 120 Jun 10 11:07 Kinternal-domain-net.+157+55477.key
4 -rw------- 1 root root 229 Jun 10 11:07 Kinternal-domain-net.+157+55477.private

more Kinternal-domain-net.+157+55477.private 
Private-key-format: v1.3
Algorithm: 157 (HMAC_MD5)
Key: bhqqXRXPygW/DF7.........................Jb64XfiRUqZA==

Dieser Key muss nun unserer Bind Konfiguration hinzugefügt werden und ich lege fest das mit diesem Key TXT Einträge für bestimmte acme_challenges geändert werden dürfen. Mit den Wildcard Zertifikaten bin ich erst mal zurückhaltend. Ob das sinnvoll ist weiß ich noch nicht aber ich plane für verschiedene Serverkategorien verschiedene Schlüssel verwenden zu können. Das kann man auch einfacher haben.

vi /etc/bind/named.conf.local

key "internal-domain.net" {
  algorithm hmac-MD5;
  secret "vqbhqqXRXPygW/DF7.........................Jb64XfiRUqZA====";
};

zone "internal-domain.net" {
    type master;
    file "/etc/bind/zones/db.internal-domain.net";
    update-policy           {
            grant internal-domain.net  name _acme-challenge.oneofyourserver.internal-domain.net. txt;
        };
};

Damit wir gleich auch dynamisch updaten können müssen wir noch die rechte ändern

chown -R bind /etc/bind/zones

So nach einem Neustart von Bind können wir jetzt “von außen” DNS Einträge ändern. Am einfachsten kann man das mit nsupdate testen

nsupdate -v -k Kinternal-doamin-net.+165+53408.key 
> server ipaddress.your-dns-server
> zone internal-domain.net
> update add _acme-challenge.oneofyourserver.internal-domain.net. 60 IN TXT "xa4I5BUsvkxYiIr9TRITOCt7yjlx8bftKuTwu23iHq8"
> send

im Logfile sehen wir dann ein

 updating zone 'internal-domain.net/IN': adding an RR at '_acme-challenge.oneofyourserver.internal-domain.net' TXT "xa4I5BUsvkxYiIr9TRITOCt7yjlx8bftKuTwu23iHq8"

Ob das ganze auch angekommen ist kann man mit einem

 dig '_acme-challenge.oneofyourserver.internal-domain.net TXT @ipaddress.your-dns-server

prüfen.

Als nächstes steht die Konfiguration der internen Server auf dem Plan.

Letsencrypt
11.6.19
Weitere Beiträge zu: DNS  

Warum gibt es noch kein sicheres DNS?

Für alle die sich das (wie ich auch) immer schon mal gefragt haben und eine unterhaltsame Einführung in die Geschichte von DNS haben wollen sei dieser Talk von Bert empfohlen.

sss

Datenschutzhinweis - Dieser Link startet einen externen Abruf des Videos bei Youtube

8.6.19
Weitere Beiträge zu: DNS   DoH   DoT  

Raspbian: resolv.conf immer wieder gelöscht

Aus Gründen die ich nicht so richtig verstehe wurden bei einem meiner Raspberry Server im Internet immer wieder die Einstellungen für den DNS Nameserver gelöscht.

Dieser Hinweis half mir bei einer Lösung

vi /etc/network/interfaces
   iface eth0 inet static
   ...
   ...
      dns-nameservers 8.8.8.8 8.8.4.4
16.1.17
Weitere Beiträge zu: Raspbian   DNS  

Augen auf bei der DNS Server Wahl

Bei meinem Untersuchungen zum Thema DNS Server bin ich auf einen Aspekt gestoßen der mir vorher nicht bewusst gewesen ist.

Je nach dem welchen DNS Server verwendet kann es passieren das man bei der Nutzung von Youtube oder anderen grossen Webseiten einen besonders langsamen Download bekommt.

Viele große Webseiten verwenden sogenannten Content Delivery Networks. Dort werden die Bilder auf weltweiten Servern verteilt und je nach dem von welchem Land man die Seite aufruft bekommt man von einem "nahen" Server die Dateien ausgeliefert.

Verwendet man zum Beispiel den DNS Server von Google oder Opendns dann fragt der DNS Server von Google der vermutlich in Amerika steht nach der Zieladresse. Das CDN liefert den nächsten Server : in Amerika und nicht den der nahe in Deutschland ist.

Nachvollziehen kann man das folgendem Beispiel

Deutscher DNS Server

dig trials.adobe.com A

; <<>> DiG 9.8.1-P1 <<>> trials.adobe.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28394
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;trials.adobe.com.        IN    A

;; ANSWER SECTION:
trials.adobe.com.    10800    IN    CNAME    trials.adobe.com.edgesuite.net.
trials.adobe.com.edgesuite.net.    21600 IN CNAME    a1326.g.akamai.net.
a1326.g.akamai.net.    20    IN    A    80.154.79.59
a1326.g.akamai.net.    20    IN    A    80.154.79.64

;; Query time: 1719 msec
;; SERVER: 84.200.73.222#53(84.200.73.222)
;; WHEN: Fri Aug 23 12:42:30 2013
;; MSG SIZE  rcvd: 139


Google DNS Server

dig trials.adobe.com A

; <<>> DiG 9.8.1-P1 <<>> trials.adobe.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60656
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;trials.adobe.com.        IN    A

;; ANSWER SECTION:
trials.adobe.com.    10800    IN    CNAME    trials.adobe.com.edgesuite.net.
trials.adobe.com.edgesuite.net.    21600 IN CNAME    a1326.g.akamai.net.
a1326.g.akamai.net.    20    IN    A    193.45.10.151
a1326.g.akamai.net.    20    IN    A    193.45.10.159

;; Query time: 616 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Aug 23 12:45:06 2013
;; MSG SIZE  rcvd: 139

OpenDNS Server

dig trials.adobe.com A

; <<>> DiG 9.8.1-P1 <<>> trials.adobe.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61026
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;trials.adobe.com.        IN    A

;; ANSWER SECTION:
trials.adobe.com.    8341    IN    CNAME    trials.adobe.com.edgesuite.net.
trials.adobe.com.edgesuite.net.    19141 IN CNAME    a1326.g.akamai.net.
a1326.g.akamai.net.    20    IN    A    77.67.96.223
a1326.g.akamai.net.    20    IN    A    77.67.97.7

;; Query time: 82 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Fri Aug 23 12:46:43 2013
;; MSG SIZE  rcvd: 139

Ihr seht, Ihr bekommt verschiedene Server von Akamai angeboten. Akamai ist so ein Content Delivery Network. Schaut man sich an in welchen Ländern die Server stehen sieht man das bei Google DNS die Datei dann aus Schweden bekommt. Mit Sicherheit nicht der schnellste Weg.

201308-dns-de.png

29.8.13
Weitere Beiträge zu: DNS  

DNS Server bei opennic.org

Aufgrund der lächerlichen Diskussion über die Netzsperren bin ich recht früh von dem DNS Servers meines Providers auf einen öffentlichen "unabhängigen" DNS Server gewechselt. Der DNS Server von Google oder Opendns waren dort die Werkzeuge der Wahl.

Im Rahmen der ganzen Privacy Diskussion habe ich mich auf die Suche nach DNS Servern begeben bei denen auch die DNS Anfragen nicht aufbewahrt werden.

Denn auch mit diesen Daten lassen sich schon interessante Profile zusammenstellen.

opennic.org scheint solche DNS Server anzubieten. Mal sehen wie das funktioniert.

opennic-logo-sm411.png

 

23.8.13
Weitere Beiträge zu: DNS  

Wie kann man DNS Einträge auf verschiedenen DNS Server prüfen

Warum man das braucht erklär ich hier nicht. Nur für mich als Erinnerung

dig txt hagen-bauer.de
dig @robotns3.second-ns.com. txt hagen-bauer.de

 

23.6.13
Weitere Beiträge zu: DNS  

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Zelter, technikverliebt.


Creative Commons License
This blog is licensed under a Creative Commons License