NFS als 3rd-party-apps

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
da ich in den letzten Tage doch immer wieder auf das Thema NFS gestoßen bin (wie schalte ich das an usw.), habe ich jetzt eine Web-Seite dazu geschrieben, die das NFS initialisiert und steuert. Natürlich wir diese Web-Seite auch wieder als 3rd-party-apps in den Disk Station Manager integriert.

(1) Also erstmal ein Verzeichnis erstellen: /usr/syno/synoman/webman/3rdparty/nfs und da hinein die Datei application.cfg mit folgendem Inhalt:
Rich (BBCode):
text = NFS
description = NFS
type = embedded
path = /phpsrc/nfs/nfs.php
(2) Ein Verzeichnis erstellen /usr/syno/synoman/phpsrc/nfs und da hinein die Datei nfs.php.txt (siehe Anlage) kopieren und dann umbennen in nfs.php.
(3) Disk Station Manager refreshen und den Eintrag NFS anschauen.

Bedienung:
Ist eigentlich alles selbst erklärend. Mit dem erstmaligen start NFS wird NFS komplett als Dienst eingerichtet, auch wenn es vorher noch nie lief (also es sind keine manuellen Änderungen mehr per vi auf der Kommandozeile nötig). Sollte bereits eine angepasste S83nfsd.sh existieren, dann wird ein Backup angelegt.

Leider weiß ich nicht mehr genau, ob die Datei /etc/exports bereits durch die Firmware mit eingerichtet wurde. Ich geh mal davon aus, dass sie es war. Ansonsten bitte feed-back geben und im Zweifelsfall selbst als leere Datei anlegen.

Für neue NFS-Freigaben (unter NFS heißt das export-Liste) einfach in die Felder doppelklicken, dann erscheint ein Popup mit einigermaßen sinnvollen Vorschlägen für die Verzeichnisse und die User. Der *-User hießt, alle dürfen zugreifen. Wer mehr als meine Options-Vorgaben haben möchte bzw. mit den Optionen herumspielen will, und sich nicht genau auskennt, kann auf den Manual-Seiten-Link klicken und sich dort schlau machen, was es alles so gibt. Vielleicht geht die eine oder andere Option beim Syno-NFS nicht, aber das habe ich nicht ausprobiert.

Wer mehr als 2 neue Freigaben eingeben möchte, muss zunächst zwei erfassen, dann auf save /etc/exports drücken und schon sind weitere 2 Leerzeilen hintendran. Ihr kennt das ja schon von den CronJobs ;)

Wer von anderen Systemen NFS-Shares mounten will, muss weiterhin auf der Kommandozeile herumturnen. Das habe ich nicht vorgesehen, weil es ja für einen Datei-Server eher ungewöhnlich ist. (Wäre ja sowas wie ein sml-client bei Samba). Allerdings möglich wäre das schon. ;)

Anmerkung: Falls jemand die Datei nfs.php ändern will, dann bitte nur mit einem Editor, der Linux-Zeilenenden kann. Normalerweise ist das bei PHP-Skript-Dateien egal, aber in diesem Fall gibt es eine Shellskript-Text in der Datei (es handelt sich um die S83nfsd.sh-Datei), welches als Shell-Skript nur dann funktioniert, wenn die Linux-Zeilenumbrüche erhalten bleiben.

Bevor ich es vergesse: es geht wie immer alles auf eigene Kappe. Wenn Fehler irgendwo drin sind, bitte posten. Wenn Verbesserungen erwünscht sind, auch posten.

Das obligatorische Motivations-Bildchen :D :
|
 

Anhänge

  • nfs.php.txt
    5,6 KB · Aufrufe: 85
  • nfs1.jpg
    nfs1.jpg
    89,9 KB · Aufrufe: 424

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Genial! Das werd ich sobald wie möglich ausprobieren!
 

Jochen

Benutzer
Mitglied seit
24. Jul 2008
Beiträge
49
Punkte für Reaktionen
0
Punkte
0
Ist ja echt genial!
Wie läuft das denn mit den Zugriffsrechten beim NFS auf der DS? Der SMB- und der AFP-Server sind ja speziell programmiert, sodaß nicht die Unix-Rechte zählen, sondern die in der Web-Konfig angelegten User und Rechte.
Ist der NFS-Server genauso programmiert, oder ist das der Standard-Server vom Linux (welcher auf den Unix-Rechten basiert).
Beim NFS werden die Rechte normalerweise über UID und GID gesteuert, d.h. die User müssen auf allen Systemen mit gleicher UID und GID angelegt werden. Wie ist das hier? Im Webkonfig kann ich ja keine User mit UID und GID anlegen.
Außerdem weden die Files per SMB und AFP mit mode 777 angelegt. Würde NFS die Unix-Rechte nehmen, hätte jeder Zugriff auf alles. Das wäre dann ja nicht so toll.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
hi Jochen,

