Red Hat Enterprise Linux 3: Sicherheitshandbuch | ||
---|---|---|
Zurück | Kapitel 5. Server-Sicherheit | Nach vorne |
NIS steht für Network Information Service. Es ist ein RPC-Service mit dem Namen ypserv, der zusammen mit portmap und anderen Services verwendet wird, um Informationen zu Benutzernamen, Passwörtern und anderen empfindlichen Daten an jeden beliebigen Computer innerhalb der Reichweite weiterzugeben.
Ein NIS-Server besteht aus mehreren Applikationen, unter anderem:
/usr/sbin/rpc.yppasswdd — Auch yppasswdd-Service genannt. Dieser Daemon ermöglicht Benutzern, ihre NIS-Passwörter zu ändern.
/usr/sbin/rpc.ypxfrd — Auch ypxfrd-Service genannt. Dieser Daemon ist für den NIS-Map-Transfer über das Netzwerk verantwortlich.
/usr/sbin/yppush — Diese Applikation verbreitet geänderte NIS-Datenbanken an mehrere NIS-Server.
/usr/sbin/ypserv — Dies ist der NIS-Server-Daemon.
Im Vergleich zu heutigen Standards ist NIS als eher unsicher einzustufen. Es besitzt keine Host-Authentifizierungsmechanismen und überträgt Informationen, einschließlich Passwort-Hashes, unverschlüsselt über das Netzwerk. Aus diesem Grund müssen Sie beim Einrichten eines Netzwerks mit NIS extreme Vorsicht walten lassen. Dadurch, dass die Standard-Konfiguration von NIS von Natur aus unsicher ist, wird die Angelegenheit noch weiter verkompliziert.
Es wird empfohlen, dass Sie, bevor Sie einen NIS-Server implementieren wollen, zuerst den portmap-Service wie unter Abschnitt 5.2 beschrieben sichern und dann weitere Angelegenheiten angehen.
Da NIS empfindliche Informationen unverschlüsselt über das Netzwerk überträgt, ist es wichtig, dass dieser Service hinter eine Firewall und auf einem segmentierten und sicheren Netzwerk ausgeführt wird. Jedes Mal, wenn NIS-Informationen über ein unsicheres Netzwerk übertragen werden, wird das Abfangen von Daten riskiert. Hier kann ein sorgfältiges Design des Netzwerks schwerwiegende Sicherheitsbrüche verhindern.
Jede Maschine innerhalb einer NIS-Domain kann über bestimmte Befehle, ohne Authentifizierung, Informationen von einem Server extrahieren, solange der Benutzer den DNS-Hostnamen und den NIS-Domain-Namen des NIS-Servers kennt.
Wenn sich zum Beispiel jemand mit einem Laptop in das Netzwerk einklinkt oder von außen ins Netzwerk eindringt (und es schafft, eine interne IP-Adresse vorzutäuschen), enthüllt der folgende Befehl die /etc/passwd-Map:
ypcat -d <NIS_domain> -h <DNS_hostname> passwd |
Ist der Angreifer ein Root-Benutzer, kann dieser die Datei /etc/shadow durch folgenden Befehl einsehen:
ypcat -d <NIS_domain> -h <DNS_hostname> shadow |
![]() | Hinweis |
---|---|
Wenn Kerberos verwendet wird, wird die Datei /etc/shadow nicht innerhalb einer NIS-Map gespeichert. |
Um den Zugang zu NIS-Maps für einen Angreifer zu erschweren, erstellen Sie einen zufälligen String für den DNS-Hostnamen, wie zum Beispiel o7hfawtgmhwg.domain.com. Erstellen Sie in gleicher Weise einen anderen, zufallsgenerierten NIS-Domain-Namen. Hierdurch wird es einem Angreifer erheblich erschwert, Zugang zum NIS-Server zu erhalten.
NIS hört alle Netzwerke ab, wenn die Datei /var/yp/securenets leer ist oder gar nicht existiert (dies ist z.B: nach einer Standard-Installation der Fall). Als erstes sollten Sie eine Netmask/Netzwerkpaar in der Datei hinterlegen, damit ypserv nur auf Anfragen des richtigen Netzwerks reagiert.
Unten finden Sie einen Beispieleintrag einer /var/yp/securenets-Datei:
255.255.255.0 192.168.0.0 |
![]() | Achtung |
---|---|
Sie sollten niemals einen NIS-Server zum ersten Mal starten, ohne vorher die Datei /var/yp/securenets erstellt zu haben. |
Diese Methode schützt nicht vor einer IP-Spoofing-Attacke, schränkt jedoch die Netzwerke, die von NIS bedient werden, zumindest ein.
Jedem der zu NIS gehörenden Server kann ein bestimmter Port zugewiesen werden, mit Ausnahme von rpc.yppasswdd — dem Daemon, der Benutzern das Ändern ihrer Login-Passwörter erlaubt. Indem Sie den anderen beiden NIS-Server-Daemons, rpc.ypxfrd und ypserv, Ports zuweisen, können Sie Firewall-Regeln erstellen, um die NIS-Server-Daemons noch mehr vor Eindringlingen zu schützen.
Hierzu fügen Sie die folgenden Zeilen zu /etc/sysconfig/network hinzu:
YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835" |
Die folgenden IPTables-Regeln können erlassen werden, um festzulegen, welches Netzwerk der Server für diese Ports abhören soll:
iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 834 -j DROP iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 835 -j DROP |
![]() | Tipp |
---|---|
Unter Kapitel 7 finden Sie weitere Informationen zum Errichten von Firewalls mit dem IPTables-Befehl. |
Einer der größten Mängel beim Verwenden von NIS für Authentifizierung ist, dass wenn sich ein Benutzer an einem Computer anmeldet, ein Passwort-Hash der /etc/shadow-Map über das Netzwerk verschickt wird. Wenn ein Angreifer Zugang zu einer NIS-Domain erhält und Verkehr über das Netzwerk durchschnüffelt, können Benutzernamen und Passwort-Hashes unbemerkt gesammelt werden. Mit genügend Zeit kann dann ein Passwort-Knack-Programm schwache Passwörter ermitteln und ein Angreifer kann dann auf einen gültigen Account im Netzwerk zugreifen.
Da Kerberos Verschlüsselungen mit geheimen Schlüsseln einsetzt, werden niemals Passwort-Hashes über das Netzwerk versandt, was das System erheblich sicherer macht. Weitere Informationen über Kerberos finden Sie im Kapitel Kerberos im Red Hat Enterprise Linux Referenzhandbuch.
Zurück | Zum Anfang | Nach vorne |
Portmap sichern | Nach oben | Sicherung von NFS |