Yellow Pages 2 : Auf der Seite des Clients
    ArticleCategory:
    System Administration
    AuthorImage:
    ![[Frederic]](../../common/images/Frederic_Raynal.png) 
 
    TranslationInfo:
    Original in fr Frédéric
    Raynal
    fr to en Jo
    Simons
    en to de Hermann J. Beckers
    AboutTheAuthor:
    Frédéric
    Raynal schreibt gerade seine Diplomarbeit
    in Informatik am INRIA. Er liest gerne (Tolkien genauso wie Balzac)
    und hört gerne Musik(von Mozart bis zu Philip Glass und
    von Led Zeppelin bis zu Massive Attack über Björk und Boris Vian,
    vermeidet aber sorgfältig rap, techno und einige andere Arten dieses Lärms
    ;-) 
    Abstract:
    Im vorherigen Artikel ging es um die Einführung in die Konzepte der
    yellow pages (YPs). In diesem Artikel sehen wir, wie der Client konfiguriert
    wird, ein praktisches Beispiel zur Arbeitsweise des Clients und eine Darstellung der 
    verschiedenen Tools. Zum Schluß gibt es noch Informationen über NIS+.
    ArticleIllustration:
![[Illustration]](../../common/images/illustration164.gif) 
    ArticleBody:
    Einführung
    Die Client-Dienste, die zu  yellow pages gehören, basieren auf dem
 ypbind Dämon. Er sendet die Anforderungen
 an den YP-Server. Wir erklären zunächst seine Arbeitsweise und die Konfiguration. Danach 
 sehen wir, wie das NIS-Protokoll arbeitet. Der letzte Teil des Artikels befasst sich mit den 
 verschiedenen Tools, die auf der Client-Seite zur Verfügung stehen).
    Konfiguration des NIS-Clients
    Die einzige Voraussetzung, um einen NIS-Client zur Verfügung zu haben, ist der Start des 
     ypbind-Dämons. 
    ypbind
    ypbind 
    etabliert die Verbindung zwischen Client und dem NIS-Server. Diese Verbindung wird sichtbar
    durch eine Datei im Verzeichnis  /var/yp/binding1 , die normalerweise in der Form 
    domainname.version benannt ist. Die einzige z. Z. unterstützte Version ist Version 2.
    Wenn der Name meiner NIS-Domäne etwa  "messiah" lautet, heißt die Datei halt messiah.2
    Das Programm ypbind
    gehört dem Super-User (d. h.  root), demzufolge findet es sich entweder in /sbin oder  /usr/sbin.
    Nach dem Start sucht und findet (hoffentlich)  ypbind 
    seine Anweisungen in der Datei  /etc/yp.conf. 
    Diese Datei kann folgende Einträge enthalten:
    
      - domain nisdomain server hostname: 
      Der Client sucht nach  hostname für die Domäne nisdomain;
- domain nisdomain broadcast: 
      Der Client fragt per Rundspruch im lokalen Netzwerk nach der Domäne nisdomain;
- ypserver hostname: Der Client spricht direkt  hostname 
      für die lokale Domäne an. In dieser Konfiguration muß die IP-Adresse des Servers in der 
      lokalen /etc/hosts-Datei enthalten sein.
    
    Wenn die Konfigurationsdatei nicht existiert oder falsche Einträge enthält, sucht
    ypbind per Rundspruch
 2  im lokalen Netzwerk nach dem NIS-Server für die 
 lokale Dömäne.
    Mit wenigen Schritten können wir sicherstellen, dass  ypbind korrekt konfiguriert ist.
    
      - Erstellen Sie die Datei /etc/yp.conf;
- Überprüfen Sie, dass portmap
      aktiviert ist (ps aux | grep portmap). Wenn nicht, müssen wir ihn starten. Dieses Programm verbindet
      die TCP/IP- (oder UDP/IP)-Ports des Computers mit den Programmen. Während der Initialisierung eines 
      RPC-Servers teilt dieser  portmap mit, auf welchen 
      Ports er lauscht und die Programmnummern, die er starten möchte. Wenn ein Client eine RPC-Anforderung 
      für eine bestimmte Port-Nummer absetzt, nimmt er zunächst Kontakt mit
          portmap auf, um zu erfahren, an 
      welchen Port die RPC-Pakete zu senden sind. Deshalb ist es unbedingt 
      erforderlich,  portmap  vor ypbind zu starten;