Stand der Dinge ist, dass NFS zur Zeit noch völlig ohne die Web-Konfig des DiskStation Managers läuft.

Wenn du dir die /etc/exports-Zeile genau anschaust, dann siehst dort ein *. Das steht für 'beliebigen User'. Da kann man aber auch Usernamen spezifizieren (Doppelklick und man bekommt sie angezeigt). Wie der Zusammenhang zwischen lokalem und remoten User-Rechten aussieht, kannst du in jedem NFS-Handbuch nachlesen (link). Und du hast natürlich mit deiner Vermutung bezüglich der Rechte recht. :)

Was ich gemacht habe, ist nur eine Oberfläche für den NFS. Wie man damit umgeht, muss man schon irgendwo her wissen. Die meisten, die mit NFS arbeiten, kennen das meist schon für ihre Belange; und für restliche Kompliziertheit des NFS interessiert sich kaum jemand. Der Vorteil der Oberfläche liegt darin, dass man nicht mehr auf der Kommandozeile herumturnen muss.

itari
 

Jochen

Benutzer
Mitglied seit
24. Jul 2008
Beiträge
49
Punkte für Reaktionen
0
Punkte
0
Ok, dann ist das so wie ich vermutet habe. der nfsd in der DS arbeitet wie gewöhnlich mit den Rechten im Unix-Filesystem, und dieses Vorgehen ist auf der DS nicht zu gebrauchen, weil alles mit 777 angelegt wird, und weil keine Unix-User angelegt werden. Per NFS ist man also immer der "nobody", und dank 777 hat man Zugriff... leider auf alles... mit Schreibrechten.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
@Jochen,

versteh tu ich nicht, was du da schreibst.

Ich hab ein Linux auf meinem PC als virtuelles System laufen. Für dieses Linux hab ich auf der DS ein Verzeichnis in der /etc/export freigegeben. Auf dem Linux mounte ich das. Dort bin ich der Benutzer root und lege eine Datei namen test an. Diese Datei sieht sowohl auf dem PC (Linux) als auch auf der DS wie folgt aus:

-rw-r--r-- 1 root root 5 Aug 4 16:17 test

Ich bin da weder nobody noch sind die Rechte 777, weil meine Shell unter Linux ja eine umask 002 hat.

Reden wir wirklich von der gleichen Geschichte???
 

Jochen

Benutzer
Mitglied seit
24. Jul 2008
Beiträge
49
Punkte für Reaktionen
0
Punkte
0
Ja, wir reden vom Gleichen.
1. muss ich dir hoffentlich nicht erklären warum man unter Unix nicht als root arbeitet. ;)
Versuch das gleiche mal mit einem normalen User. Du wirst die Rechte des Users nobody bekommen, da es deinen User i.d.R. nicht auf der DS gibt (falls du ihn nicht dort angelegt hast). In einem sicher konfigurierten NFS wirst du als root ebenfalls die Rechte des users nobody bekommen. Aber vom Thema Sicherheit fange ich lieber nicht an, die DS ist offen wie ein Scheunentor! :mad:

2. wenn du ein heterogenes Netz hast, in dem auch Windows PCs per CIFS auf das NAS zugreifen, so werden deren Dateien und Ordner mit Mode 777 angelegt. Jeder NFS-User hätte vollen Zugriff auf diese Dateien.

Es hat schon seinen Grund warum Synology das NFS offiziell nicht supported.
 

sixpack12

Benutzer
Mitglied seit
04. Feb 2008
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Hallo itari

Erstmal 1000 Dank.
Die exports musste dabei erstellt werden.

2 Fragen hätte ich:

1.
...die DS ist offen wie ein Scheunentor!

Was ist damit gemeint? Nach draussen?

2.
/var/lib/nfs/rmtab ist vorhanden, trotzdem wird kein log angezeigt, kann ich das irgendwo ändern?




