scponlyc, kein Zugriff mit SCP-Client

Probleme mit Samba, NFS, FTP und Co.
Antworten
Exxter
Beiträge: 171
Registriert: 10.01.2003 00:15:15

scponlyc, kein Zugriff mit SCP-Client

Beitrag von Exxter » 01.03.2012 13:15:23

Hallo,
ich habe scponly mit chroot unter Debian Squeeze 64bit installiert. Ziel ist, dass ein User per SCP Zugriff auf ein Verzeichnis unter /var/www/ bekommt. Ich habe deswegen mit /usr/share/doc/scponly/setup_chroot/setup_chroot.sh einen User angelegt und sein Home auf /var/www/example.org/ gelegt. Nachdem ich paar libs kopiert habe funktioniert es, mit scp eine Datei zu speichern (außerdem Debug eingeschaltet):

Code: Alles auswählen

user@greulix:~/download$ scp de-DE_joomla_lang_full_2.5.1v1.zip BENUTZER@example.com:/www
BENUTZER@example.com's password: 
scponly[10542]: chrooted binary in place, will chroot()
scponly[10542]: 3 arguments in total.
scponly[10542]: 	arg 0 is scponlyc
scponly[10542]: 	arg 1 is -c
scponly[10542]: 	arg 2 is scp -t -- /www
scponly[10542]: opened log at LOG_AUTHPRIV, opts 0x00000029
scponly[10542]: determined USER is "BENUTZER" from environment
scponly[10542]: retrieved home directory of "/var/www/example.org/" for user "BENUTZER"
scponly[10542]: chrooting to dir: "/var/www/example.org/"
scponly[10542]: chdiring to dir: "/"
scponly[10542]: setting uid to 1002
scponly[10542]: processing request: "scp -t -- /www"
scponly[10542]: Using getopt processing for cmd /usr/bin/scp
 (username: BENUTZER(1002), IP/port: 46.xx.xx.xx 55559 22)
scponly[10542]: getopt processing returned 't' (username: BENUTZER(1002), IP/port: 46.xx.xx.xx 55559 22)
scponly[10542]: running: /usr/bin/scp -t -- /www (username: BENUTZER(1002), IP/port: 46.xx.xx.xx 55559 22)
scponly[10542]: about to exec "/usr/bin/scp" (username: BENUTZER(1002), IP/port: 46.xx.xx.xx 55559 22)
de-DE_joomla_lang_full_2.5.1v1.zip                                                                                                                                              100%  297KB 296.6KB/s   00:00    
user@greulix:~/download$ 
Wenn ich das aber mit WinSCP oder gftp probiere bekomme ich bei gftp irgendwann einen Timeout und WinSCP spuckt "Cannot initialize SFTP protocol. Is the host running a SFTP" aus.

Hier mal die Berechtigungen der Verzeichnisse:

Code: Alles auswählen

root@yggdrasil:/var/www/example.org# ls -al
insgesamt 7064
drwxr-xr-x 10 root     root        4096  1. Mär 12:46 .
drwxr-xr-x  9 root     root        4096 28. Feb 14:52 ..
drwxrwxr-x  2 root     root        4096 29. Feb 11:45 bin
drwxrwxr-x  2 root     root        4096 29. Feb 11:45 dev
drwxrwxr-x  2 root     root        4096 29. Feb 11:45 etc
-rw-rw-r--  1 root     root     7180013 28. Feb 14:55 Joomla_1.5.25-Stable-Full_Package_German.zip
drwxrwxr-x  2 root     root        4096 29. Feb 12:49 lib
drwxrwxr-x  2 root     root        4096 29. Feb 12:10 lib64
drwxrwxr-x  4 root     root        4096 29. Feb 11:45 usr
drwxrwxr-x  3 root     root        4096 29. Feb 11:45 var
drwxrwxr-x 32 www-data www-data    4096  1. Mär 13:01 www
root@yggdrasil:/var/www/example.org# 
Der Benutzer "BENUTZER" ist in der Gruppe www-data. Dass er nicht in / schreiben kann ist egal, die eigentliche Seite liegt unter www.
Hat jemand eine Idee, was noch faul sein könnte?

nepos
Beiträge: 5235
Registriert: 05.01.2005 10:08:12

Re: scponlyc, kein Zugriff mit SCP-Client

Beitrag von nepos » 01.03.2012 13:21:14

Keine Ahnung was gftp da so treibt, aber WinSCP hat ja recht. Du willst ja nur scp erlauben, das ist aber was ganz anderes als sftp.
Ersteres startet auf der Gegenseite auch nur ein scp-Kommando mit speziellen Optionen und piped da die zu kopierenden Daten rueber. SFTP ist ein FTP-aehnliches Protokoll, das ueber die SSH-Verbindung laeuft. Um SFTP nutzen zu koennen, muss der sshd auf der Gegenseite ein SFTP-Subsystem starten koennen. Du musst WinSCP also ueberreden, wirklich scp zu machen oder deine Config so anpassen, dass da auch SFTP moeglich ist.

uname
Beiträge: 8979
Registriert: 03.06.2008 09:33:02

Re: scponlyc, kein Zugriff mit SCP-Client

Beitrag von uname » 01.03.2012 13:23:38

Brauchst du denn wirklich scp oder eher sftp. sftp ist viel einfacher zu konfigurieren:

http://www.debian-administration.org/articles/590

Meine Einstellung in /etc/ssh/sshd_config für die /etc/group-Gruppe "sftponly"

Code: Alles auswählen

Match group sftponly
         ChrootDirectory /home/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp
Im Normalfall legt man dann eine Ordnerstruktur /home/user/home/user an, damit der Benutzer weiterhin denkt er hätte /home/user in seiner chroot-Umgebung. /home/user muss root gehören, /home/user/home/user muss dem Benutzer gehören und der Benutzer muss natürlich in der Gruppe "sftponly" sein. Reload-SSH-Server bei Änderung /etc/ssh/sshd_config nicht vergessen.

Exxter
Beiträge: 171
Registriert: 10.01.2003 00:15:15

Re: scponlyc, kein Zugriff mit SCP-Client

Beitrag von Exxter » 01.03.2012 14:54:06

Cool, danke nepos und uname. Ich habe es jetzt nach der Anleitung für sftp eingerichtet. Das ist ja wirklich deutlich simpler als mit scponly und erfüllt seinen Zweck sogar noch besser (keine Unterordner etc, usr, var usw).
Noch eine Frage dazu, ich habe jetzt folgendes in die /etc/ssh/sshd_config eingetragen:

Code: Alles auswählen

Match group sftponly
         ChrootDirectory /var/www/example.org/
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp
Kann ich so einen Block für weitere User nochmal eintragen, dann zb mit ChrootDirectory /var/www/example2.org/ ?

uname
Beiträge: 8979
Registriert: 03.06.2008 09:33:02

Re: scponlyc, kein Zugriff mit SCP-Client

Beitrag von uname » 01.03.2012 14:59:10

Sollte gehen. Aber wenn du für jeden Benutzer einen Namen hast kannst du auch die Variable %u wie in meinem Beispiel nutzen. Das wäre dann noch einfacher.

Exxter
Beiträge: 171
Registriert: 10.01.2003 00:15:15

Re: scponlyc, kein Zugriff mit SCP-Client

Beitrag von Exxter » 01.03.2012 15:54:29

Alles klar, tut alles. Herzlichen Dank euch!

Antworten