Netzwerk-Management - Verzeichnis-Dienste (ldap, DNS) fileEin DNS, der für eine Anfrage nicht die...

Preview:

Citation preview

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

Recommended