Bundesamt für Sicherheit in der Informationstechnik

M 5.17 Einsatz der Sicherheitsmechanismen von NFS

Verantwortlich für Initiierung: Administrator, IT-Sicherheitsbeauftragter

Verantwortlich für Umsetzung: Administrator

NFS (Network File System) erlaubt die gemeinsame Benutzung von Dateien auf einem Server von allen Rechnern (Clients) aus, die im selben Netz eingebunden sind und auf dem Server die Rechte dazu bekommen haben. Jeder Server lässt sich auch als Client betreiben und umgekehrt, so dass sichergestellt werden muss, dass jeder Rechner nur mit der für ihn vorgesehenen Funktionalität arbeitet. So ist es z. B. unnötig, den Mount-Daemon mountd oder den NFS-Daemon nfsd auf einem NFS-Client zu starten.

  • Auf einem NFS-Server muss in einer Datei (z. B. /etc/exports oder /etc/dfs/dfstab) jedes Dateisystem bzw. Verzeichnis eingetragen werden, das von anderen Rechnern gemountet werden können soll. Für sie muss folgendes gelten:
    • Es sollten nur Dateisysteme exportiert werden, die unbedingt notwendig sind.
    • Mit den Schlüsselwörtern root und access lassen sich die Rechner genau spezifizieren, für die Dateisysteme zum Export freigegeben werden sollen. Fehlt die Angabe spezieller Rechner, so ist das Dateisystem für alle Rechner freigegeben, was auf keinen Fall geschehen darf!
    • Für Dateisysteme, die nur gelesen werden sollen, und hierzu gehören alle ausführbaren Dateien, sollte die Option ro (read only) benutzt werden.
    • Normalerweise wird die Benutzernummer des Systemadministrators (UID 0) bei NFS-Anfragen auf die Nummer des Benutzers nobody (UID -2 bzw. 65534) umgesetzt, so dass auf Dateien mit der UID 0 über NFS nicht zugegriffen werden kann. Dies gilt nicht für Dateien, die anderen privilegierten Benutzern gehören, wie z. B. bin oder daemon, was auch in Zusammenhang mit der Aufteilung der Administrationstätigkeiten (M 2.32 Einrichtung einer eingeschränkten Benutzerumgebung ) bedacht werden muss, d. h. Dateisysteme mit Dateien dieser Benutzer dürfen nicht exportiert werden. Da jeder Rechner im Netz jede IP annehmen kann und z. B. jeder PC-Benutzer unter DOS root-Privilegien hat, sollte also die Umsetzung von root auf nobody nicht abgeschaltet werden, und es sollte sichergestellt werden, dass ein Eintrag nobody:*:-2:-2:anonymous user:: in der /etc/passwd existiert und wirksam ist. In diesem Zusammenhang muss auch beachtet werden, dass jeder Benutzer, der auf einem Netzrechner root-Privilegien hat (z. B. als PC-Benutzer) über NFS auch jede Gruppenkennung annehmen kann, so dass also kein exportiertes Verzeichnis und keine exportierte Datei Gruppenschreibrechte besitzen sollte und Lese- und Ausführungsrechte nur, soweit dies unumgänglich ist. Außerdem sollte beachtet werden, dass nicht nur einzelne Dateien, sondern alle darüberliegenden Verzeichnisse geschützt werden müssen!
    • Die Option anon=-1 sollte benutzt werden, damit anonyme Anfragen verhindert werden. anon=0 (root) sollte niemals benutzt werden, da hierdurch jedem Benutzer Dateizugriffe mit root-Rechten möglich werden.
  • In Dateien wie z. B. /etc/fstab oder /etc/vfstab sind die Dateisysteme eingetragen, die durch einen Befehl wie z. B. mount -a oder mountall gemountet werden können. Dies kann unter Umständen auch ohne Rückfrage beim Booten geschehen. Diese Datei muss deshalb rechtzeitig auf Korrektheit überprüft werden.
  • /etc/exports und /etc/fstab (bzw. analoge Dateien auf anderen Systemen) sind Systemdateien, auf die nur der Systemadministrator Zugriff haben darf.
  • Zu exportierende Dateisysteme sollten auf einer separaten Platte oder Partition eingerichtet werden, damit z. B. das unbefugte Vollschreiben der Systemplatte durch einen Benutzer von einem anderen Rechner aus verhindert wird.
  • Beim Mounten exportierter Dateisysteme muss die Option nosuid benutzt werden, um die Ausführung von suid-Programmen auf dem Client zu verhindern.
  • Wenn möglich, sollte der NFS-Daemon so konfiguriert werden, dass er automatisch eine Überprüfung der Portnummern durchführt, um sicherzustellen, dass Pakete nur von den privilegierten Ports 0 - 1023 akzeptiert werden.
  • Zur Kennzeichnung von Dateien werden zwischen Client und Server so genannte File-Handles benutzt, die sich sehr leicht erraten lassen. Sie sollten deshalb mit Hilfe des Programms fsirand randomisiert werden.
  • Wenn vorhanden, sollte SECURE-NFS benutzt werden, so dass die Daten verschlüsselt übertragen werden. Dabei sind folgende Schritte wichtig:
    • Erzeugung von Schlüsseln für alle NFS-Benutzer,
    • Löschen des public key für den Benutzer nobody,
    • auf dem NIS-Masterserver darf rpc.ypupdated nicht laufen,
    • Übertragung der public key map auf alle Rechner, bevor SECURE-NFS gestartet wird,
    • Benutzung von keylogin und keylogout zur Erzeugung von private keys beim Ein- und Ausloggen,
    • auf jedem Client muss der keyserv-Daemon laufen,
    • beim Mounten muss die Option secure benutzt werden,
    • die Uhren auf allen Rechnern müssen synchronisiert werden, da die übertragenen Pakete mit Zeitmarken versehen werden, um das Wiedereinspielen von Nachrichten zu verhindern.

Prüffragen:

  • Ist sichergestellt, dass jeder Server und jeder Client nur mit der für ihn vorgesehenen Funktionalität arbeitet?

  • Sind in der Datei /etc/exports und/oder /etc/dfs/fstab die mountbaren Dateisysteme beziehungsweise Verzeichnisse auf ein notwendiges Maß reduziert?

  • Sind in die mountbaren Dateisysteme beziehungsweise Verzeichnisse nur für bestimmte IT -Systeme und/oder Benutzer unter Berücksichtigung der festgelegten Berechtigungsstruktur freigegeben?

  • Einsatz von SECURE-NFS : Werden die Sicherheitsmechanismen und -einstellungen zu SECURE-NFS genutzt?

Stand: 13. EL Stand 2013

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK