SFTP ? allgemein und BSD: was ist das und wie geht das?

pit234a

Well-Known Member
Hi.

Das Ubuntu Netbook Remix, das ich gerade auf meinem neuen Netbook installiert habe, findet im Netzwerk automagisch meinen fileserver und bietet einen SFTP an. Ich fand dazu bei Wikipedia Informationen, aber es sieht so aus, als könne unter diesem Begriff unterschiedliches gemeint sein.
Mit dem Ubuntu kann sich ein Nutzer mit seinem Account-Namen/Passwort bei dem Fileserver anmelden und dieser wird eingebunden, was im Grunde schön un gut ist.
Weniger schön und gut ist, daß diese User nun dort im / landet und auch verbotene Zonen sehen und bearbeiten darf.
Der ftp Dienst, der auf dem Server läuft, zwingt die Nutzer in ihre Verzeichnisse.
ssh habe ich freigegeben, damit die Nutzer ihre eigenen Accounts auch selbst verwalten können.
Die laufenden Dateidienste exportieren nur weit unterhalb von /pfad/zu/exports.

Wenn ich nun den SFTP irgendwie einstellen, also konfigurieren könnte, wäre das schön. Wenn nicht, möchte ich, daß der aufhört.
Ich war mit nicht bewusst, daß ich ihn überhaupt zugelassen hatte.

Ich weiß und erwähne es ausdrücklich nochmals: ich bin da unbedarft und Laienhaft. Aber, auch als nicht Profi versuche ich mich immer wieder gerne an solchen Dingen und brauche dann auch immer wieder Hilfe. Also, schimpft bitte nicht gleich los, wenn das Thema so flach für euch ist.

edit: Nachtrag: der Fileserver ist ein FreeBSD 7.2 Rechner und stellt NFS, SAMBA, AFP, FTP und SSH.
 
Hi,

Dir ist aber schon klar, dass Dein SFTP unmittelbar mit deinem SSH zusammenhängt? Also alles was Du mit SFTP anstellen kannst (Verzeichnisse sehen, die nicht für Deine Augen bsetimmst sind) kannst Du auch mit SSH erreichen.

Man kann SFTP ohne Shell (mit spezieller Shell --> Stichwort: rssh) machen, aber dann hätten deine User eben kein Shell Zugruff über SSH (csh, bash, etc. )mehr. Alternativ kann man ja entsprechende Verzeichnisrechte setzen auf alle Verzeichnisse, die relevant sind.

viele Grüße
Tom
 
Hi tom81

Nein, es war mir nicht richtig bewußt, daß SFTP tatsächlich auch auf SSH bezogen werden muß. Die Begriffe sind scheinbar nicht ganz eindeutig. Doch, ja, ich hatte schon so einen Verdacht.
Kann ich ssh so begrenzen, daß, daß die User nur in ihren ~./heimat-ordnern bleiben dürfen?
Wohl eher nicht, wenigstens ls geht ja sicher ins ganze System.
Dann kann ich vielleicht ssh abschalten und nur telnet zulassen?
Oder geht es, diesen SFTP dezidiert nicht zu wollen, trotzdem ssh und ftp laufen zu lassen?
 
Kleine Anmerkung am Rande: Manche Leute (und damit auch einige Artikel u. Anleitungen) bezeichnen auch FTP über SSL als SFTP, um dem vorzubeugen sollte aber FTPS verwendet werden.

Vielleicht bist du deshalb der Meinung, dass es mehreres bedeutet.
 
Seit Version 4.9 geht das sogar ohne großes Zusatz-Geraffel. Eine kleine Anleitung habe ich hier gefunden: http://blog.schalanda.name/archives/154-chroot2-Unterstuetzung-fuer-OpenSSH.html

Danke für den Link.
Aus der man hatte ich entnommen, daß ich "ChrootDirectory %h" setzen kann und dann hatte ich "Subsystem internal-sftp" versucht und bekam immer Fehlermeldungen, die mir sagten, mein Chrrot-Directory sei nicht in Ordnung. Ich hatte die man nicht ganz verstanden und dachte, daß es dann eben daran liegt, daß ich keine zusätzliche /dev... und so weiter bereitstelle. Deshalb habe ich dann dieses Subsystem ganz rausgenommen, ich hatte ja ohnehin nicht mit dieser Funktionallität gerechnet.
Die Beschreibung erklär, daß es doch wohl so hätte gelingen sollen und ich werde vielleicht weiter versuchen und meine Syntax kontrollieren, doch im Augenblick bin ich zunächst mit dem Abschalten des Dienstes zufrieden.
Danke.
 
Bei mir funktioniert es mit "ChrootDirectory %h" auch nicht. Dann habe ich ein neues Verzeichnis z. B. "chroot" angelegt mit Unterverzeichnissen für die User. Das chroot-Verzeichnis und die 1. User-Verzeichnisse sind root-owned (d. h. das userspezifische ChrootDirectory). In die 1. User-Verzeichnisse habe ich dann je ein 2. Userverzeichnis angelegt, das user-owned ist.
Mit folgenden Einträgen in der sshd_config funktioniert das dann:
Code:
Subsystem	sftp	internal-sftp
Match User [B]<user1>[/B]
	PasswordAuthentication yes
	[B]ChrootDirectory /chroot/<user1>[/B]
	X11Forwarding no
	AllowTcpForwarding no
	ForceCommand internal-sftp

Match User [B]<user2>[/B]
	PasswordAuthentication yes
	[B]ChrootDirectory /chroot/<user2>[/B]
	X11Forwarding no
	AllowTcpForwarding no
	ForceCommand internal-sftp
Man muss dann immer in das user-owned-Verzeichnis wechseln, aber es funktioniert. Der einzelne User ist in "/chroot/<userX>" eingesperrt.
 
Zurück
Oben