Diskussion:Entwicklungsumgebung/DHCP: Unterschied zwischen den Versionen
Dorn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Dorn (Diskussion | Beiträge) |
||
Zeile 341: | Zeile 341: | ||
ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/fip.ldif | ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/fip.ldif | ||
Aus DD-Mails von Hans-Dietrich Kirmse 04.02.09 | |||
--[[Benutzer:Dorn|Dorn]] 13:10, 15. Feb. 2009 (UTC) |
Aktuelle Version vom 15. Februar 2009, 13:10 Uhr
DDNS
ist eine feine Sache, machen wir seit Jahren, weil es die Namensauflösung extrem beschleunigt.
Was man dafür braucht ist ein key, der dem bind und dem dhcpd bekannt ist.
in die dhcpd.conf:
allow booting; server-identifier 192.168.3.2; option domain-name "sub.domain.tld"; option domain-name-servers 192.168.3.2; option subnet-mask 255.255.255.0; option netbios-node-type 8; # First WINS,then Broadcast option netbios-name-servers 192.168.3.3; # Samba #neu: http://wiki.bsdforen.de/howto/automatische_proxy-konfiguration option wpad code 252 = text; option wpad "http://wpad.domain.tld/wpad.dat"; default-lease-time 3600; # 1h max-lease-time 86400; # 1d authoritative; # Der DHCPd soll DDNS machen ddns-update-style interim; # Die Clients sollen *nie* selbst DDNS machen, sondern immer der DHCPd ignore client-updates; get-lease-hostnames on; # Anstelle den key anzugeben, sollte auch ein include möglich sein: # include "/etc/bind/Kbst.domain.tld.+157+35662.key"; key sub.domain.tld { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret xRLSiTqRBXw[...snip...]UbaAIXUfBpJ4M0XovKQj76Lg== }; zone sub.domain.tld { primary 127.0.0.1; key sub.domain.tld; } zone 3.168.192.in-addr.arpa. { primary 127.0.0.1; key sub.domain.tld; } ## END DEFAULTS # DHCP für Netz sub.domain.tld subnet 192.168.3.0 netmask 255.255.255.0 { option broadcast-address 192.168.3.255; option domain-name "sub.domain.tld"; option routers 192.168.3.1; range 192.168.3.150 192.168.3.199; host alix # Schulserver Installer { hardware ethernet 00:01:02:03:04:05; fixed-address 192.168.3.241; } }
und dann in die named.conf.local
key sub.domain.tld { algorithm hmac-md5; secret "xRLSiTqRBE2SG.......ovKQj76Lg=="; }; // sub.domain.tld mit 192.168.3.0/24 zone "sub.domain.tld" IN { type master; file "db.sub.domain.tld"; allow-update {key sub.domain.tld;}; }; // 3.168.192.in-addr.arpa für sub.domain.tld zone "3.168.192.in-addr.arpa" IN { type master; file "db.192.168.3"; allow-update {key sub.domain.tld;}; };
Das wars schon. Den Key erstellt man über
/usr/sbin/dnssec-keygen -a HMAC-MD5 -n HOST -b 512 $DOMAIN.
Wenn auch noch Linuxclients in der /etc/dhcp3/dhcclient.conf ein
send host-name "workstation"; stehen haben, sind auch diese mit im
Geschäft.
Viele Grüße Thorsten (080606)
X.509-Zertifikate
Zertifikate machen nur dann Sinn, wenn der Dienst der sie benutzt auch verifizieren kann. Dazu gehört nicht nur ein Public/Private Key-Pair, sondern auch, im Falle von Serverdiensten, ein eindeutiger DNS-Name.
Das Problem mit dem eindeutigen DNS-Namen ist etwas diffizil. Fast alle Anwender von ssl, also X.509, benutzen den DNS-Namen des Rechners. Für einfachste Dinge ist das OK. Aber wenn ein Rechner Dienste wie LDAP oder SAMBA bereitstellt, die einen Online-Backup-Dienst ermöglichen, wie PDC + 1 bis 99 BDC, dann ist die Benutzung des realen Hostnamens, als Key-Bezeichner echt schwachsinnig.
Stellt euch vor, der PDC fällt aus. Ein BDC übernimmt vollautomatisch seine Funktion. Der hat aber einen anderen DNS-Namen, damit einen anderen Key und der Admin und alle, die via ssl darauf zugreifen wollen, sind draussen.
Also für solche Dienste muss als Key-Bezeichner ein DNS-Alias genommen werden. Denn der darf auf mehreren DNS-Hostnamen zeigen.
Die DNS-Domain für den aktuellen Rechner:
hostname -d
Im LDAP stehen nur Kopien des Domain-Namens.
ldapsearch -x -LLL "cn=DHCP Service Config" dhcpOption|\ sed -ne '/^dhcpOption/{N;s/dhcpOption: domain-name //;s/"//g;p}'
Der Installer hat auch eine Kopie gespeichert:
debconf-get-selections --installer|grep netcfg/get_domain|cut -f4
Es gibt aber keine LDAP-Domain. Nur einen NamingContext:
ldapsearch -x -LLL -h localhost -s base -b "" "objectclass=*" \ namingcontexts
Red. gekürzt. Text von Harry.
# keys für den bind, kannst du ignorieren. key schule.xx { algorithm HMAC-MD5; secret "y9gsY4oe17u27q[..snip..]TyzjPvgqA=="; }; zone schule.xx { primary 127.0.0.1; key schule.xx; } zone 0.28.10.in-addr.arpa { primary 127.0.0.1; key schule.xx; }
Thorsten in einer [DD]-Mail 31.01.2009, 21:27
Weitere Konfiguration des LDAP hier DHCP(E-Mail von Hans-Dietrich Kirmse):
Installation von DHCP
1. Einspielen der Pakete
aptitude dhcp3-server
es kommt ein Menü (nur Information), dass standardmäßig DHCP nicht autoritiv ist. Danach wird installiert.
es kommen 2 Fehlermeldungen: diese können/müssen ignoriert werden
aptitude dhcp3-server-ldap
2. Einbinden der Schema-Datei (Datei im Paket)
cd /usr/share/doc/dhcp3-server-ldap/ gunzip dhcp.schema.gz cp dhcp.schema /etc/ldap/schema/
in /etc/ldap/slapd.conf unter (Datei im Paket)
# Schema and objectClass definitions include /etc/ldap/schema/dhcp.schema
habe ich als letzte Zeile hinzugefügt!
3. in /etc/default/dhcp3-server (Datei im Paket)
habe ich ergänzt:
INTERFACES="eth1"
4. das Konvertierungsscript nach root gebracht
(dieser Schritt kann entfallen, da man sofort mit der LDIF-Datei weiterarbeiten kann. Es geht hier nur ums nachvollziehen zu können)
cd /usr/share/doc/dhcp3-server-ldap/ gunzip dhcpd-conf-to-ldap.pl.gz cp dhcpd-conf-to-ldap.pl /root
5. herkömmliche 'dhcpd.conf' als Vorlage bereitgestellt (Datei im Paket: dhcpd.conf.orig)
!!!!!! Hinweis !!!!!!!!!
diese, ich wiederhole *diese* lies sich ohne Probleme mit dem Script konvertieren, dafür habe ich ganz bewußt die Fehler in Kauf genommen (z.B. nach wpad.pac kein Leerzeichen, denn darüber stolpert das Script)
authoritative; ddns-update-style none; deny client-updates; default-lease-time 3600; # 1h max-lease-time 86400; # 1d get-lease-hostnames on; 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; option netbios-node-type 8; # First use WINS, then broadcast option time-servers 10.100.0.1; option interface-mtu 1492; option ip-forwarding off; allow booting; allow bootp; option wpad code 252 = text; option wpad "http://wpad.delixs-schule.de/wpad.pac"; subnet 10.100.0.0 netmask 255.255.255.0 { range 10.100.0.100 10.100.0.200; option routers 10.100.0.1; option broadcast-address 10.100.0.255; filename "/pxelinux.0"; next-server 10.100.0.1; }
6. Konvertierung der dhcpd.conf ins LDIF-file
./dhcpd-conf-to-ldap.pl < /etc/dhcp3/dhcpd.conf > /root/dhcpd.ldif
7. das dazu passende LDIF-File: (Datei im Paket)
Hinweis: so, also genau *so* ist es vom Script erstellt worden. Vor dem Einspielen musste es also noch leicht bearbeitet werden. das im Paket liegende LDIF-File ist schon bearbeitet und kann direkt eingespielt werden. Außerdem ist dieses LDIF-file so verändert worden, dass 2 Teilnetze bereitgestellt werden. Beide Teilnetze aber ohne Terminalserveroptionen. (zumindest schluckt es der LDAP und der DHCP)
dn: cn=alix, dc=delixs-schule,dc=de cn: alix objectClass: top objectClass: dhcpServer dhcpServiceDN: cn=DHCP Config, dc=delixs-schule,dc=de dn: cn=DHCP Config, dc=delixs-schule,dc=de cn: DHCP Config objectClass: top objectClass: dhcpService objectClass: dhcpOptions dhcpPrimaryDN: cn=alix, dc=delixs-schule,dc=de dhcpStatements: authoritative dhcpStatements: ddns-update-style none dhcpStatements: deny client-updates dhcpStatements: default-lease-time 3600 dhcpStatements: max-lease-time 86400 dhcpStatements: get-lease-hostnames on dhcpStatements: allow booting dhcpStatements: allow bootp dhcpOption: domain-name "delixs-schule.de" dhcpOption: domain-name-servers 10.100.0.1 dhcpOption: netbios-dd-server 10.100.0.1 dhcpOption: netbios-name-servers 10.100.0.1 dhcpOption: netbios-node-type 8 dhcpOption: time-servers 10.100.0.1 dhcpOption: interface-mtu 1492 dhcpOption: ip-forwarding off dhcpOption: wpad code 252 = text dhcpOption: wpad "http://wpad.delixs-schule.de/wpad.pac" dn: cn=10.100.0.0, cn=DHCP Config, dc=delixs-schule,dc=de cn: 10.100.0.0 objectClass: top objectClass: dhcpSubnet objectClass: dhcpOptions dhcpNetMask: 24 dhcpRange: 10.100.0.100 10.100.0.200 dhcpStatements: filename "/pxelinux.0" dhcpStatements: next-server 10.100.0.1 dhcpOption: routers 10.100.0.1 dhcpOption: broadcast-address 10.100.0.255
8. Einspielen des LDIF-File in den LDAP
ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/dhcpd.ldif
9. Erstellen der dhcpd.conf
diese sieht jetzt so aus: (Datei im Paket: dhcpd.conf)
ldap-server "alix.delixs-schule.de"; ldap-port 389; ldap-username "cn=admin,dc=delixs-schule,dc=de"; ldap-password "geheim"; ldap-base-dn "dc=delixs-schule,dc=de"; ldap-method dynamic; ldap-debug-file "/var/log/dhcp-ldap.log";
durch dieses File die ursprüngliche dhcpd.conf ersetzen.
10. Einrichtung von 2 Teilnetzen
ich habe in die Datei /etc/network/interfaces (Datei im Paket) Folgendes eingetragen:
# die 2. Netzwerkkarte auto eth1 # das erste Teilnetz iface eth1 inet static address 10.100.0.1 netmask 255.255.255.0 broadcast 10.100.0.255 gateway 192.168.172.1 # das zweite Teilnetz iface eth1:1 inet static address 10.100.1.1 netmask 255.255.255.0 broadcast 10.100.1.255 gateway 192.168.172.1
11. Starten des DHCP-Servers
/etc/init.d/dhcpd3-server start
12. einen Rechner eine feste IP geben
Dazu kann folgendes LDIF-File fip.ldif verwendet werden: (Datei im Paket)
dn: cn=Aachen,cn=10.100.0.0,cn=DHCP Config,dc=delixs-schule,dc=de cn: Aachen objectClass: top objectClass: dhcpHost dhcpHWAddress: ethernet 00:40:05:4f:e4:bc dhcpStatements: fixed-address 10.100.0.21
einspielen mit
ldapadd -x -D "cn=admin,dc=delixs-schule,dc=de" -W -f /root/fip.ldif
Aus DD-Mails von Hans-Dietrich Kirmse 04.02.09
--Dorn 13:10, 15. Feb. 2009 (UTC)