Dies hängt von der Version des Protokolls ab, das Sie verwenden möchten. NFS 4 benötigt nur 2049, während ältere Versionen mehr benötigen.
lzap
Antworten:
97
$ rpcinfo -p | grep nfs
Port 111 (TCP und UDP) und 2049 (TCP und UDP) für den NFS-Server.
Es gibt auch Ports für den Cluster- und Clientstatus (Port 1110 TCP für den ersteren und 1110 UDP für den letzteren) sowie einen Port für den NFS-Sperrmanager (Port 4045 TCP und UDP). Nur Sie können bestimmen, welche Ports Sie zulassen müssen, je nachdem, welche Dienste über das Gateway hinweg benötigt werden.
Ich wusste nichts über rpcinfo, das ist sehr nützlich. Ich habe den Port 111 mit dem nicht gesehen grep nfs, aber ich habe das grep weggelassen, um zu erfahren, dass 111 für ist portmapper. Auch gut zu wissen! (und wie du schon erwähnt hast, notwendig)
kenny
@KennyYounger rpcinfo ist auch nützlich. Wenn dies Ihre Frage beantwortet hat, vergessen Sie nicht, sie als Antwort für zukünftige Zuschauer zu markieren.
Wesley
6
Sie müssen mountd öffnen, wenn Sie das Dateisystem zum ersten Mal mounten. Es läuft auf einem dynamischen Port, daher ist es nicht immer dasselbe. Ich habe in meiner Antwort einen Link zu einer Anleitung eingefügt.
Bonsaiviking
1
Vielen Dank @bonsaiviking. Kritische Informationen für diesen Prozess. Ich habe deine Antwort positiv bewertet!
Kenny
Können Sie kurz beschreiben, was diese Dienste ("Cluster- und Client-Status", "NFS-Sperr-Manager") tun und wann sie möglicherweise benötigt werden? Wenn diese Dienste von einer Firewall blockiert werden, werden die NFS-Server und -Clients dann ordnungsgemäß beeinträchtigt, oder wird nur das Warten auf eine Antwort gesperrt?
Nathan Craike
27
Zusätzlich zu 111 für portmapper und 2049 für nfs müssen Sie den mountd-Port und möglicherweise rquotad, lockd und statd zulassen, die alle dynamisch sein können. In diesem hervorragenden NFS-Sicherheitshandbuch wird empfohlen, die Startskripts und Kernelmodulkonfigurationen so zu ändern, dass sie statische Ports verwenden.
Wir bevorzugen wirklich Inhalte, keine Verweise auf Inhalte. Eine Vorschau des Inhalts mit einem Link ist auch in Ordnung und einem Link vorzuziehen.
User9517
2
Ich bin mir 2012 nicht sicher, aber die Empfehlung in den Links scheint grob veraltet zu sein. NFS über TCP wird aus verschiedenen Gründen bevorzugt, und NFS über UDP kann aufgrund von Protokollbeschränkungen zu einer unbeaufsichtigten Datenbeschädigung bei einer schnellen Verbindung führen. Sicherheitsleitfaden hat keine Erwähnung von Kerberos / GSS usw.
Maciej Piechotka
In Bezug auf mountd ist das Leben viel einfacher, wenn Sie eine Neukonfiguration durchführen, um sicherzustellen, dass der mountd-Port fest ist. Bearbeiten Sie auf Debian-Systemen den Wert von RPCMOUNTDOPTS auf so etwas wie RPCMOUNTDOPTS="--port 34567"und starten Sie dann mit sysctl --systemund neu/etc/init.d/nfs-kernel-server restart
user45793
14
Auf dieser Seite habe ich nützliche Anweisungen für mein Problem gefunden, aber es gab kein leicht zu befolgendes Rezept. Also hier ist mein Rezept.
TL; DR - müssen beide nfs-Ports (111, 2049) und mountd-Port nach der Korrektur zulassen.
Anleitung:
Einen festen Port für mountd einrichten
gksudo gedit /etc/default/nfs-kernel-server
Kommentiere diese Zeile aus: RPCMOUNTDOPTS=--manage-gids
füge dies stattdessen hinzu: RPCMOUNTDOPTS="--port 33333"
Oder eine andere Portnummer.
versuche nun nfs zurückzusetzen mit:
sudo service nfs-kernel-server restart
Und testen Sie, ob es geholfen hat mit:
rpcinfo -p | grep "tcp.*mountd"
Für mich war es nicht genug, aber ein vollständiger Neustart behebt das Problem.
(1) alte Regeln löschen, manuell ausführen oder zurücksetzen, wenn dies die einzige Verwendung für die Firewall ist:
sudo ufw reset
sudo ufw enable
(2) nfs & mountd ports hinzufügen
sudo ufw allow in from 10.0.0.1/20 to any port 111
sudo ufw allow in from 10.0.0.1/20 to any port 2049
sudo ufw allow in from 10.0.0.1/20 to any port 33333
(Wechseln Sie zu Ihrer lokalen IP-Adresse oder zu " any" anstelle von 10.0.0.1/20)
Sie müssen nicht die gesamte Box neu starten. Eine einfache sudo service nfs-config restartvor dem Neustart der nfs-kernel-serverwird gut tun.
showp1984
@ showp1984 danke, ich werde das nächste Mal versuchen
Amir Uval
Oder wenn Ihr System verwendet systemctl, ist es systemctl restart nfs-kernel-server.service.
7.
Sie können auch alles in einem Wellengang machen: sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333gefolgt von (ok, zwei Wellengänge) sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333. Beachten Sie, dass Port 33333 dem obigen Beispiel entspricht. Sie können einen anderen Port verwenden, wie in der Antwort angegeben.
7.
5
Dies gibt eine Liste aller Ports, die von allen NFS-bezogenen Programmen verwendet werden:
Für die Datensätze musste ich Berechtigungen für die Ports 111, 2049 UND 1048 für eine Konfiguration hinzufügen, bei der eine NFS-Freigabe von einem Windows 2008 R2-Server exportiert wird und die Clients Ubuntu 12.04.4 sind.
Es kann hilfreich sein, zu erklären, warum Sie Port 1048 benötigten und wie Sie dies festgestellt haben.
HBruijn
3
Ehrlich gesagt habe ich keine Ahnung, warum ich eine Erlaubnis für 1048 hinzufügen musste, aber das Hinzufügen löste mein Problem. Ich wollte nur mitteilen, ob das in Zukunft jemand anderem Zeit spart. Es tut mir leid, dass ich die Frage nicht beantworten kann.
Antworten:
Port 111 (TCP und UDP) und 2049 (TCP und UDP) für den NFS-Server.
Es gibt auch Ports für den Cluster- und Clientstatus (Port 1110 TCP für den ersteren und 1110 UDP für den letzteren) sowie einen Port für den NFS-Sperrmanager (Port 4045 TCP und UDP). Nur Sie können bestimmen, welche Ports Sie zulassen müssen, je nachdem, welche Dienste über das Gateway hinweg benötigt werden.
quelle
grep nfs
, aber ich habe das grep weggelassen, um zu erfahren, dass 111 für istportmapper
. Auch gut zu wissen! (und wie du schon erwähnt hast, notwendig)Zusätzlich zu 111 für portmapper und 2049 für nfs müssen Sie den mountd-Port und möglicherweise rquotad, lockd und statd zulassen, die alle dynamisch sein können. In diesem hervorragenden NFS-Sicherheitshandbuch wird empfohlen, die Startskripts und Kernelmodulkonfigurationen so zu ändern, dass sie statische Ports verwenden.
Zusätzlich zu der obigen Anleitung, die einen Abschnitt über Firewalls enthält , finden Sie meine Antwort auf eine andere Frage zum Härten von NFS.
quelle
RPCMOUNTDOPTS="--port 34567"
und starten Sie dann mitsysctl --system
und neu/etc/init.d/nfs-kernel-server restart
Auf dieser Seite habe ich nützliche Anweisungen für mein Problem gefunden, aber es gab kein leicht zu befolgendes Rezept. Also hier ist mein Rezept.
TL; DR - müssen beide nfs-Ports (111, 2049) und mountd-Port nach der Korrektur zulassen.
Anleitung:
Einen festen Port für mountd einrichten
RPCMOUNTDOPTS=--manage-gids
RPCMOUNTDOPTS="--port 33333"
Oder eine andere Portnummer.
versuche nun nfs zurückzusetzen mit:
Und testen Sie, ob es geholfen hat mit:
Für mich war es nicht genug, aber ein vollständiger Neustart behebt das Problem.
( Kredit )
Firewall einrichten
(1) alte Regeln löschen, manuell ausführen oder zurücksetzen, wenn dies die einzige Verwendung für die Firewall ist:
(2) nfs & mountd ports hinzufügen
(Wechseln Sie zu Ihrer lokalen IP-Adresse oder zu "
any
" anstelle von10.0.0.1/20
)Das ist alles, was dazu gehört.
quelle
sudo service nfs-config restart
vor dem Neustart dernfs-kernel-server
wird gut tun.systemctl
, ist essystemctl restart nfs-kernel-server.service
.sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333
gefolgt von (ok, zwei Wellengänge)sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333
. Beachten Sie, dass Port 33333 dem obigen Beispiel entspricht. Sie können einen anderen Port verwenden, wie in der Antwort angegeben.Dies gibt eine Liste aller Ports, die von allen NFS-bezogenen Programmen verwendet werden:
quelle
Mit FERM kann man Backticks verwenden , um die Ports von rpcinfo abzurufen, zum Beispiel:
Server:
Klient:
(Wenn Sie nur TCP verwenden möchten, benötigen Sie nur den
proto tcp
Teil).quelle
Für die Datensätze musste ich Berechtigungen für die Ports 111, 2049 UND 1048 für eine Konfiguration hinzufügen, bei der eine NFS-Freigabe von einem Windows 2008 R2-Server exportiert wird und die Clients Ubuntu 12.04.4 sind.
Ich hoffe das hilft jemandem.
quelle