Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Verzeichnis-Dienste
Zugriff oft lesend, selten schreibend
Verzeichnisbaum = Hierarchie
Teilbereiche des Baums können auf verschiedene Server verteilt sein
Delegierte Administration
Suchen nur in interessanten Teilbäumen
Beispiele sind DNS, LDAP, X.500
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
RDBMS vs. Verzeichnis
Vorteile relationaler Datenbanksysteme:
Transaktionsfähigkeit,
Referentielle Integrität,
Mathematische Funktionen in SQL.
Vorteile von Verzeichnisdiensten:
Intuitive Bedienbarkeit, Suchen nach Gruppen.
Flexibles Objektmodell, d.h. je nach Teilbaum können spezifische Funktionen implementiert werden.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Domain Name System
Weltweit verteilter Verzeichnisdienst
Dient zur Übersetzung von Namen in IP-Adressen und umgekehrt
RFC's: 1034 updated by 1101, 1122, 1183, 1706, 1876, 1982, 2181, 2308 and 2535
Einführung z.B.: www.dns.net/dnsrd/docs/whatis.html
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Komponenten des DNS
Internet-Protokolle für Anfragen und Datenübermittlung
Server für die Datenhaltung (name servers)
Die Daten selbst (resource records, RR)
Namensauflösung (A-Records)
Mail-Organisation (MX-Records)
Das Internet (bzw. Intranet)
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Domain-Namens-Raum
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Zonenaufteilung
Es gibt viele Milliarden von (möglichen) A-Records, d.h. Namen, die in IP-Adressen umgewandelt werden müssen.
Diese werden in „Zonen“ aufgeteilt, von denen ein name server jeweils nur eine oder wenige verwaltet.
Die resource records zu einer Zone werden in eine Zonendatei geschrieben.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
DNS Details
Es gibt mehrere root server, die teilweise an geheimen Orten stehen (Sicherheit, Redundanz)
Die Zweige des Baums werden jeweils von authorisierten Zonen-Servern verwaltet
Die Unterzonen werden von den in der Hierarchie darüber liegenden Zonen-Servern „delegiert“
Der .de name server delegiert also z.B. die DNS-Autorität (authority) für die Zone insel.de an den name server ns.insel.de
Ein absoluter Pfad im DNS heißt FQDN
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Hierarchie der Server
Die name server bilden ein gigantisches verteiltes Datenbank-System
Für jede Zone muss es mindestens 2 autonome name server geben, die über separate Routen erreichbar sind
Die „Hoheit“ (authority) über die Zone haben die master name server
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Arten von DNS-Servern
Ein primary master server besitzt die Originale der Zonen-Dateien und lädt diese beim Start in seinen „Arbeits-Speicher“.
Ein secondary master server erhält seine Zonen-RR's von einem primary master server über das Netz.
Diesen Vorgang nennt man zone transfer.
Ein secondary [...] server kann auch ein slave server sein (z.B. zum Caching).
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Beispiel: Zonen-File
$TTL 86400
@ IN SOA ns.ailog.org. domainmaster.ailog.org. (2007112400 ; serial
86400 ; refresh (1 day) 3600 ; retry (1 hour) 2419200 ; expire (4 weeks) 86400 ; minimum (1 day) )
NS ns NS ns0.xtremeweb.de. ; xfr'd nethawk.xtremeweb.de NS ns3.xtremeweb.de. ; xfr'd
MX 10 mail.Insel.de. MX 20 mail.drb.insel.de.
localhost A 127.0.0.1ns A 192.109.16.71
loopback CNAME localhostinsel2 CNAME insel2.Insel.de.insel3 CNAME insel3.Insel.de.insela CNAME insela.Insel.de.www A 81.169.145.66
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Client-Implementierungen
Anwendungen wie telnet oder ftp benutzen einen „resolver“, um DNS-Anfragen abzusetzen.
Unter linux ist dies einfach eine [shared] library, die weiss, wie man die Protokolle benutzt.
Eine besondere Intelligenz bei der Suche im weltweiten DNS-Baum besitzt sie aber nicht.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Suchen im Baum
Ein DNS, der für eine Anfrage nicht die authority besitzt, leitet sie an einen root server weiter.
Der Anfrager erhält einen Verweis auf den zuständigen name server der darunter liegenden Ebene und fragt diesen.
Das geht weiter, bis er die richtige Antwort bekommt.
Das Ganze heisst „name resolution“.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Ablauf Resolution
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Forwarding und Caching
Als forwarder bezeichnet man einen name server, der von einem anderen name server dann gefragt wird, wenn dieser die Anfrage nicht beantworten kann.
name server merken sich die Antworten, die sie bekommen, auch für fremde Zonen (caching).
Einen ge-cache-ten Eintrag liefern sie als „non-authoritative answer“ zurück.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Gültigkeit von RR's
Resource Records haben ausserhalb der Server, die die zone authority besitzen, nur eine begrenzte Gültigkeitsdauer.
Diese wird als TTL (Time To Live) bezeichnet und in der Zonen-Datei des primary master servers definiert.
Der cache kann sabotiert werden („cache poisoning“), also ist hier Vorsicht geboten.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Sicherheit von DNSDNS ist die zentrale Resource des IN
DoS / DDoS Attacken sind sehr gefährlich für die gesamte Funktionalität des IN
RR's sollten nicht zu viele Informationen über die Zone nach aussen geben
Zonen-Transfers sollten nicht jedem Client erlaubt werden*
Zugang zum Cache eines DNS muss verhindert werden
*Was heisst das für unsere Muster-Firma? Wer muss was erlauben?
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Aufgabe zu DNS
Benutzen Sie die Kommandos nslookup, dig und host unter linux.
Lesen Sie unter www.dns.net nach.
http://www.ripe.net/ripe/docs/ripe-192.html enthält eine Beispiel-Zonen-Datei, analysieren Sie sie sorgfältig.
Diskutieren Sie die Konfiguration des DNS unserer Musterfirma.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Lightweight Directory Access Protocol (ldap)
Hat sich als Zusatz zu X.500 entwickelt, weil dieses zu komplex zu implementieren und zu nutzen war.
TCP/IP <-> ISO/OSI Konvertierung entfällt.
Ein ldap-Server vermittelt z.B. zwischen einer X.500 Datenbasis und ldap-Clients
Oder ein ldap-Server nutzt Backends wie bdb, ldbm, SQL-Datenbanken.
RFCs zu ldapV3: RFC 2251 ... 2256
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Struktur: Clients und Server
ldap-Server sind vergleichbar DNS-Servern
Komplexere Datenstrukturen
Verteilung aus 2 Gründen:
Replizierung (Sicherheit)
Performance (Lastverteilung)
Server-Konfiguration erfolgt z.B. im File [/usr/local]/etc/openldap/slapd.conf
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Replikation ldap-Server
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Komplexe Zugangs-Rechte<access directive> ::= access to <what> [by <who> <access>]
<what> ::= * | [dn=<regex>]
[filter=<ldapfilter>]
[attrs=<attrlist>]
<who> ::= * | self | dn=<regex> |
addr=<regex> |
domain=<regex> |
dnattr=<dn attribute>
<access> ::= [self]none | [self]compare |
[self]search | [self]read |
[self]write
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
LDIF Datenformat (1)
LDAP Data Interchange Format
ASCII Dateien, die zum Erstellen der Struk-tur des Verzeichnisses notwendig sind
dc=de|
dc=natkomm/ \
ou=personen ou=geraete/ \ / \
uid=person1 uid=person2 uid=geraet1 uid=geraet2
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
LDIF Datenformat (2)
Jeder Eintrag in der LDIF Datei muss eindeutig referenzierbar sein durch mindestens ein eineindeutiges Attribut
Dieses Attribut wird bezeichnet als Distinguished Name (DN), z.B.:
uid=person1, ou=personen, dc=natkomm, dc=de
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
LDIF Datenformat (3)
Der DN des Wurzelobjektes setzt sich hier aus dem Organisationsnamen und dem Landescode zusammen
Zusätzlich zu anderen Objektklassen oder Schemata muss der Wurzeleintrag den Eintrag „objectclass: top“ besitzen
Außerdem muss mit der ersten Struktur auch ein admin Account angelegt werden
Die einzelnen Einträge sind mit einer Leerzeile voneinander getrennt
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
LDIF Beispiel
#natkomm.ldifdn: dc=natkomm,dc=deobjectclass: dcObjectobjectclass: topobjectclass: countryc: dedc: natkomm #Leerzeile zum Trennen der Einträgedn: cn=admin,dc=natkomm,dc=deobjectclass: personsn: Administratorcn: admin
dn: ou=personen,dc=natkomm,dc=deobjectclass: organizationou: personen
dn: cn=person1,ou=personen,dc=natcomm,dc=deobjectclass: personsn: Mustermanncn: person1
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
LDIF: Schemata und Typen
Jeder Eintrag im Verzeichnis muss mindestens einer Schema- oder Objektklasse zugeordnet sein
Es gibt vordefinierte Objektklassen mit OpenLDAP:
core.schemaCosine.schemainetOrgPerson.schemajava.schema...
Sollten die bereitgestellten Schemadefinitionen nicht ausreichen, können eigene erstellt werden.
Diese können von vorhandenen Definitionen abgeleitet werden, Beantragung bei der IANA erforderlich füroffizielle Nutzung!
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Beispiel Schema-Definition
objectclass ( 2.5.6.4 NAME 'organization'DESC 'RFC2256: an organization'
SUP top STRUCTURAL
MUST o
MAY ( userPassword $ searchGuide $ seeAlso $businessCategory $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $postalCode $ postalAddress $ physicalDeliveryOfficeName$ st $ l $ description )
)
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Füllen der ldap Datenbank
Befehlszeilen-Kommando (eine Zeile!):ldapadd -x-D cn=admin,dc=natkom,dc=de-W -f /var/lib/ldap/natkom.ldif
-x einfache Authentifizierung
-D Angabe des Bind DN ohne Blanks
-W Passwort abfragen
-f Angabe einer LDIF-Datei
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Nutzung von ldap allgemein
Personen im Internet,
Mitarbeiter in Unternehmen,
Adressen von Standorten,
Adressen von Personen,
... alles was man in Verzeichnissen organisieren möchte.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Nutzung von ldap für SysOps
Benutzer- und Gruppen-Verwaltung,
IP-Dienste (vgl. /etc/services)
IP-Protokolle (vgl. /etc/protocols)
RPCs (remote procedure call, Portnummern zu Diensten zuordnen, vgl. /etc/rpc)
NIS-Informationen (Network Information System)
Boot-Informationen (bootp, arp)
Mountpoints für Dateisysteme (vgl. /etc/fstab)
Mail-Aliases
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Konfigurations-Punkte
/etc/ldap.conf (wird von pam benutzt), hier muss die URI korrekt sein.
/etc/nsswitch.conf wird von den network information services benutzt.
/etc/openldap/slapd.conf konfiguriert den ldap Server (slapd).
/var/lib/ldap: Hier liegt die bdb-Datenbank.
/etc/init.d/ldap ist das Start/Stop-Skript.
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Infos zu ldap im Netz
http://www.mitlinx.de/ldap/index.html
O'Reilly Archiv
http://www.kingsmountain.com/ldapRoadmap.shtml
Yolinux.com
Aufgabe: Tutorials durcharbeiten, ausprobieren
Prof. Dr. Stefan Brunthaler, TH Wildau 2016ff
Ein ldap Server zum Üben
ntksrv3.tm.th-wildau.de
Port 389 (Standard)
Basis-DN: dc=tm,dc=th-wildau,dc=de
Als zentrale User-Verwaltung für Däll
Java-Client: http://jxplorer.org
Aufgabe: Anschauen, ggf. andere ldap Server suchen und Zugriff versuchen