Gruss sixpack12
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ja, wir reden vom Gleichen.
1. muss ich dir hoffentlich nicht erklären warum man unter Unix nicht als root arbeitet. ;)
Versuch das gleiche mal mit einem normalen User. Du wirst die Rechte des Users nobody bekommen, da es deinen User i.d.R. nicht auf der DS gibt (falls du ihn nicht dort angelegt hast). In einem sicher konfigurierten NFS wirst du als root ebenfalls die Rechte des users nobody bekommen. Aber vom Thema Sicherheit fange ich lieber nicht an, die DS ist offen wie ein Scheunentor! :mad:

2. wenn du ein heterogenes Netz hast, in dem auch Windows PCs per CIFS auf das NAS zugreifen, so werden deren Dateien und Ordner mit Mode 777 angelegt. Jeder NFS-User hätte vollen Zugriff auf diese Dateien.

Es hat schon seinen Grund warum Synology das NFS offiziell nicht supported.

Also ich habe keine Probleme damit, mit root unter Linux/Unix zu arbeiten :D. Und erklärt hat mir auch noch keiner, warum ich das ausgerechtet auf einer DS nicht sollte, wenn ich auf die DS Programme schieb.

Klar muss man NFS ein wenig konfigurieren (User usw.) Hab ich auch nie was anderes gesagt. Und NFS ist, wie Samba auch, nicht unbedingt ganz einfach. Aber so negativ gleich darüber herzufallen, nur weil nicht gleich alles von Synology verbogen wurde, versteh ich nicht.

Ich finde, NFS ist eine schöne Möglichkeit von Linux-PCs auf die DS zuzugreifen und sie als File-Server einzusetzen. Ob man dann auch noch einen Mischmasch mit Samba-Shares anfangen muss, ist ja wirklich Geschmackssache.

Ob Synology NFS offiziell supportet oder nicht, ist ein eigentlich komischer Satz. Angenommen, es gäbe keinen Disk Station Manager, wäre dann die DS nicht auch bereits schon komplett genug??? :D

Fakt ist, dass NFS zur Grundausstattung einer DS gehört.

itari
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
@sixpack,

ob die DS nach draußen (Internet) sicher ist, liegt an den Einstellungen des Routers, der die DS mit den Internet verbindet. Dort wird eingestellt, welche Datenpakte (mit Portnummern) wie durchgereicht werden.

Netzwerk bedeutet ja immer, dass sich Programm unterhalten wollen. Zum Identifizieren benutzen diese Programme bei dem Netzwerkprotokoll TCP/IP die IP-Adressen der Netzwerkkarten und darauf aufbauend die Portnummern des Interprocess-Management-Moduls (meist werden fürs Netzwerk RPCs verwendet= remote procedure calls) im Kernel. Damit nun Netzwerk geht, müssen einige Programme den Server-Part übernehmen, damit sich von den anderen Programmen (die den Client-Part spielen) erreichbar sind. Diesen Server-Part kann ein Programm nur dann spielen, wenn es (1) immerzu läuft und (2) auf Anfragen bezüglich seinen/seiner geöffneten Ports (eigentlich IP-Nummer plus Portnummer) wartet. Dies wäre auch der Angriffspunkt von bösen Buben/Mädels.

Man kann nun Programme davor schalten, die in die ankommenden Datenpakete hineinschauen und sie analysieren (diese Programme nennt man Firewall-Programme oder auch IP-Filter-Programme). Man kann aber auch auf dem Standpunkt stehen, dass die den Server-Part spielenden Programme so clever sein müssen, Angriffe zu erkennen (was sie aber meist nicht tun, weil es nicht ihr Job ist). Ein Liste aller Ports die durch Server-Part spielenden Programme geöffnet wurden, erhält man mit: netstat -a bzw netstat -an.

Zu NFS: natürlich starten wir auch ein NFS-Server-Programm (nfsd). Dieses lässt alle von NFS-Client-Programmen an sich geschickten Anfragen erst einmal zu und prüft diese gegen die Regeln in der /etc/exports. Solange der Router aber die Port des nfsd nicht durchlässt, ist vom Internet her die Geschichte dicht. Ja und was du im lokalen Netz alles anstellst, liegt in deiner Hand, weil man ja erstmal davon ausgeht, dass es im lokalen Netz kein Gefährdungspotential gibt.

