Sftp( only) user in pfsense
-
hallo,
ich versuche mich gerade mit pfsense und das intern im Netz nutzen ( nicht als WAN - Gateway ).
Ich habe einen USB Port den ich in ein Verzeichnis mounte darauf möchte ich per sftp zugreifen ohne aber dem user direkten ssh Zugang zu geben.Ich bin dieser Anletung gefolgt :
http://bin63.com/how-to-set-up-an-sftp-user-on-freebsdChrootDirectory habe ich entsprechend angepasst auf /home/sftp
aber ich bekomme keinen Zugang. Wenn ich als admin versuche geht es .Lande allerdings im home Verzeichnis root.
Kann mir jemand da einen Tip geben ? Ist da unter pfsense irgendwas spezielles zu beachten ?
gruss andy
-
Hat dein User überhaupt Shell Rechte? Die sind in der Userverwaltung extra aufgeführt.
-
Und mit Shell Access bekommt dein User gleich Admin Rechte:
The following privileges effectively give the user administrator-level access because the user gains access to execute general commands, edit system files, modify users, change passwords or similar: User - System: Copy files (scp) User - System: Shell account access WebCfg - All pages WebCfg - Diagnostics: Backup & Restore WebCfg - Diagnostics: Command WebCfg - Diagnostics: Edit File WebCfg - Diagnostics: Factory defaults WebCfg - System: Authentication Servers WebCfg - System: Group Manager WebCfg - System: Group Manager: Add Privileges WebCfg - System: User Manager WebCfg - System: User Manager: Add Privileges WebCfg - System: User Manager: Settings Please take care when granting these privileges.
-
erstmal danke euch beiden für die Antworten.
genau aus dem grund um shell oder ssh rechte einzuschränken hatte ich das gemäß der Anleitung nach Standard Freebsd zu Fuss gemacht. Leider bekomme ich keinen Zugriff per sftp und selbst als Admin komme ich dann in den home folder , statt in den angegebenen sftp ordner.beste grüsse
Andy -
statt in den angegebenen sftp ordner.
Dann ist entweder deine Anleitung verkehrt oder deine Grundannahme. Bei einem SFTP Only Benutzer muss eigentlich - zumindest wenn die SSH Version neu genug ist und das sollte unter pfSense gegeben sein - gar kein großer Akt fabriziert werden. Das einzige WAS aber sein MUSS ist, dass der definierte Home Folder ROOT gehören MUSS. Erst die Subfolder dürfen dann ggf. dem Benutzer gehören, aber der Ordner, in dem man nach Verbindung herauskommt muss ROOT gehören. Das ist eine Enschränkung der Chroot Mechanik von OpenSSH selbst. So stehts auch in deiner Anleitung:
The chroot directory needs to be owned by root so that the user/group can log in.
Wenn du dich also nicht einloggen kannst, ist meistens das dein Problem. Gehören also /home und /home/sftp auch Root?
-
Sorry, dass ich mal in den alten Thread schreibe aber ich vermute, das dürfte den einen oder anderen auch interessieren und die Sache war ja nicht abschließend beantwortet.
Wenn man einen Benutzer über das Web anlegt, ihm Shell Access gibt und dann diesen Nutzer auf sftponly festnagelt, kann dieser nichts machen, außer SFTP. Auf das Web Interface bekommt er keinen Zugriff und eine Shell hat er ja dann effektiv auch nicht. Das Gesagte bezüglich Ownership des Home-Verzeichnisses des Nutzers gilt weiterhin. Einziges Problem: wenn man den Nutzer über das Web Interface irgendwie bearbeitet, werden die Verzeichnisberechtigungen zurückgesetzt (also auch z.B. beim Setzen eines Passwortes).
Da ich nichts davon halte, in den pfSense- eigenen Dateien herumzupfuschen, da ich auch mal ein Update installieren will oder das System aus einem Backup wiederherstellen können will, habe ich folgende Vorgehensweise gewählt:
-
Nutzer über das Web anlegen
-
Nutzer die Permission Shell Access geben
-
/etc/sshd_extra anlegen:
Match User sftpbackup
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp- shellcmd, alternativ cronjob anlegen:
/usr/sbin/chown root /home/sftpbackup
-rsa schluessel im authorized_keys file ablegen.
-die sshd_extra config im Config-Backup berücksichtigen.Funktioniert soweit einwandfrei.
HTH
-