Systemverwaltungshandbuch: IP Services

Einrichten von DHCP-Clients als NIS+-Clients

Sie können den NIS+-Namen-Service auf Oracle Solaris-Systemen einsetzen, die als DHCP-Clients konfiguriert sind. Stellt Ihr DHCP-Server jedoch zu verschiedenen Zeiten unterschiedliche Adressen bereit, umgeht dies teilweise eine der Funktionen von NIS+. die die Sicherheit verbessern sollen: die Erstellung von Data Encryption Standard (DES)-Berechtigungsnachweisen. Aus Sicherheitsgründen müssen Sie den DHCP-Server so konfigurieren, dass er jederzeit die gleiche Adresse bereitstellt. Wenn Sie einen NIS+-Client so konfigurieren, dass er kein DHCP verwendet, können Sie einmalige DES-Berechtigungsnachweise für den Client beim NIS+-Server hinzufügen. Es gibt verschiedene Möglichkeiten, Berechtigungsnachweise zu erstellen. Hierzu zählen das Verwenden des nisclient-Skripts oder der nisaddcred-Befehl.

Zum Erzeugen von NIS+-Berechtigungsnachweisen muss der Client über einen statischen Hostnamen verfügen, so dass die Berechtigungsnachweise erstellt und gespeichert werden können. Wenn Sie NIS+ und DHCP verwenden möchten, müssen Sie identische Berechtigungsnachweise erstellen, die für alle Hostnamen von DHCP-Clients verwendet werden. Auf diese Weise kann der Client die gleichen DES-Berechtigungsnachweise verwenden, ungeachtet dessen, welche IP-Adresse mit zugehörigem Hostnamen ein DHCP-Client erhält.

Das folgende Verfahren zeigt, wie Sie identische Berechtigungsnachweise für alle DHCP-Hostnamen erstellen. Dieses Verfahren ist nur dann gültig, wenn Sie die von den DHCP-Clients verwendeten Hostnamen kennen. Angenommen, der DHCP-Server erzeugt die Hostnamen, so kennen Sie die möglichen Hostnamen, die ein Client erhalten kann.

ProcedureSo richten Sie Oracle Solaris DHCP-Clients als NIS+-Clients ein

Ein DHCP-Clientsystem, das als NIS+-Client konfiguriert werden soll, muss Berechtigungsnachweise verwenden, die einem anderen NIS+-Clientsystem in der NIS+-Domäne gehören. Dieses Verfahren erzeugt lediglich Berechtigungsnachweise für das System, die nur für den Superuser gelten, der beim System angemeldet ist. Andere Benutzer, die sich beim DHCP-Clientsystem anmelden, müssen über eigene einmalige Berechtigungsnachweise auf dem NIS+-Server verfügen. Diese Berechtigungsnachweise werden entsprechend dem Verfahren im System Administration Guide: Naming and Directory Services (NIS+) erzeugt.

  1. Erstellen Sie die Berechtigungsnachweise für einen Client, indem Sie den folgenden Befehl auf einem NIS+-Server eingeben:


    # nisgrep nisplus-client-name cred.org_dir > /tmp/file
    

    Dieser Befehl schreibt den Tabelleneintrag cred.org_dir für den NIS+-Client in eine temporäre Datei.

  2. Zum Anzeigen des Inhalts der temporären Datei geben Sie den Befehl cat ein.

    Oder verwenden Sie einen Texteditor.

  3. Kopieren Sie die zu verwendenden Berechtigungsnachweise für DHCP-Clients.

    Sie müssen den PublicKey und den PrivateKey kopieren. Dies sind lange Strings mit Zahlen und Buchstaben, die durch Doppelpunkte voneinander getrennt sind. Die Berechtigungsnachweise müssen in den Befehl eingefügt werden, der im nächsten Schritt ausgegeben wird.

  4. Fügen Sie die Berechtigungsnachweise für einen DHCP-Client hinzu, indem Sie den folgenden Befehl eingeben:


    # nistbladm -a cname=" dhcp-client-name@nisplus-domain" auth_type=DES \
    auth_name="unix.dhcp-client-name@nisplus-domain" \
    public_data=copied-public-key \ 
    private_data=copied-private-key
    

    Für kopierter-PublicKey fügen Sie die Informationen des PublicKey ein, die Sie aus der temporären Datei kopiert haben. Für kopierter-PrivateKey fügen Sie die Informationen des PrivateKey ein, die Sie aus der temporären Datei kopiert haben.

  5. Kopieren Sie Dateien standortfern vom NIS+-Clientsystem zum DHCP-Clientsystem, indem Sie die folgenden Befehle auf einem DHCP-Clientsystem eingeben:


    # rcp nisplus-client-name:/var/nis/NIS_COLD_START /var/nis
    # rcp nisplus-client-name:/etc/.rootkey /etc
    # rcp nisplus-client-name:/etc/defaultdomain /etc
    

    Falls Sie die Meldung „Zugriff verweigert“ angezeigt wird, gestattet das System eventuell kein remotes Kopieren. In diesem Fall können Sie die Dateien als normaler Benutzer an einen Zwischenspeicherort kopieren. Kopieren Sie die Dateien dann als Superuser vom Zwischenspeicherort an den korrekten Speicherort auf dem DHCP-Clientsystem.

  6. Kopieren Sie die richtige Switch-Datei des Namen-Service für NIS+, indem Sie den folgenden Befehl auf einem DHCP-Clientsystem ausführen:


    # cp /etc/nsswitch.nisplus /etc/nsswitch.conf
    
  7. Booten Sie das DHCP-Clientsystem neu.

    Das DHCP-Clientsystem sollte jetzt in der Lage sein, NIS+-Services zu verwenden.