Zu deiner zweiten Frage, schau dir mal die Zugriffsrechte an: sowohl die Dateien als auch die der Pfade. Vielleicht liegt es daran.

Rich (BBCode):
drwxr-xr-x    2 root     root         4096 Aug  4 09:04 .
drwxr-xr-x    3 root     root         4096 Jul  9 07:51 ..
-rw-r--r--    1 root     root          148 Aug  4 09:03 etab
-rw-r--r--    1 root     root          112 Aug  4 16:17 rmtab
-rw-r--r--    1 root     root          158 Aug  4 16:17 xtab

itari
 

Pompom

Benutzer
Mitglied seit
17. Jul 2008
Beiträge
70
Punkte für Reaktionen
0
Punkte
6
Irgrndwie scheibt deine php Datei bei mir die Zeilenumbrüche falsch :cool:
Rich (BBCode):
case $1 in^M
        start)^M
                echo "Starting NFS server..."^M
                /sbin/portmap^M
                /usr/sbin/nfsd^M
                /usr/sbin/mountd^M
                /usr/sbin/exportfs -r >/dev/null 2>&1^M
        ;;^M
        stop)^M
                /usr/sbin/exportfs -au >/dev/null 2>&1^M
                killall -9 mountd^M
                killall -9 nfsd^M
                sleep 1^M
                killall -9 portmap^M
                sleep 3^M
        ;;^M
        restart)^M
                $0 stop^M
                sleep 1^M
                $0 start^M
        ;;^M
esac^M

und das jedes mal wenn ich start NFS drücke:confused:

hast du ne Ahnung worann das liegt?

Gruß Pompom

EDIT: Die Backup.S83nfsd.sh ist aber im verzeichnis vorhanden!
 
Zuletzt bearbeitet:

Jochen

Benutzer
Mitglied seit
24. Jul 2008
Beiträge
49
Punkte für Reaktionen
0
Punkte
0
Man kann aber auch auf dem Standpunkt stehen, dass die den Server-Part spielenden Programme so clever sein müssen, Angriffe zu erkennen
Es gibt keine fehlerfreien Programme. Die meisten Sicherheitslücken entstehen durch irgendwelche Bufferoverflows. Auf der Diskstation hätte der Angreifer dann sofort Root-Rechte. Das lernen bei uns schon die Lehrlinge, das man sowas nicht macht.

was du im lokalen Netz alles anstellst, liegt in deiner Hand, weil man ja erstmal davon ausgeht, dass es im lokalen Netz kein Gefährdungspotential gibt.

So ein NAS setzt man ja nicht ein wenn man der einzige User im Netz ist (denn dann täte es ja eine normale externe Festplatte). Würdest du z.B. deine Familienmitglieder mit Root-Rechten auf deinen Dateien rumfuhrwerken lassen? Ich nicht.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
hi pompom,

ich hatte es schon in meinem ersten Post hier gesagt, dass es Problem mit dem Zeilenenden gibt, wenn man keine Linux-Zeilenumbrüche macht.

Anmerkung: Falls jemand die Datei nfs.php ändern will, dann bitte nur mit einem Editor, der Linux-Zeilenenden kann. Normalerweise ist das bei PHP-Skript-Dateien egal, aber in diesem Fall gibt es eine Shellskript-Text in der Datei (es handelt sich um die S83nfsd.sh-Datei), welches als Shell-Skript nur dann funktioniert, wenn die Linux-Zeilenumbrüche erhalten bleiben.|

Wenn du keinen Editor hast, der dir die Datei als Linux-Datei abspeichert, kannst auch mal folgendes probieren: sed 's/.$//' <nfs.php >nfs1.php und dann umbennen: mv nfs.php nfs.php.org; mv nfs1.php nfs.php. Vielleicht klappt das ja auch.

itari
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
So ein NAS setzt man ja nicht ein wenn man der einzige User im Netz ist (denn dann täte es ja eine normale externe Festplatte). Würdest du z.B. deine Familienmitglieder mit Root-Rechten auf deinen Dateien rumfuhrwerken lassen? Ich nicht.
Bei meiner Familie sehe ich da kein Problem. ;) Ich sehe allerdings auch, dass die Sicherheitsproblematik bei den Disk Stations schwieriger wird, wenn wir über ein Firmennetzwerk reden, wo man nicht mehr die Kontrolle über alle Benutzer hat.

