PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NFS und SSH Tunnel



snoopy_1978
19.09.07, 08:19
Hallo zusammen,

versuche gerade verzweifelt, ein NFS Export über einen SSH Tunnel auf einem entfernten Rechner zu mounten. Habe dazu diverse Tutorials im Netz gefunden, in denen stand, der nfsd horcht immer auf 2049, den rpc.mountd kann man mit -p auf einen Port (z.B. 32767) "festnageln". Habe den Server dementsprechend geconft; hier netstat und rpcinfo -p Ausgaben:



$ netstat -anp|grep 32767
tcp 0 0 0.0.0.0:32767 0.0.0.0:* LISTEN 31269/rpc.mountd
udp 0 0 0.0.0.0:32767 0.0.0.0:* 31269/rpc.mountd

$ rpcinfo -p
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
.
.
100005 1 udp 32767 mountd
100005 1 tcp 32767 mountd



Auf dem Client öffne ich so eine SSH Verbindung:



$ ssh -L 10010:localhost:2049 -L 10011:localhost:32767 testix


Die auch funktioniert:


$ netstat -anp|grep 10010
tcp 0 0 :::10010 :::* LISTEN 5763/ssh
$ netstat -anp|grep 10011
tcp 0 0 :::10011 :::* LISTEN 5763/ssh


Wenn ich jetzt einen mount versuche sehe ich auf dem Client:



$ mount -t nfs -o port=10010,mountport=10011 localhost:/test /mnt/test
mount: localhost:/test failed, reason given by server: Permission denied


und auf dem Server in der /var/log/messages



Sep 19 09:11:09 testix rpc.mountd: refused mount request from localhost for /test (/test): illegal port 58677


Wie kommt der Server (oder ist das in dem Fall der Client?) auf diesen Port, obwohl der mit -p festgesetzt ist?
Ein wiederholter mount zählt den Port auf dem Server übrigens immer weiter hoch...

Der Vollständigkeit halber hier der Eintrag aus der /etc/exports:



/test 127.0.0.1/255.255.255.0(rw,async,no_root_squash)


Genau zu diesem Thema existiert hier schon dieser Thread:

http://www.linuxforen.de/forums/showthread.php?t=207118

leider hat der Autor nicht geschrieben, wie er den mount dann doch hinbekommen hat...

Hat jmd. ne idee?

Vielen Dank schon mal und viele Grüße!

derRichard
19.09.07, 20:16
hallo!

meins wissens geht das nur wenn nfs über tcp verwendest.

//richard

Columbo0815
20.09.07, 11:08
hallo!

meins wissens geht das nur wenn nfs über tcp verwendest.

//richard

Richtig. Denn ssh kann nur tcp tunneln. Für udp bräuchte man dann schon zB OpenVPN.

BedriddenTech
21.09.07, 01:53
NFS over TCP mußt du im Kernel aktivieren. Um ganz sicher zu gehen, kannst du dem nfsd die Option "-U" mitgeben, das hält ihn davon ab, auf UDP-Verbindungen überhaupt zu horchen. Ich glaube aber nicht, daß "-U" notwendig ist; wenn der Kernel NFS over TCP kann, horcht der nfsd normalerweise auch auf 2049/tcp.

derRichard
21.09.07, 01:56
hi!

im kernel sollte es eh per default sein.
wichtig ist nur, dass man mit "-o tcp" mountet. :)

//richard