Beispiel 16–1 Einrichten eines Oracle Solaris DHCP-Clientsystems als NIS+-Client

Im folgenden Beispiel wird ein System nisei angenommen, bei dem es sich um einen NIS+-Client in der NIS+-Domäne dev.example.net handelt. Darüber hinaus gibt es ein DHCP-Clientsystem, dhow, und Sie möchten dhow als NIS+-Client konfigurieren.


(First log in as superuser on the NIS+ server)
# nisgrep nisei cred.org_dir > /tmp/nisei-cred
# cat /tmp/nisei-cred
nisei.dev.example.net.:DES:unix.nisei@dev.example.net:46199279911a84045b8e0
c76822179138173a20edbd8eab4:90f2e2bb6ffe7e3547346dda624ec4c7f0fe1d5f37e21cff63830
c05bc1c724b
# nistbladm -a cname="dhow@dev.example.net." \
auth_type=DES auth_name="unix.dhow@dev.example.net" \
public_data=46199279911a84045b8e0c76822179138173a20edbd8eab4 \
private_data=90f2e2bb6ffe7e3547346dda624ec4c7f0fe1d5f37e21cff63830\
c05bc1c724b
# rlogin dhow
(Log in as superuser on dhow)
# rcp nisei:/var/nis/NIS_COLD_START /var/nis
# rcp nisei:/etc/.rootkey /etc
# rcp nisei:/etc/defaultdomain /etc
# cp /etc/nsswitch.nisplus /etc/nsswitch.conf
# reboot

Das DHCP-Clientsystem dhow sollte jetzt in der Lage sein, NIS+-Services zu verwenden.



Beispiel 16–2 Hinzufügen von Berechtigungsnachweisen mit einem Skript

Wenn Sie zahlreiche DHCP-Clientsysteme als NIS+-Clients einrichten möchten, können Sie ein Skript schreiben. Mit einem Skript können Sie schnell Einträge zur NIS+-Tabelle cred.org_dir hinzufügen. Im Folgenden ist ein Beispielskript aufgeführt.


#! /usr/bin/ksh  
# 
# Copyright (c) by Sun Microsystems, Inc. All rights reserved. 
# 
# Sample script for cloning a credential. Hosts file is already populated  
# with entries of the form dhcp-[0-9][0-9][0-9]. The entry we're cloning 
# is dhcp-001. 
#  
#  
PUBLIC_DATA=6e72878d8dc095a8b5aea951733d6ea91b4ec59e136bd3b3 
PRIVATE_DATA=3a86729b685e2b2320cd7e26d4f1519ee070a60620a93e48a8682c5031058df4
HOST="dhcp-" 
DOMAIN="mydomain.example.com"  
 
for 
i in 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019
do         
     print - ${HOST}${i}         
     #nistbladm -r [cname="${HOST}${i}.${DOMAIN}."]cred.org_dir         
     nistbladm -a cname="${HOST}${i}.${DOMAIN}." \
         auth_type=DES auth_name="unix.${HOST}${i}@${DOMAIN}" \
         public_data=${PUBLIC_DATA} private_data=${PRIVATE_DTA} cred.org_Dir
done  
 
exit 0