Trolli
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Es gibt keine fehlerfreien Programme. Die meisten Sicherheitslücken entstehen durch irgendwelche Bufferoverflows. Auf der Diskstation hätte der Angreifer dann sofort Root-Rechte. Das lernen bei uns schon die Lehrlinge, das man sowas nicht macht.

:confused: Hab ich was gegen die aktuelle Lehrlingsausbildung gesagt? Ich bin auch der Meinung, dass es keine fehlerfreien Programme gibt, genauso wenig wie fehlerfreie Menschen (Die meisten Programmen sind ja von Menschen geschrieben worden). Ich habe lediglich darauf hingewiesen, dass es viele Programme gibt, die nur ihren Job machen und sich um andere Dinge nicht weiter kümmern. Das sollte man wissen, damit man nicht falschen Vorstellungen aufsitzt. Ansonsten finde ich Sicherheitslücken nicht weiter problematisch, solange Sicherheit nicht wirklich ein Rolle spielt. Ich finde nur falsche Vorstellungen darüber problematisch :D

So ein NAS setzt man ja nicht ein wenn man der einzige User im Netz ist (denn dann täte es ja eine normale externe Festplatte).

Ich denke, jeder hat so seine Vorstellungen darüber, wann und warum er/sie ein NAS einsetzt. Ich persönlich überlasse es gerne jedem selbst, den 'richtigen' Gebrauchszweck für seine NAS zu finden.

Würdest du z.B. deine Familienmitglieder mit Root-Rechten auf deinen Dateien rumfuhrwerken lassen? Ich nicht.

Da hätte ich keine Probleme mit. Erstens dürfen die sowieso immer alles :D. Zweitens kenn ich die gut genug und weiß, dass sie keinen Unsinn anstellen. Und drittens hab ich ne Sicherung.

Jochen, ich denke, die Diskussion zwischen uns bringt es nicht wirklich, weil wir uns beiden nicht wirklich was beweisen müssen. Deshalb ein Friedensangebot: Setzt NFS bei dir nicht ein ;), aber vermies es den anderen nicht, die es möchten oder brauchen oder einfach nur kennen lernen möchten.

itari
 
Zuletzt bearbeitet:

Jochen

Benutzer
Mitglied seit
24. Jul 2008
Beiträge
49
Punkte für Reaktionen
0
Punkte
0
Friedensangebot: Setzt NFS bei dir nicht ein ;), aber vermies es den anderen nicht, die es möchten oder brauchen oder einfach nur kennen lernen möchten.
Ok. Aber verbreite du bitte auch nicht eine trügerische Sicherheit. Die meisten Anwender wissen überhaupt nichts über die Technik, und ein bisschen Aufklärung tut allen ganz gut. SMB und AFP sind auf der DiskStation deutlich sicherer als NFS. Wenn Sicherheit keine Rolle spielt kann man natürlich gerne NFS einsetzen, aber man darf das Thema nicht tot schweigen!

Wenn alle Familienmitglieder sich mit dem selben Account einloggen (hoffentlich nicht root), dann braucht man in der Tat keinen Schutz der Dateien. Wenn man aber aus Sicherheitsgründen für jedes Familienmitglied einen eigenen Account einrichtet, dann sollte man das auch beim Thema NFS nicht ausser Acht lassen.
 

Pompom

Benutzer
Mitglied seit
17. Jul 2008
Beiträge
70
Punkte für Reaktionen
0
Punkte
6
hi pompom,

ich hatte es schon in meinem ersten Post hier gesagt, dass es Problem mit dem Zeilenenden gibt, wenn man keine Linux-Zeilenumbrüche macht.



Wenn du keinen Editor hast, der dir die Datei als Linux-Datei abspeichert, kannst auch mal folgendes probieren: sed 's/.$//' <nfs.php >nfs1.php und dann umbennen: mv nfs.php nfs.php.org; mv nfs1.php nfs.php. Vielleicht klappt das ja auch.

itari

Ich hatte die Datei nicht verändert warscheinlich wurde sie schon durch Windows beim runterladen geändert :confused:
keine Ahnung ich kab die Steuerzeichne mit vi rausgelöscht!

Danke für deine Hilfe!:)
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Also für mich kommt NFS wenn überhaupt nur für meinen Mediaplayer in Frage, damit erziele ich möglicherweise eine höhere Performance. Wenn ich da mache, werde Ich NFS allerdings nur für dieses eine Verzeichnis und read-only einsetzen.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat