Entwicklungsumgebung/DHCP
Diese Seite sollte nochmals überarbeitet werden. Eine Begründung befindet sich in der Regel unter Diskussion (oben). |
DHCP-Server (dynamic host configuration protocol)
Installation des DHCP-Servers
Ein DHCP-Server versorgt die an Ihm angeschlossenen Clientrechner auf Wunsch mit IP-Adressen, Netzwerkeinstellungen und vielen weiteren Informationen.
Zuerst wird das Metapaket installiert:
aptitude install dhcp3-server
Nun lesen Sie eine wichtige Meldung, die Umstellung auf "authoritative" wird aber erst im folgenden Abschnitt passieren.
In der weiteren Installation versucht der DHCP-Server einen Start, was aber auf Grund der fehlenden Konfiguration misslingen wird. Am Bildschirm erscheint die Meldung:
Starting DHCP server: failed!
Den Anfang der Konfiguration macht die Datei "/etc/default/dhcp3-server". Dort tragen wir folgende Zeile ein:
INTERFACES="eth1"
Ab sofort weiß der DHCP-Server, auf welcher Netzwerkkarte er überhaupt auf Anfragen reagieren soll. Er wird ab sofort nicht auf Anfragen auf der ersten Netzwerkkarte "eth0" (das ist die Internetverbindung, siehe Entwicklungsumgebung/Netzwerkkarte) reagieren.
Das war noch nicht die ganze Konfiguration. Aber auch ohne fertige Konfiguration des DHCP-Servers installieren wir weiter. Der nächste Teil der Installation stellt die LDAP-Unterstützung für DHCP bereit:
aptitude install dhcp3-server-ldap
Dieser Installationsschritt sollte ohne Nachfragen in wenigen Sekunden fehlerlos durchlaufen.
Jetzt kann die zu Konfiguration notwendige Schema-Datei entpackt und eingebunden werden. Führen Sie dazu folgende drei Befehle aus:
cd /usr/share/doc/dhcp3-server-ldap gunzip dhcp.schema.gz cp dhcp.schema /etc/ldap/schema/
Bearbeiten Sie die Datei /etc/ldap/slapd.conf
im Abschnitt "Schema and objectClass" und fügen dort am Ende eine weitere Zeile "..dhcp.schema" ein:
# Schema and objectClass definitions
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/dhcp.schema
Abschließend starten Sie noch den LDAP-Server neu:
/etc/init.d/slapd restart
Konfiguration des DHCP-Servers
Nun kann endlich die weitere Konfiguration des DHCP-Servers und des von ihm verwalteten DNS-Servers erfolgen.
Nacharbeiten am DNS Server
Zuerst wird ein Key erzeugt, damit später auch die DNS-Anfragen für dynamisch erzeugte Hosts über DHCP und somit aus dem LDAP beantwortet werden können. Die dafür notwendige DNS-Einrichtung (Domain Name System) muss bereits erfolgt sein (siehe Entwicklungsumgebung/DNS).
Um zu verhindern, dass nicht autorisierte Benutzer von Ihrem System aus den delixs-DNS-Server kontrollieren, wird das Zugriffsrecht durch einen gemeinsam verwendeten Schlüssel ausdrücklich auf bestimmte Hosts beschränkt.
Diesen Schlüssel (Key) erstellen Sie jetzt mit dem Befehl:
rndc-confgen -a
Sie finden nun den neu erzeugten Key in der Datei "/etc/bind/rndc.key". Die Datei sollte etwa so aussehen:
key "rndc-key" { algorithm hmac-md5; secret "MNQ60MTqexpanaxpuDvCaGsgA=="; };
Bevor Sie weiter an der Konfiguration arbeiten, kontrollieren Sie unbedingt, ob der nscd abgeschaltet ist.
/etc/init.d/nscd status
Als Ausgabe muss "not running" erfolgen. Wenn dies nicht der Fall ist, schalten Sie den "nscd" jetzt aus:
/etc/init.d/nscd stop
Hinweis: Falls Sie ein Komma, eine Klammer oder einen anderen noch so kleinen Fehler beim Schreiben der Konfiguration machen, wird der Server später nicht mehr starten. Gehen Sie also sehr gründlich vor.
Die Datei "/etc/bind/named.conf" enthält die globalen Einstellungen des DNS Servers. Dort wird der erzeugte Key bekannt gemacht, so dass der DNS Server künftig weiß, dass es sich um einen genehmigten Key handelt. Fügen Sie in die Datei folgenden Abschnitt ein:
controls { inet 127.0.0.1 allow {localhost; } keys { "rndc-key"; }; };
Auch die lokale Konfiguration kann jetzt erweitert werden. Die Datei "/etc/bind/named.conf.local" enthält die Definition der eigenen Zone-Dateien. Öffnen Sie diese Datei im Editor und fügen folgende Zeilen ein:
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization zone "delixs-schule.de" { type master; file "/etc/bind/db.delixs-schule.de"; allow-update { key "rndc-key"; }; notify yes; }; zone "0.100.10.in-addr.arpa." { type master; file "/etc/bind/db.10.100.0"; allow-update { key "rndc-key"; }; notify yes; }; include "/etc/bind/rndc.key"; //include "/etc/bind/zones.rfc1918";
Für das name server control utility (kurz: rndc) erstellen Sie jetzt die Konfigurationsdatei und passen auch gleich die notwendigen Rechte an:
touch /etc/rndc.conf chmod 640 /etc/rndc.conf chown bind:bind /etc/rndc.conf
In diese Datei kommt nun folgender Inhalt:
include "/etc/bind/rndc.key"; options { default-server 127.0.0.1; default-key "rndc-key"; };
Abschließend werden nun noch die Daten mittels "rndc" (name server control utility)
neu eingelesen:
rndc reload
Damit sind alle Nacharbeiten am DNS Server abgeschlossen.
DHCP Server vorbereiten
Als nächstes öffnen Sie die Datei /etc/dhcp3/dhcpd.conf
und ändern diese in den folgenden Abschnitten:
# globale Einstellungen server-identifier 10.100.0.1; # das Booten vom Netz und den Empfang einer IP Adresse erlauben allow bootp; allow booting; # The ddns-updates-style parameter # Der DHCPd soll ddns machen ddns-updates on; ddns-update-style interim; ddns-domainname "delixs-schule.de."; ddns-rev-domainname "in-addr.arpa."; # Die Clients sollen kein ddns selber machen ignore client-updates; # This is the key so that DHCP can authenticate it's self to BIND9 include "/etc/bind/rndc.key"; # option definitions common.. option-domain-name "delixs-schule.de"; option-domain-servers alix.delixs-schule.de; default-lease-time 3600; # 1 Stunde max-lease-time 7200; # 1 Tag get-lease-hostnames on; # If this DHCP server... authoritative; # Use this to send dhcp messages... log-facility local7; # Options option broadcast-address 10.100.0.255; option domain-name "delixs-schule.de"; option domain-name-servers 10.100.0.1; option netbios-dd-server 10.100.0.1; option netbios-name-servers 10.100.0.1; # SAMBA option netbios-node-type 8; # First use WINS, then broadcast option netbios-scope ""; option routers 10.100.0.1; option subnet-mask 255.255.255.0; option time-servers 10.100.0.1; option interface-mtu 1492; option ip-forwarding off; option ntp-servers 10.100.0.1; # WPAD - Web Proxy Autodiscovery Protocol option wpad code 252 = text; option wpad "http://wpad.delixs-schule.de/wpad.pac"; # This is the communication zone zone delixs-schule.de. { primary 127.0.0.1; key rndc-key; } zone 0.100.10.in-addr.arpa. { primary 127.0.0.1; key rndc-key; } subnet 10.100.0.0 netmask 255.255.255.0 { range 10.100.0.40 10.100.0.250; option broadcast-address 10.100.0.255; option routers 10.100.0.1; allow unknown-clients; filename "/pxelinux.0"; next-server 10.100.0.1; zone 0.100.10.in-addr.arpa. { primary 10.100.0.1; key "rndc-key"; } zone delixs-schule.de. { primary 10.100.0.1; key "rndc-key"; } }
Alle anderen Einstellungen bleiben so, wie sie sind. Jetzt wird diese Grundkonfiguration in den LDAP eingebaut. Dafür wird das Konvertierungsprogramm zuerst benötigt:
cd /usr/share/doc/dhcp3-server-ldap gunzip dhcpd-conf-to-ldap.pl.gz
Dieses Programm wird nun ins Homeverzeichnis von "root" kopiert und ausführbar gemacht. Danach erfolgt die Konvertierung der bisherigen "dhcpd.conf" in eine ldif-Datei.
cp dhcpd-conf-to-ldap.pl /root chmod +x /root/dhcpd-conf-to-ldap.pl /root/dhcpd-conf-to-ldap.pl --basedn "dc=delixs-schule,dc=de" < /etc/dhcp3/dhcpd.conf > /root/dhcpd.ldif
Dieser Befehl wird in einer einzigen Zeile eingetippt und dauert bei der Ausführung eine Weile. Nach einigen Minuten sollte die Datei "/root/dhcpd.ldif" fertig erzeugt vorliegen.
Weblinks
- DHCP: http://www.planet-rcs.de/article/dhcp_howto/
- WPAD: http://www.cupracer.de/archives/46
- wpad.pac: http://wiki.bsdforen.de/howto/automatische_proxy-konfiguration