File dhcp.LIESMICH of Package dhcp
/* README.SuSE zum ISC DHCP-Server */
Bevor Sie dhcpd benutzen koennen, muessen Sie ihn ueber
- /etc/sysconfig/dhcpd (grundsaetzliche Einst.)
und
- /etc/dhcpd.conf (Konfigurationsdatei)
konfigurieren. Eine Beispielkonfiguration finden Sie unter
/usr/share/doc/packages/dhcp-server/
Paketfilter
===========
Dieses Paket enthaelt ein zusaetzliches dhcpd-Binary (/usr/sbin/dhcpd.bsd), das
so kompiliert ist, dass es BSD Sockets anstatt LPF (Linux Packet
Filter) verwendet.
Mit diesem binary ist es moeglich, den Netzwerkverkehr des Servers mit dem
Paketfilter des Kernels zu filtern, waehrend die sonst verwendeten Raw Sockets
den Paketfilter umgehen. Allerdings kann es dadurch in seltenen Faellen zu
Inkompatibilitaeten mit manchen DHCP-Clients (oder dazwischengeschalteten
DHCP-Gateways) kommen. Mehr Informationen und moegliche Seiteneffekte wurden
hier diskutiert:
http://marc.theaimsgroup.com/?l=dhcp-server&m=108791973729847&w=2
Es besteht die Moeglichkeit, das verwendete Binary ueber DHCPD_BINARY in
/etc/sysconfig/dhcpd festzulegen.
Option 119 (Searchlist)
=======================
Fuer diese relativ neue Option (DHCP Option 119, RFC3397) gibt es noch keinen
direkten Support im DHCP Server. Sie muss als freie Option definiert werden,
wenn der zu sendende String im DNS-Format komprimiert wurde, und kann
folgendermassen in die Konfiguration geschrieben werden:
option searchlist code 119 = string;
option searchlist "\x07domain1\x07example\x03com\x00\x07domain2\xc0\x08";
Die erste Anweisung ist immer global zu verwenden; die zweite kann sich auch in
einem Subnet befinden.
Der komprimierte String kann mit dem Programm
/usr/share/doc/packages/dhcp-server/dnscompr.py wie folgt erzeugt werden (Beispiel):
# python /usr/share/doc/packages/dhcp-server/dnscompr.py domain1.example.com domain2.example.com
'\x07domain1\x07example\x03com\x00\x07domain2\xc0\x08'
dnscompr.py benoetigt das python-dnspython Paket, das mit 10.0 ausgeliefert
wird. Fuer aeltere SUSE Linux Versionen gibt es das Python-Modul unter
http://ftp.suse.com/pub/people/poeml/python-dnspython/
Die Kompression ist in RFC 3397 sowie, in detaillierterer Form, in RFC1035
beschrieben.
Chroot-"Gefaengnis"
===================
Unsere Version des ISC DHCP-Servers enthaelt einen modifizierten
'non-root/chroot'-Patch nach Ari Edelkind. Damit kann der dhcpd
- als unprivilegierter Benutzer laufen
- in einer chroot-Umgebung laufen (/var/lib/dhcp)
was (in dieser Kombination) die sicherste Moeglichkeit ist, den Server zu
betreiben.
Die Konfigurationsdatei muss dafuer in /var/lib/dhcp/etc liegen, und wird
deshalb vom Init-Skript beim Start automatisch dorthin kopiert. Weitere Dateien
(Include-Dateien) koennen in /etc/sysconfig/dhcpd:DHCPD_CONF_INCLUDE_FILES
aufgefuehrt werden.
Damit der dhcp-Daemon aus der chroot-Umgebung heraus weiter loggen kann, auch
wenn der Syslog-Daemon neu gestartet wird, wird in /etc/sysconfig/syslog
automatisch "-a /var/lib/dhcp/dev/log" hinzugefuegt.
WICHTIG: In der chroot-Umgebung kann dhcpcd nur dann Hostnamen
aufloesen, wenn folgende Dateien vorhanden sind:
/etc/localtime
/etc/host.conf
/etc/hosts
/etc/resolv.conf
/lib/libresolv.so.2
/lib/libnss_dns.so.2
/lib/libnss_dns6.so.2
Beim Start des Init-Skriptes werden diese (zus. etwa 100 kB) deshalb nach
/var/lib/dhcp/ kopiert. (Diese Dateien muessen eventuell auf dem Laufenden
gehalten werden, wenn sie durch Skript wie /etc/ppp/ip-up dynamisch modifiziert
werden.) Wenn in der Konfigurationsdatei nur IP-Adressen anstelle von Hostnamen
verwenden, sind hier keine Probleme zu erwarten.
Das chroot-Feature kann ueber DHCPD_RUN_CHROOTED in /etc/sysconfig/dhcpd zur
Not auch abgeschaltet werden.
Weitere Informationen finden Sie unter
<http://www.isc.org/ml-archives/dhcp-server/2000/04/msg00097.html>
und
<http://www.securityportal.com/closet/closet20001129.html>.
Have a lot of fun!
Your SuSE Team