NFS (Network File System) ist ein von FreeBSD unterstütztes Dateisystem, das die gemeinsame Nutzung von Ressourcen zwischen Computern im Netzwerk über das TCP/IP-Netzwerk ermöglicht. Eine unsachgemäße Konfiguration und Verwendung von NFS kann zu Sicherheitsproblemen führen.
Die Unsicherheit von NFS spiegelt sich hauptsächlich in den folgenden vier Aspekten wider:
Fehlender Zugriffskontrollmechanismus
Kein echter Benutzerauthentifizierungsmechanismus, nur Prozessauthentifizierung für RPC/Mount-Anfragen
Ältere Versionen von NFS können es nicht autorisierten Benutzern ermöglichen, gültige Dateihandles zu erhalten
Bei RPC-Fernaufrufen verfügt das SUID-Programm über Superuser-Berechtigungen
Um die oben genannten Sicherheitsrisiken effektiv zu bewältigen, ist es Es wird empfohlen, das folgende Härtungsschema zu verwenden.
Verwenden Sie anonuid, anongid, um das freigegebene Verzeichnis zu konfigurieren, sodass der auf dem NFS-Server bereitgestellte Client nur über minimale Berechtigungen verfügt. Verwenden Sie nicht no_root_squash.
Verwenden Sie Sicherheitsgruppenrichtlinien oder eine iptable-Firewall, um den Bereich der Maschinen zu begrenzen, die eine Verbindung zum NFS-Server herstellen können.
iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
Kontoüberprüfung
Verwenden Sie Kerberos V5 als Anmeldeüberprüfungssystem, bei dem sich alle Besucher zur Verbesserung der Sicherheit mit einem Konto anmelden müssen .
Legen Sie die Anzahl der COPYs für NFSD fest
Unter Linux wird die Anzahl der COPYs für NFSD in der Startdatei /etc/rc.d/init.d/nfs
definiert und der Standardwert ist 8 .
Die optimale Anzahl an COPYs hängt im Allgemeinen von der Anzahl der möglichen Kunden ab. Sie können einen ungefähren optimalen Wert für die Anzahl der KOPIEN ermitteln, indem Sie diesen Parameter manuell testen und einstellen.
Übertragungsprotokoll wählen
Für unterschiedliche Netzwerksituationen wählen Sie gezielt UDP- oder TCP-Übertragungsprotokoll aus. Das Transportprotokoll kann automatisch ausgewählt oder manuell eingestellt werden.
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
Die Übertragungsgeschwindigkeit des UDP-Protokolls ist schnell. Nicht-Verbindung und Übertragung sind praktisch, aber die Übertragungsstabilität ist nicht so gut wie bei TCP. Wenn das Netzwerk instabil ist oder Hacker eindringen, kann es leicht zu erheblichen Leistungseinbußen bei NFS und sogar zu einer Netzwerklähmung kommen. Im Allgemeinen ist NFS mit TCP stabiler und NFS mit UDP schneller.
Wenn weniger Maschinen und gute Netzwerkbedingungen vorhanden sind, kann die Verwendung des UDP-Protokolls zu einer besseren Leistung führen.
Wenn viele Maschinen vorhanden sind und die Netzwerksituation komplex ist, wird die Verwendung des TCP-Protokolls empfohlen (V2 unterstützt nur das UDP-Protokoll).
Es ist besser, das UDP-Protokoll im LAN zu verwenden, da LAN eine relativ stabile Netzwerkgarantie bietet und die Verwendung von UDP eine bessere Leistung bringen kann.
Es wird empfohlen, das TCP-Protokoll im WAN zu verwenden. Das TCP-Protokoll ermöglicht es NFS, die beste Übertragungsstabilität in komplexen Netzwerkumgebungen aufrechtzuerhalten.
Begrenzen Sie die Anzahl der Clients
Ändern Sie /etc/hosts.allow
und /etc /hosts.deny
, um die Anzahl der Clients zu begrenzen.
/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : erlauben
portmap: 140.116.44.125 : erlauben
/etc/hosts.deny
portmap: ALL : deny
Ändern Sie den Standard-NFS-Port
NFS verwendet standardmäßig Port 111. Verwenden Sie den Port-Parameter, um diesen Portwert zu ändern. Durch Ändern des Standardportwerts kann die Sicherheit bis zu einem gewissen Grad verbessert werden.
Konfigurieren von nosuid und noexec
SUID- (Set User ID) oder SGID- (Set Group ID) Programme können normalen Benutzern die Ausführung mit Berechtigungen ermöglichen, die über ihre eigenen hinausgehen. Viele ausführbare SUID/SGID-Programme sind notwendig, können aber auch von einigen böswilligen lokalen Benutzern ausgenutzt werden, um Berechtigungen zu erhalten, die sie nicht haben sollten.
Minimieren Sie die Anzahl der Dateien, deren Besitzer Root ist, oder Dateien mit SUID/SGID-Attributen in der Root-Gruppe. Sie können eine solche Datei löschen oder ihre Attribute ändern, z. B.:
Verwenden Sie die Option nosuid, um die Ausführung des set-UID-Programms auf dem NFS-Server zu deaktivieren. Sie können eine Zeile zu /etc/exports
hinzufügen:
/www www.abc.com(rw, root_squash, nosuid)
Verwenden Sie noexec, um die direkte Ausführung der darin enthaltenen Binärdateien zu verhindern.
Verwandte Empfehlungen:
Was ist NFS? Teilen Sie mit, wie Sie die NFS-Freigabe unter CentOS7 implementieren
Erstellen von FTP-, NFS- und SSH-Servern unter Linux
Einführung und Nutzung des NFS-Dienstes
Das obige ist der detaillierte Inhalt vonBeispielfreigabe für die Sicherheitshärtung des Linux-NFS-Dienstes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!