- Erstellen Sie das Verzeichnis /var/yp ;
- Starten Sie ypbind ;
- 
        Benutzen Sie das Kommando rpcinfo, um sicherzustellen, das  ypbind korrekt arbeitet: 
        
          - 
            Die Ausführung von  "rpc -p localhost" sollte folgende Informationen anzeigen: 
            
              
                | program | vers | proto | port |  |  
                | 100000 | 2 | tcp | 111 | portmapper |  
                | 100000 | 2 | udp | 111 | portmapper |  
                | 100007 | 2 | tcp | 637 | ypbind |  
                | 100007 | 2 | udp | 639 | ypbind |  
 oder
              
                | program | vers | proto | port |  |  
                | 100000 | 2 | tcp | 111 | portmapper |  
                | 100000 | 2 | udp | 111 | portmapper |  
                | 100007 | 2 | udp | 758 | ypbind |  
                | 100007 | 1 | udp | 758 | ypbind |  
                | 100007 | 2 | tcp | 761 | ypbind |  
                | 100007 | 1 | tcp | 761 | ypbind |  
 
 oder versuchen Sie:
          - 
            "rpcinfo -u localhost ypbind", was als Ergebnis folgendes anzeigen sollte:
 
              
                | program 100007 version 2 ready and waiting |  
 oder
              
                | program 100007 version 1 ready and waiting |  
                | program 100007 version 2 ready and waiting |  
 
 abhängig von der Version von  ypbind. Der wichtige Teil ist die Zeile mit der Version 2.
Nachdem ypbind  nun korrekt arbeitet, wird Ihr Rechner
    zu einem NIS-Client. Nun können Sie Ihren NIS-Server ansprechen. Z. B. zeigt Ihnen  "ypcat
    passwd.byname" alle Passwörter nach Benutzern geordnet an, die im entsprechenden Verzeichnis vorhanden 
    sind. Einige Details
    Einige Dateien benötigen noch kleinere Veränderungen, damit YP effizienter arbeiten kann:
    
      - /etc/host.conf: "nis" für Namensauflösung hinzufügen;
- /etc/passwd: folgende Zeile einfügen:
 +::::::
 Dies erlaubt allen Personen, die im Verzeichnis des Servers enthalten sind, Kontakt zum Client 
       aufzunehmen. Diese Berechtigungen können durch die Symbole "+" und "-" verfeinert werden, um 
       den Zugang zum Client zu gewähren oder zu sperren. Um z. B. den "guest"-Benutzer auszusperren,
       würden Sie die Zeile
 -guest::::::
 hinzufügen. Die Felder, die Sie nicht verändern möchten,
       sollten leer bleiben. Es ist aber möglich, mehr hinzuzufügen:
 +me::::::/bin/ksh
 Die Benutzerin "me" bekommt ksh anstelle ihrer sonstigen Login-Shell (die in /etc/password des NIS-Servers
       definiert ist).
 Ich möchte noch hinzufügen, das NIS auch die Benutzung von Netzgruppen
       3 perfekt unterstützt
 +@sysadmins:::::::
 erlaubt den Mitgliedern der Netzgruppe sysadmins Verbindungen zu diesem Client..
- /etc/group (und/oder /etc/shadow für bestimmte libc-Versionen):
      wie in /etc/passwd, müssen Sie hier 
 +:
 hinzufügen.
       Sie können auch mit Gruppenberechtigungen experimentieren, indem sie + und - hinzufügen.
- 
        /etc/nsswitch.conf : der "Network Services Switch" erlaubt es (wie /etc/hosts.conf), die Reihenfolge zu 
        definieren, in der die gewünschte Information gesucht wird. Zur Auswahl stehen:
        
          
            | nisplus | Suche per NIS+ (d. h. NIS Version 3, eine sichere Version von NIS) |  
            | nis | Suche per NIS (NIS Version 2, entspricht YP) |  
            | dns | Suche per DNS (Domain Name Server) |  
            | files | Suche in den lokalen Dateien |  
            | db | Suche in der Datenbank /var/db |  
 Hinter jeder Such-Option kann ein Befehl in folgender Form eingesetzt werden:
 `[' ( `!'? STATUS `=' ACTION )+ `]'
 wobei:
          - STATUS => "success" oder "notfound" oder "unavail" oder
          "tryagain"
- ACTION => "return" oder "continue"
 Abhängig von der verwendeten libc-Version verlaufen nicht alle Abfragen gleich. Zum Beispiel verwaltet
        die libc5 keine Passwörter in /etc/shadow. Die auf einer Maschine zur Verfügung stehenden Dienste 
        benutzen die Bibliothek /lib/libnss_SERVICE.so.X Weitere Informationen zu diesem Service finden sich in
        den Handbuch-Seiten zu nsswitch.conf ("man nsswitch.conf").
Shadow-Passwörter in NIS werden nur mit der glibc2.x-Bibliothek unterstützt. Deshalb sollte man sorgfältig
    überlegen, ob man sie in nsswitch.conf aktiviert.Dsa NIS-Protokoll
    Nachdem unser NIS-Client nun voll funktionsfähig ist, wollen wir sehen, wie er die benötigten 
    Informationen gewinnt. 
     Wenn ein Client eine Information benötigt, die sich in einem YP-Verzeichnis befindet, sucht er zunächst
    nach einem YP-Server. Dazu öffnet er eine TCP-Verbindung zum lokalen  ypbind-Dämonen. Der Client informiert ihn über die (NIS-)Domäne, zu der
    er gehört und ypbind setzt mittels der Funktion  
    RPC YPPROC_DOMAIN_NOACK einen Rundspruch im lokalen Netz ab. Die NIS-Server, die diese Domäne
    bedienen, antworten mit einem ACK. Die anderen verhalten sich ruhig..
    ypbind schickt dem Client das Ergebnis der Anfrage
    (Erfolg oder Mißerfolg), und bei Erfolg die Adresse des YP-Servers, der zuerst geantwortet hat. Der Client
    kann nun den Server mit seiner Anfrage adressieren, indem er die Domäne, das Verzeichnis und den Schlüssel
    angibt. .
    Dieses Protokol ist ziemlich langsam, weil es TCP-Verbindungen benutzt. Dies wird noch dadurch 
    verschlimmert, weil eine Menge Sockets benutzt werden. Um dies zu vermeiden, wartet 
    ypbind nicht auf Anfragen von Clients. Tatsächlich verwaltet es
    eine Liste von Servern für jede Domäne in der Datei
     /var/yp/binding/<domainename>.<version> und überprüft regelmäßig, ob diese Server noch 
     aktiv sind.
    
    Die yp-Tools
    Dieser Abschnitt beschreibt kurz einige der Programme aus dem yp-Tools-Paket. Wenn Sie mehr 
 darüber erfahren wollen, können Sie für jedes dieser Tools eine sehr ausführliche Handbuchseite aufrufen ;-P
    
      - domainname: zeigt oder ändert (abhängig von Optionen)  den NIS-Domänen-Namen;
- ypcat: zeigt die Werte aller Schlüssel im NIS-Verzeichnis;
- ypmatch: zeigt die Werte eines oder mehrerer Schlüssel im NIS-Verzeichnis;
- ypset: damit kann spezifiziert werden, zu welchen NIS-Server
  ypbind Verbindung aufnehmen muss;
- ypwhich : gibt den Namen des NIS-Servers zurück. Mit "-m Verzeichnisname"  als Option gibt es 
      den Namen des Hauptverzeichnisses zurück.
- yppoll : hat als Argument einen Verzeichnisnamen und gibt den Namen des Hauptservers zurück..
    
     
    Einige Worte zu NIS+
    Bis jetzt haben wir noch nicht über eine NIS-Variante gesprochen.
    NIS in einem Netzwerk zu benutzen, ist ein großes Sicherheitsrisiko.
    Wenn z. B. der NIS-Server schlecht geschützt ist und eine Person mit bösen Absichten
    
    
      - den NIS-Domänen-Namen
- die IP-Adresse eines NIS-Clients
herausfindet, ist es sehr einfach vorzutäuschen, dass man von dieser Maschine mit dieser IP-Adresse 
    arbeitet (Spoofing). Dann kann man durch ein  ypcat passwd mit allergrößter Leichtigkeit die Passwort-Liste erhalten.
     :-(
    
    NIS+ bietet eine zusätzliche Sicherheitsschicht, indem es ein auf dem Austausch von Schlüsseln
    basierendes Authentifizierungsprotokoll integriert und Datenverschlüsselung unterstützt..
    Die Daten werden in Tabellen gehalten, die sich in verschiedenen Verzeichnissen befinden.
    Jede Spalte einer Tabelle enthält einen Kopfeintrag, der z. B. angibt, ob bei den Daten Groß-/Kleinschreibung
    unterschieden wird oder ob es sich um binäre Daten handelt..
    Die erwähnte Struktur erlaubt es, Zugriffsrechte für die Verzeichnisse und Tabellen und zusätzlich für die
     Spalten in den Tabellen zu definieren. Es ist daher möglich, den Zugriff auf die Passwort-Tabelle für jeden
     Benutzer zu sperren, der nicht auf dem NIS+-Server zugelassen. ist. Aber es erlaubt allen berechtigten
     Benutzerinnen Zugriff auf die gesamte Passwort-Tabelle mit Ausnahme des "Passwort"-Feldes. Nur der
     Eigentümer des "Passwort"-Feldes kann dieses abfragen..
    Es gibt 4 Sicherheitsstufen:
    
      - Nobody: Die Benutzerin ist nicht berechtigt;
- Owner: Der Benutzer ist als Eigentümer berechtigt;
- Group: Die Benutzerin ist berechtigt und gehört zu einer Gruppe, die Zugriff auf dieses
      Objekt hat;;
- World: Der Benutzer ist berechtigt, ist aber nicht Eigentümer und gehört keiner Gruppe mit 
      Zugriff auf dieses Objekt an.
    
    In dieser Konfiguration ist root nur eine gewöhnliche Benutzerin ... naja, fast;-) 
    Wenn er nicht die entsprechenden Rechte hat, hat er keinen Zugriff auf die Passwörter der anderen
    Benutzer. So ist es nicht mehr möglich, sich als ein anderer Benutzer zu authentifizieren ... aber ein
    Wechsel mittels  su ist noch möglich :)
    Die Daten werden mit Ausnahme der Passwörter im Netz unverschlüsselt übertragen; kein Passwort
    wird im Klartext übertragen.
    NIS+ ist ein mächtiges Werkzeug ... aber es ist schwer zu konfigurieren.  Thorsten
    Kuduk schreibt folgendes  (er arbeitet am NIS, NIS+, NIS-HOWTO ... er weiß also, worüber er spricht ;-) :
    "Die Wahl  zwischen NIS and NIS+ ist einfach: benutzen Sie NIS, solange Sie keine wichtigen
    Sicherheitsbedürfnisse haben. NIS+ ist wesentlich problematischer zu administrieren (ganz besonders 
    auf der Server-Seite)"
    
    Zusammenfasung
    Wir haben erfahren, wie man eine Maschine zu einem existierenden Netzwerk hinzufügt, wenn bereits
    ein NIS-Server installiert ist. Im nächsten Artikel werden wir sehen, wie man den NIS-Server konfiguriert und
    wie dieser arbeitet..
    
    Fußnoten
    
      - ... var/yp/binding1
- Die genaue Lokation dieser Dateien variiert von einer Distribution zur anderen.
      Z. B. gibt es folgende Möglichkeiten, den 
       ypbind-Dämon zur Boot-Zeit zu starten:
        /etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, /etc/rc.local
      - ... broadcast2
- Dies bedeutet, dass eine Nachricht im gesamten Subnetz ohne eine bestimmte
      Ziel-Adresse verbreitet wird (Typ  X.Y.0.0)
      - ... netgroup3
- Die Datei /etc/netgroup definiert Gruppen bestehend aus (Host, Benutzerin, Domäne). Diese
      dienen zur Überprüfung von Berechtigungen bei der Ausführung von Befehlen auf anderen Rechnern
      (Remote-Login, Shells oder Mount-Befehle). Für Einzelheiten schlagen Sie ... die entsprechende
       Handbuchseite auf.