Linux - Netzwerk und Serveradminstration DNS: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= eigener DNS Server = {{#drawio:5102-dns}} == Vorbereitungen == * VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen * Der Host soll im ''DMZ''-Netzwerk…“)
 
 
(45 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= eigener DNS Server =
+
=Vorab Theorie=
 +
* [[DNS Grundlagen]]
 +
* [[DNS Records]]
 +
* [[DNS Master - Slave - Forward]]
 +
 
 +
 
 +
= Eigener DNS Server =
 
{{#drawio:5102-dns}}
 
{{#drawio:5102-dns}}
 +
=Pseudo Top-Level-Domain=
 +
{{#drawio:Pseudo Top-Level-Domain}}
  
 +
= Pseudo-Top-Level Domäne =
 +
* Um die Domänen der anderen Labore aufzulösen ist ein Forwarder nötig
 +
* Dieser zeigt auf den entsprechenden DNS-Server der Domäne, sodass die Zonen nur einmal definiert werden müssen
 
== Vorbereitungen ==
 
== Vorbereitungen ==
 
* VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
 
* VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
 
* Der Host soll im ''DMZ''-Netzwerk liegen
 
* Der Host soll im ''DMZ''-Netzwerk liegen
* IP-Adresse herausfinden über das DHCP-Log oder die Konsol
 
 
* statische IP-Adresse nach dem Netzwerkplan setzen (''/etc/network/interfaces'')
 
* statische IP-Adresse nach dem Netzwerkplan setzen (''/etc/network/interfaces'')
 
* Hostname ändern zu ''ns''
 
* Hostname ändern zu ''ns''
 
* SSH-Server anpassen
 
* SSH-Server anpassen
 
* SSH-Schlüssel des Kit Hosts für User ''kit''  hinterlegen
 
* SSH-Schlüssel des Kit Hosts für User ''kit''  hinterlegen
===Daten===
+
=== Netzkonfiguration DNS-Server (DMZ) ===
*NET: DMZ
+
 
*IP 10.88.2XX.21/24
+
{| class="wikitable" style="background-color: #f2f2f2;"
*GW 10.88.2XX.1
+
! Parameter !! Wert !! Erläuterung
*NS 192.168.6.88 Vorläufig
+
|-
*NA ns.it2XX.int
+
| '''Netzwerk (NIC)''' || DMZ || Interface-Zuweisung in VirtualBox
*Zu installieren apt install bind9 - Es könnte nun auch named
+
|-
*[[Anpassen der Virtuellen Maschinen Netzwerk und Serveradministration DNS]]
+
| '''IP''' || 10.88.2XX.21 || Statische IP
 +
|-
 +
| '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge
 +
|-
 +
| '''GW''' || 10.88.2XX.1 || GATEWAY
 +
|-
 +
| '''NS''' || 192.168.6.88 || Resolver
 +
|-
 +
| '''FQDN''' || ns.it2XX.int || Fully Qualified Domain Name
 +
|-
 +
| '''SHORT''' || ns || Short Name
 +
|-
 +
| '''DOM''' || it2XX.int|| Domain Name
 +
|}
 +
;Anpassen des Templates
 +
*[[Anpassen des Debian Templates]]
 +
 
 +
 
 +
==Installation==
 +
*apt install bind9
 +
 
 +
=DNS Umsetzung=
 +
==Installation==
 +
*apt install bind9
 +
 
 +
==Stop==
 +
*systemctl stop named
 +
==Start==
 +
*systemctl start named
 +
==Restart==
 +
*systemctl restart named
 +
==Status==
 +
*systemctl status named
 +
 
 +
 
 +
==Hauptkonfiguration==
 +
Standardmäßig ist die Konfiguration von bind9 auf mehrere Dateien aufgeteilt:
 +
===/etc/bind/named.conf===
 +
#Diese Datei inkludiert einfach nur die anderen 3 Dateien
 +
===Allgemeine Option zum Nameserver===
 +
include "/etc/bind/named.conf.options";
 +
 
 +
===Hier kommen die eignen Zonen rein===
 +
include "/etc/bind/named.conf.local";
 +
===Hier die Default Zonen===
 +
include "/etc/bind/named.conf.default-zones";
 +
 
 +
==/etc/bind/named.conf.options==
 +
===Berechtigungen und Einschränkungen===
 +
<pre>
 +
options {
 +
  directory "/var/cache/bind";
 +
  forwarders { <DNSGW>; };
 +
  allow-query { 0.0.0.0/0; };
 +
  allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 127.0.0.1; };
 +
  allow-transfer {127.0.0.1; };
 +
  dnssec-validation no;
 +
  listen-on-v6 { none; };
 +
  listen-on { any; };
 +
};
 +
</pre>
 +
====Erklärungen====
 +
;allow-query { 0.0.0.0/0; };
 +
*Diese Rechner dürfen den Nameserver nach dem von ihm verwalteten Zonen befragen.
 +
;allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 127.0.0.1; };
 +
*Diese Rechner dürfen den Nameserver nach Einträgen befragen die er nicht selbst beantworten kann.
 +
;allow-transfer {127.0.0.1; };
 +
*Diese Rechner dürfen einen axfr Abfrage durchführen.
 +
 
 +
=Testen=
 +
*named-checkconf
 +
=Restart=
 +
*systemctl restart named
 +
 
 +
=Konfigurations=
 +
==/etc/bind/named.conf.default-zones==
 +
<pre>
 +
#Standardzonen
 +
zone "." {
 +
  type hint;
 +
  file "/usr/share/dns/root.hints";
 +
};
 +
zone "localhost" {
 +
  type master;
 +
  file "/etc/bind/db.local";
 +
};
 +
zone "127.in-addr.arpa" {
 +
  type master;
 +
  file "/etc/bind/db.127";
 +
};
 +
zone "0.in-addr.arpa" {
 +
  type master;
 +
  file "/etc/bind/db.0";
 +
};
 +
zone "255.in-addr.arpa" {
 +
  type master;
 +
  file "/etc/bind/db.255";
 +
};
 +
</pre>
 +
==/etc/bind/named.conf.local==
 +
<pre>
 +
//Standardmässig leer
 +
//Hier werden die sogenanten Zonen angelegt.
 +
zone "it2xx.int" {
 +
        type master;
 +
        file "it2xx.int";
 +
        };
 +
  zone "2xx.88.10.in-addr.arpa" {
 +
        type master;
 +
        file "2xx.88.10.in-addr.arpa";
 +
      };
 +
</pre>
 +
 
 +
=Konfigurationsverzeichnis=
 +
/var/cache/bind
 +
 
 +
=Forward Zonen Datei ohne Secundary DNS=
 +
*Die Zonendatei enthält die Informationen zu den Adressen, und sieht folgendermaßen aus:
 +
*vi /var/cache/bind/it2xx.int
 +
<pre>
 +
$TTL 300        ; 5 minutes
 +
@                      IN SOA  ns.it2XX.int. technik.it2XX.int. (
 +
                              2025062501 ; serial
 +
                              14400      ; refresh (4 hours)
 +
                              3600      ; retry (1 hour)
 +
                              3600000    ; expire (5 weeks 6 days 16 hours)
 +
                              86400      ; minimum (1 day)
 +
                              )
 +
                      NS      ns.it2xx.int.
 +
                      MX 10  mail.it2xx.int.   
 +
fw                    IN      A      10.88.2XX.1
 +
ns                    IN      A      10.88.2XX.21
 +
sftp                  IN      A      10.88.2XX.3
 +
proxy                  IN      A      10.88.2XX.4
 +
ntp                    IN      A      10.88.2XX.17
 +
dhcp       IN      A      172.26.2XX.2 
 +
smb       IN      A      10.2XX.1.2 
 +
ldap       IN      A      10.2XX.1.3 
 +
</pre>
 +
 
 +
=Check=
 +
*named-checkzone  it213.int /var/cache/bind/it213.int
 +
zone it213.int/IN: loaded serial 2011090204
 +
OK
 +
 
 +
=Reverse Zonen Datei=
 +
*vi /var/cache/bind/2XX.88.10.in-addr.arpa
 +
$TTL 1     
 +
@                      IN SOA  ns.it2XX.int. technik.it2XX.int. (
 +
                                2025062501 ; serial
 +
                                14400      ; refresh (4 hours)
 +
                                3600      ; retry (1 hour)
 +
                                3600000    ; expire (5 weeks 6 days 16 hours)
 +
                                86400      ; minimum (1 day)
 +
                                )
 +
                        IN      NS      ns.it2XX.int.
 +
1                      IN      PTR    fw.it2XX.int.
 +
21                    IN      PTR    ns.it2XX.int.
 +
3                      IN      PTR    sftp.it2XX.int.
 +
4                      IN      PTR    proxy.it2XX.int.
 +
17                    IN      PTR    ntp.it2XX.int.
 +
 
 +
=Check=
 +
*named-checkzone  213.88.10.in-addr.arpa /var/cache/bind/213.88.10.in-addr.arpa
 +
zone 213.88.10.in-addr.arpa/IN: loaded serial 2011090204
 +
OK
 +
 
 +
=Restart=
 +
*systemctl restart named
 +
 
 +
=Finaler Check=
 +
;Zone
 +
*dig @127.0.0.1 it213.int -t axfr
 +
;Reverse Zone
 +
*dig @127.0.0.1  213.88.10.in-addr.arpa  -t axfr
 +
 
 +
=ändern der /etc/resolv.conf=
 +
nameserver 127.0.0.1
 +
search it2xx.int
 +
=Logs=
 +
;Aktualisierte Log von named
 +
*journalctl -fu named
 +
;Die letzten 20 Log Zeilen vom named
 +
*journalctl -n 20 -u named
 +
 
 +
=Sind die Ports geöffnet=
 +
*ss -lntpu | grep named
  
== interne Namensauflösung ==
+
=Tests=
* Durch das [[DNS|Domain Name System]] können wir Namen an IP-Adressen zuweisen und diese auflösen
+
*[[host]]
* Diese sollten einfacher zu merken sein, als IPv4- oder IPv6-Adressen
+
*[[dig]]
* Jedes Labor soll eine eigene Domäne mit dem Schema '''netz''xx''.lab''' verwalten
+
*[[nslookup]]
* Erstellen Sie hierzu auch die jeweilige Reverse-Lookup-Zone '''0.''xx''.10.in-addr.arpa'''
 
* Der DHCP-Server muss auch angepasst werden, damit Clients den internen DNS-Server bekommen
 
* Für die Kommunikation zwischen den DNS-Servern müssen entweder die entsprechenden [[ip route|Routen]] gesetzt werden oder über [[DNAT|Firewall-Regeln]] Portforwarding aktiviert werden
 
==DNS Umsetzung==
 
*[[DNS Linux - Netzwerk und Serveradministration - Skript]]
 
  
 
==DNS Aufgabe Reverse Lookup Zone LAN & SERVERS==
 
==DNS Aufgabe Reverse Lookup Zone LAN & SERVERS==
 
*[[DNS Linux - Netzwerk und Serveradministration - Reverse Aufgabe]]
 
*[[DNS Linux - Netzwerk und Serveradministration - Reverse Aufgabe]]
 +
=DNS Secondary Nameserver=
 +
*Als Beispiel dienen die Domain it213.int und it214.int
 +
==Änderungen in der /etc/bind/named.conf.options==
 +
*Der Slave Nameserver muss einen Trandfer durchführen können.
 +
*Er muss unter allow-transfer eingetragen werden
 +
*Der Transfer erfplg im Gegensatz zu den normalen Record abfragen über TCP
 +
*cat  /etc/bind/named.conf.options
 +
options {
 +
  directory "/var/cache/bind";
 +
  forwarders { 192.168.16.88; };
 +
  allow-query { any; };
 +
  allow-recursion { 10.88.213.0/24; 172.26.213.0/24; 10.213.1.0/24; 127.0.0.1; };
 +
  allow-transfer { 127.0.0.1;  '''<span style="color:red">10.88.214.21;</span>''' };
 +
  dnssec-validation no;
 +
  listen-on-v6 { none; };
 +
  listen-on { any; };
 +
};
 +
 +
==Änderungen in der /etc/bind/named.conf.local==
 +
*Es müssen zwei neute Zonen eingetragen.
 +
*Diese werden vom Masterserver gezogen.
 +
*Sie werden in einem speziellen Format auf der Platte abgelegt.
  
=Pseudo Top-Level-Domain=
+
*cat  /etc/bind/named.conf.local
{{#drawio:Pseudo Top-Level-Domain}}
+
'''<span style="color:red">zone "it214.int" {</span>
 +
    '''<span style="color:red">type slave;</span>
 +
    '''<span style="color:red">masters { 10.88.214.21; };</span>
 +
    '''<span style="color:red">file "/var/cache/bind/it214.int";</span>
 +
'''<span style="color:red">};</span>
 +
 
 +
'''<span style="color:red">zone "214.88.10.in-addr.arpa" {</span>
 +
    '''<span style="color:red">type slave;</span>
 +
    '''<span style="color:red">masters { 10.88.214.21; };</span>
 +
    '''<span style="color:red">file "/var/cache/bind/214.88.10.in-addr.arpa";</span>
 +
'''<span style="color:red">}};</span>
 +
 
 +
==Änderungen in /var/cache/bind/it213.int==
 +
                      NS      ns.it213.int.
 +
                      '''<span style="color:red">NS      ns.it214.int.</span>'''
 +
 
 +
==Änderungen in /var/cache/bind/213.88.10.in-addr.arpa==
 +
                      NS      ns.it213.int.
 +
                      '''<span style="color:red">NS      ns.it214.int.</span>'''
  
= Pseudo-Top-Level Domäne =
+
==Abschluss==
* Um die Domänen der anderen Labore aufzulösen ist ein Forwarder nötig
+
*Wenn die Änderungen auf beiden Nameserver gemacht wurden kann man named neustarten.
* Dieser zeigt auf den entsprechenden DNS-Server der Domäne, sodass die Zonen nur einmal definiert werden müssen
+
==Debbuging==
 +
===auf ns.it214.int===
 +
*journal -fu named
 +
===auf ns.it213.int===
 +
;Manueller Zonentransfer
 +
*dig -t axfr  @10.88.214.21 it213.int
 +
*dig -t axfr  @10.88.214.21 213.88.10.in-addr.arpa
 +
;Automatischer Zonentransfer
 +
*systemctl restart named
 +
===auf ns.it214.int===
 +
*tcpdump -ni enp0s3 port 53
 +
===auf ns.it213.int===
 +
;A Record
 +
*dig -t a  @10.88.214.21 sftp.it213.int
 +
;Zonentranfer
 +
*dig -t axfr  @10.88.214.21 it213.int
 +
;Ereknntniss Zonetransfer läuft über TCP und A-Rcord über UDP.

Aktuelle Version vom 1. April 2026, 13:41 Uhr

Vorab Theorie


Eigener DNS Server

Pseudo Top-Level-Domain

Pseudo-Top-Level Domäne

  • Um die Domänen der anderen Labore aufzulösen ist ein Forwarder nötig
  • Dieser zeigt auf den entsprechenden DNS-Server der Domäne, sodass die Zonen nur einmal definiert werden müssen

Vorbereitungen

  • VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
  • Der Host soll im DMZ-Netzwerk liegen
  • statische IP-Adresse nach dem Netzwerkplan setzen (/etc/network/interfaces)
  • Hostname ändern zu ns
  • SSH-Server anpassen
  • SSH-Schlüssel des Kit Hosts für User kit hinterlegen

Netzkonfiguration DNS-Server (DMZ)

Parameter Wert Erläuterung
Netzwerk (NIC) DMZ Interface-Zuweisung in VirtualBox
IP 10.88.2XX.21 Statische IP
CIDR 24 Classless Inter-Domain Routing Präfixlänge
GW 10.88.2XX.1 GATEWAY
NS 192.168.6.88 Resolver
FQDN ns.it2XX.int Fully Qualified Domain Name
SHORT ns Short Name
DOM it2XX.int Domain Name
Anpassen des Templates


Installation

  • apt install bind9

DNS Umsetzung

Installation

  • apt install bind9

Stop

  • systemctl stop named

Start

  • systemctl start named

Restart

  • systemctl restart named

Status

  • systemctl status named


Hauptkonfiguration

Standardmäßig ist die Konfiguration von bind9 auf mehrere Dateien aufgeteilt:

/etc/bind/named.conf

#Diese Datei inkludiert einfach nur die anderen 3 Dateien

Allgemeine Option zum Nameserver

include "/etc/bind/named.conf.options";

Hier kommen die eignen Zonen rein

include "/etc/bind/named.conf.local";

Hier die Default Zonen

include "/etc/bind/named.conf.default-zones";

/etc/bind/named.conf.options

Berechtigungen und Einschränkungen

options {
  directory "/var/cache/bind";
  forwarders { <DNSGW>; };
  allow-query { 0.0.0.0/0; };
  allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 127.0.0.1; };
  allow-transfer {127.0.0.1; };
  dnssec-validation no;
  listen-on-v6 { none; };
  listen-on { any; };
};

Erklärungen

allow-query { 0.0.0.0/0; };
  • Diese Rechner dürfen den Nameserver nach dem von ihm verwalteten Zonen befragen.
allow-recursion { 10.88.2XX.0/24; 172.26.2XX.0/24; 10.2XX.1.0/24; 127.0.0.1; };
  • Diese Rechner dürfen den Nameserver nach Einträgen befragen die er nicht selbst beantworten kann.
allow-transfer {127.0.0.1; };
  • Diese Rechner dürfen einen axfr Abfrage durchführen.

Testen

  • named-checkconf

Restart

  • systemctl restart named

Konfigurations

/etc/bind/named.conf.default-zones

#Standardzonen
zone "." {
  type hint;
  file "/usr/share/dns/root.hints";
};
zone "localhost" {
  type master;
  file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
  type master;
  file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
  type master;
  file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
  type master;
  file "/etc/bind/db.255";
};

/etc/bind/named.conf.local

 //Standardmässig leer
 //Hier werden die sogenanten Zonen angelegt.
 zone "it2xx.int" {
        type master;
        file "it2xx.int";
        };
  zone "2xx.88.10.in-addr.arpa" {
        type master;
        file "2xx.88.10.in-addr.arpa";
      };

Konfigurationsverzeichnis

/var/cache/bind

Forward Zonen Datei ohne Secundary DNS

  • Die Zonendatei enthält die Informationen zu den Adressen, und sieht folgendermaßen aus:
  • vi /var/cache/bind/it2xx.int
$TTL 300        ; 5 minutes
@                       IN SOA  ns.it2XX.int. technik.it2XX.int. (
                               2025062501 ; serial
                               14400      ; refresh (4 hours)
                               3600       ; retry (1 hour)
                               3600000    ; expire (5 weeks 6 days 16 hours)
                               86400      ; minimum (1 day)
                               )
                       NS      ns.it2xx.int.
                       MX 10   mail.it2xx.int.     
fw                     IN      A       10.88.2XX.1
ns                     IN      A       10.88.2XX.21
sftp                   IN      A       10.88.2XX.3
proxy                  IN      A       10.88.2XX.4
ntp                    IN      A       10.88.2XX.17
dhcp		       IN      A       172.26.2XX.2  
smb		       IN      A       10.2XX.1.2  
ldap		       IN      A       10.2XX.1.3  

Check

  • named-checkzone it213.int /var/cache/bind/it213.int
zone it213.int/IN: loaded serial 2011090204
OK

Reverse Zonen Datei

  • vi /var/cache/bind/2XX.88.10.in-addr.arpa
$TTL 1       
@                       IN SOA  ns.it2XX.int. technik.it2XX.int. (
                               2025062501 ; serial
                               14400      ; refresh (4 hours)
                               3600       ; retry (1 hour)
                               3600000    ; expire (5 weeks 6 days 16 hours)
                               86400      ; minimum (1 day)
                               )
                       IN      NS      ns.it2XX.int.
1                      IN      PTR     fw.it2XX.int.
21                     IN      PTR     ns.it2XX.int.
3                      IN      PTR     sftp.it2XX.int.
4                      IN      PTR     proxy.it2XX.int.
17                     IN      PTR     ntp.it2XX.int.

Check

  • named-checkzone 213.88.10.in-addr.arpa /var/cache/bind/213.88.10.in-addr.arpa
zone 213.88.10.in-addr.arpa/IN: loaded serial 2011090204
OK

Restart

  • systemctl restart named

Finaler Check

Zone
  • dig @127.0.0.1 it213.int -t axfr
Reverse Zone
  • dig @127.0.0.1 213.88.10.in-addr.arpa -t axfr

ändern der /etc/resolv.conf

nameserver 127.0.0.1
search it2xx.int

Logs

Aktualisierte Log von named
  • journalctl -fu named
Die letzten 20 Log Zeilen vom named
  • journalctl -n 20 -u named

Sind die Ports geöffnet

  • ss -lntpu | grep named

Tests

DNS Aufgabe Reverse Lookup Zone LAN & SERVERS

DNS Secondary Nameserver

  • Als Beispiel dienen die Domain it213.int und it214.int

Änderungen in der /etc/bind/named.conf.options

  • Der Slave Nameserver muss einen Trandfer durchführen können.
  • Er muss unter allow-transfer eingetragen werden
  • Der Transfer erfplg im Gegensatz zu den normalen Record abfragen über TCP
  • cat /etc/bind/named.conf.options
options {
  directory "/var/cache/bind";
  forwarders { 192.168.16.88; };
  allow-query { any; };
  allow-recursion { 10.88.213.0/24; 172.26.213.0/24; 10.213.1.0/24; 127.0.0.1; };
  allow-transfer { 127.0.0.1;  10.88.214.21; };
  dnssec-validation no;
  listen-on-v6 { none; };
  listen-on { any; };
};

Änderungen in der /etc/bind/named.conf.local

  • Es müssen zwei neute Zonen eingetragen.
  • Diese werden vom Masterserver gezogen.
  • Sie werden in einem speziellen Format auf der Platte abgelegt.
  • cat /etc/bind/named.conf.local
zone "it214.int" {
    type slave;
    masters { 10.88.214.21; };
    file "/var/cache/bind/it214.int";
}; 
zone "214.88.10.in-addr.arpa" {
    type slave;
    masters { 10.88.214.21; };
    file "/var/cache/bind/214.88.10.in-addr.arpa";
}};

Änderungen in /var/cache/bind/it213.int

                      NS      ns.it213.int.
                      NS      ns.it214.int.

Änderungen in /var/cache/bind/213.88.10.in-addr.arpa

                      NS      ns.it213.int.
                      NS      ns.it214.int.

Abschluss

  • Wenn die Änderungen auf beiden Nameserver gemacht wurden kann man named neustarten.

Debbuging

auf ns.it214.int

  • journal -fu named

auf ns.it213.int

Manueller Zonentransfer
  • dig -t axfr @10.88.214.21 it213.int
  • dig -t axfr @10.88.214.21 213.88.10.in-addr.arpa
Automatischer Zonentransfer
  • systemctl restart named

auf ns.it214.int

  • tcpdump -ni enp0s3 port 53

auf ns.it213.int

A Record
  • dig -t a @10.88.214.21 sftp.it213.int
Zonentranfer
  • dig -t axfr @10.88.214.21 it213.int
Ereknntniss Zonetransfer läuft über TCP und A-Rcord über UDP.