Sebastian Mogilowskis Blog

Just another blog about administration, linux and other stuff

Debian Router Installation – Teil 2 (DHCP)

DIeser Artikel beschreibt wie man einen DNS und DHCP Server mit 2 Subnetzen mit RNDC-Key Authentifizierung unter Debian Etch installiert:

Der bereits erwähnte Debian Router soll nun um einen DHCP Server erweitert werden. Der DNS Server wurde bereits im ersten Teil der Debian Router Installation installiert. Er muss nun noch konfiguriert werden.

Dabei sollen 2 Subnetze angelegt werden, ein sicheres (192.168.0.0) sowie ein Subnetz für Gäste (192.168.1.0)

Die Konfiguration des DHCP und DNS Servers erfolgt am einfachsten mit Webmin. Leider ist das Standard Webmin DNS Modul dafür nur bedingt geeignet. Man sollte sich das Bind9 Webmin Modul herrunterladen und installieren. (http://sourceforge.net/projects/b9ddns)

Nun kann man unter Webmin im Menü “Server” den DNS Server unter “BIND 9 dynamic DNS Server” den DNS Server konfigurieren:

Zuerst müssen drei neue “Master Zones” angelegt werden:

Zone type:                      Forward
Domain name / IP subnet:        network.lan
Master server:                  ROUTER.
Email address:                  root@localhost

Zone type:                      Reverse
Domain name / IP subnet:        192.168.0
Master server:                  ROUTER.
Email address:                  root@localhost

Zone type:                      Reverse
Domain name / IP subnet:        192.168.1
Master server:                  ROUTER.
Email address:                  root@localhost

Nun muss man diese Zonen in dynamische Zonen umwandeln. Dies ist notwendig, damit der DHCP Server die Informationen des DNS Servers aktualisieren kann. Dazu wird unter “Access Controll List” eine neue “ACL” angelegt.

Name:                   dhcp
Matching addresses:     127.0.0.1
                        192.168.0.1
                        192.168.1.1

In jeder Zone kann man nun unter “Edit Zone Options” dhcp in das Feld “Allow updates from …” eintragen. Der Titel “Static Master Zone” sollte sich nun in “Dynamic Master Zone” geändert haben.

Nun kann man die /etc/resolv.conf Datei anpassen. Dort sollten aktuell die Nameserver des Providers eingetragen sein, diese können entfernt werden und durch diesen Eintrag ersetzt werden:

nameserver 127.0.0.1
search network.lan

Jetzt muss natürlich verhindert werden, das bei der nächsten ppp Einwahl wieder die Nameserver des Providers eingetragen werden. Dazu editiert man die Datei /etc/ppp/peers/dsl-provider und kommentiert den Eintrag “usepeerdns” aus.

Da der Router selbst natürlich seine IP Adressen nicht dynamisch vom DHCP Server bezieht (lokal), muss er manuell im DNS Server hinterlegt werden. Dazu bearbeitet man die “Master Zone” “network.lan”. Unter dem Menüpunkt “Address” kann man manuell einen “Address Record” hinzufügen:

Name:                   ROUTER
Address:                192.168.0.1
Create reverse record?: Yes or update existing  

Damit wäre der DNS Server soweit konfiguriert und man kann sich nun den DHCP Server vornehmen.

Installation:

aptitude install dhcp3-server

Die Konfiguration erfolgt nun wieder mit Hilfe von Webmin. Diese ist in Webmin unter “Servers – > DHCP Server” zu finden.

Wie bereits erwähnt, soll das Subnetz 192.168.0.0 als sicheres Subnetz dienen. Das heißt es sollen nur bekannte Clients und Server eine IP Adresse vom DHCP Server erhalten. Jeder dieser bekannten Clients und Server muss unter “Hosts” einzeln angelegt werden:

Hostname: TESTCLIENT
Hardware : XX:XX:XX:XX:XX:XX

Als nächstes müssen die entsprechenden Subnetze angelegt werden:

Network address:                              192.168.0.0
Netmask:                                      255.255.255.0
Address ranges:                               192.168.0.100 - 192.168.0.200
Dynamic DNS enabled?:                         Yes
Dynamic DNS reverse domain:                   0.168.192.in-addr.arpa
Dynamic DNS domain name:                      network.lan
Server is authoritative for this subnet?:     Yes
Allow unknown clients?:                       Ignore
Hosts directly in this subnet:                TESTCLIENT

Network address:                              192.168.1.0
Netmask:                                      255.255.255.0
Address ranges:                               192.168.1.100 - 192.168.1.200
Dynamic DNS enabled?:                         Yes
Dynamic DNS reverse domain:                   1.168.192.in-addr.arpa
Dynamic DNS domain name:                      network.lan
Server is authoritative for this subnet?:     Yes
Allow unknown clients?:                       Allow

Außerdem muss man die globalen Clienteinstellungen unter “Edit Client Options” anpassen:

Domain name: network.lan
DNS servers: 192.168.0.1 192.168.1.1
Dynamic DNS enabled? Yes
Dynamic DNS update style: Interim
Allow unknown clients?: Ignore

Zum Schluß müssen noch die entsprechenden dynamischen Zonen, welche im DNS Server angelegt wurden, im DHCP Server eingetragen werden. Dies geschieht über “Add a new DNS zone”:

Name of zone:           network.lan
IP of primary NS:       127.0.0.1

Name of zone:           0.168.192.in-addr.arpa
IP of primary NS:       127.0.0.1

Name of zone:           1.168.192.in-addr.arpa
IP of primary NS:       127.0.0.1

Unter “Configfile” kann man sich nun die entsprechend erzeugten Einträge ansehen. Hier muss man die “zone” Einträge suchen und die “key ;” Zeilen auskommentieren. Auf diese Einträge werden wir später noch eingehen.

Jetzt fehlen nur noch die entsprechenden Rechte und man kann DNS und DHCP Server mit der neuen Konfiguration starten:

chmod g+w /etc/bind
/etc/init.d/bind9 restart
/etc/init.d/dhcp3-server restart

Mit “dhclient eth0” kann man nun auf dem Testclient eine IP-Adresse vom DHCP Server anfordern. Diese sollte man auch im Webmin unter “DHCP Leases” einsehen können. Zusätzlich sollte im DNS Server auch in jeder der drei angelegten Zonen unter “Address” ein Eintrag mit dem Namen und der Adresse des Testclients angelegt worden sein.

Nun wollen wir auf die “key” Einträge zurückkommen. Diese dienen dazu die Verbindung zwischen DNS und DHCP Server weiter abzusichern. Im Syslog findet man aktuell noch Einträge dieser Art:

named[30576]: zone 'network.lan' allows updates by IP address, which is insecure
named[30576]: zone '0.168.192.in-addr.arpa' allows updates by IP address, which is insecure
named[30576]: zone '1.168.192.in-addr.arpa' allows updates by IP address, which is insecure

Dies liegt daran, dass die Authentifizierung anhand einer ACL, welche beim DNS Server eingerichtet wurde funktioniert. (siehe Beginn des Artikels) Diese Methode ist einfacher, und ist für die ersten Funktionstests ausreichend. Nun soll sie durch eine RNDC-Key Authentifizierung ersetzt werden. Der dafür notwendige Schlüssel wurde bereits bei der “bind9” installation automatisch erzeugt und in der Datei /etc/bind/rndc.key gespeichert. Zuerst muss dieser Key nun kopiert werden:

cp /etc/bind/rndc.key /etc/rndc.conf

Danach wird die Datei /etc/rndc.conf bearbeitet, sodass sie folgendes Aussehen hat:

key "rndc-key" {
    algorithm hmac-md5;
    secret "HERE_IS_YOUR_OWN_KEY";
};
options {
    default-server localhost;
    default-key "rndc-key";
};

Nun muss dieser Schlüssel in die Datei /etc/bind/named.conf eingebunden werden. Dazu muss zuerst der entsprechende ACL-Eintrag

acl dhcp {
    127.0.0.1;
    192.168.0.1;
    192.168.1.1;
};

entfernt werden und durch den Schlüsseleintrag ersetzt werden.

include "/etc/bind/rndc.key";
controls {
    inet 127.0.0.1 allow {localhost;} keys {rndc-key;};
};

Danach muss bei jeder Zone im DNS Server der Eintrag

allow-update { dhcp; };

durch diesen ersetzt werden

allow-update { key "rndc-key"; };

Nun kann man auch den DHCP Server auf die neue authentifizierung anpassen indem man folgende Zeile in der Datei /etc/dhcp3/dhcpd.conf hinzufügt:

include "/etc/bind/rndc.key";

Die vorher auskommentierten “key ;” Einträge werden nun durch

key rndc-key ;

ersetzt.

Zum Schluss muss man nur noch DHCP und DNS Server neu starten

/etc/init.d/bind9 restart
/etc/init.d/dhcp3-server restart

Links:

http://www.linux-home-server.de
http://wiki.slashconcept.com/index.php/BIND_9_DNS_Server_unter_Debian_GNU_Linux_4.0_Etch_Howto_(LAN)
http://linuxwiki.de/debian-dhcp
http://www.howtoforge.com/dhcp_server_linux_debian_sarge
http://www.schoki.org/ddns/ddns.html

, , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.