SCPOnly unter Etch zum vergessen

Probleme mit Samba, NFS, FTP und Co.
Antworten
reedbeat
Beiträge: 32
Registriert: 02.12.2004 15:16:55

SCPOnly unter Etch zum vergessen

Beitrag von reedbeat » 26.04.2007 15:37:08

Hallo,

heute Etch aufgesetzt, Scponly per "aptitude install scponly" installiert.
Wie immer das setup_chroot script ausgeführt und damit einen User angelegt.

leider brich tdie Verbindung beim Anmeldeversuch (mit WinSCP 3.8.2) ab:
"Connection has been unexpectedly closed. Server sent command exit status 1."

Hätte da eine Lösung im Web gefunden, nur die funkt nicht:
http://steffenzieger.de/index.php/2006/ ... t-scponly/

mkdir /your/chroot/dir/dev
mknod -m 666 /your/chroot/dir/dev/null c 1 3

obiger befehl wird zwar ausgeführt, aber fehler bleibt bestehen.

Weiss wer weiter?

Gruß
reedbeat

cgarling
Beiträge: 151
Registriert: 11.04.2007 14:29:51

Beitrag von cgarling » 27.04.2007 13:54:32

Mal in die README bzw. README.Debian geguckt falls vorhanden? Vielleicht steht da ja was nützliches was man machen / einrichten sollte, bevor man scponly nutzen kann.

Gruß,

Christian

reedbeat
Beiträge: 32
Registriert: 02.12.2004 15:16:55

Beitrag von reedbeat » 27.04.2007 15:09:44

Hallo Christian,

in /usr/share/doc/scponly gibts zwar eine README und README.Debian, aber da steht nichts nützliches drinnen.

Geht SCPOnly bei euch mit Etch?

Gruß
Reedbeat

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 27.04.2007 16:56:04

Hallo,

einfach das Device "/dev/null" für deinen Benutzer anlegen, das braucht man für WinSCP.

Code: Alles auswählen

cd /pfad/zu/deinem/chroot/
mkdir dev
cd dev
mknod -m 666 null c 1 3
Steht übrigens inklusive Lösung auch in den Bugreports auf der Debian Seite beim Paket SCPONLY.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=394132

Edit: Code editiert, da ich das dev Verzeichnis vergessen habe.
Zuletzt geändert von Kase am 27.04.2007 18:38:08, insgesamt 1-mal geändert.

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 27.04.2007 18:37:08

Sorry, mein Code war nicht 100% richtig.

Es muss natürlich so heißen:

Code: Alles auswählen

cd /pfad/zu/deinem/chroot/
mkdir dev
cd dev
mknod -m 666 null c 1 3 

reedbeat
Beiträge: 32
Registriert: 02.12.2004 15:16:55

Beitrag von reedbeat » 02.05.2007 08:22:17

Hallo Kase,

danke für den Link auf die Bugreportseite, das wird mir in Zukunft hilfreich sein.
Mit Deinem Vorschlag funktionierts aber leider noch immer nicht. Der Lösungsweg im Bugreport schaut außerdem etwas anders aus (cp statt mknod) . Das seltsame ist auch, dass das Verzeichniss dev unter Sarge nicht vorhanden ist. Habe hier einige Sarge-Installationen wo das Verzeichniss im Home des Users nicht vorkommt. Trotzem funktioniert der Login per WinSCP.

Hast Du Scponly unter Etch am Laufen? Funktioniert bei Dir der Login per WinSCP?

Hier die Version welche bei mir in Verwendung ist:

Code: Alles auswählen

lamp:~# dpkg -l | grep scponly
ii  scponly                  4.6-1  
Gruß
Reedbeat

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 03.05.2007 15:53:55

Hallo,

ja, ich habe die gleiche Version laufen, das ist die standard Vesion von Debian Etch.

Das Verzeichnis dev ist nicht vorhanden, das musst du im / deines chroots inkl dem Device null anlegen. Ob man das Device durch Kopieren (wie in den bugreports) oder durch neu erstellen anlegt, ist ziemlich egal. Bei mir lief es auf jeden Fall ohne Probleme mit WinSCP zusammen, nachdem ich das Device null im dev Verzeiichnis angelegt hatte. Ansonsten prüfe nochmal, ob du die Datei "groups" kopiert hast, wie es im setup_chroot beschrieben ist, denn auch dies ist nötig für WinScp.

reedbeat
Beiträge: 32
Registriert: 02.12.2004 15:16:55

Beitrag von reedbeat » 03.05.2007 16:12:53

Hallo Kase,

vielen Dank für Deine Antwort.
Ich hab jetz mal die groups Datei erstellt (obwohl das unter Sarge nicht notwendig war) und die Datei in das /bin Verzeichnis des Chroot-Users kopiert:

Code: Alles auswählen

gcc -o groups groups.c
cp groups /home/username/bin/
Gleicher Fehler: "Connection has been unexpectedly closed. Server sent command exit status 1."
Ich werd jetz mal Etch auf einem anderen Rechner neu aufsetzen. Da ich nun weiss dass es bei Dir funktioniert, muss es ja irgendwie gehen! Ich verwende übrigens die Netinst-CD.

Danke für die Infos!

LG
Reedbeat

reedbeat
Beiträge: 32
Registriert: 02.12.2004 15:16:55

Beitrag von reedbeat » 04.05.2007 09:55:01

Hab jetzt Etch per Netinst-CD auf einem anderen Rechner aufgesetzt.
Im Installer hab ich "Standard-System" gewählt und einen offiziellen Mirror aus der Liste ausgewählt.

System aktualisiert:

Code: Alles auswählen

aptitude update upgrade 
SCPOnly installiert:

Code: Alles auswählen

aptitude install scponly
cd /usr/share/doc/scponly/setup_chroot/
gunzip setup.chroot.sh.gz
chmod u+rwx setup.chroot.sh
./setup.chroot.sh (alles ausser die Frage zu Username mit ENTER bestätigt)
Bugs beseitigt:

Code: Alles auswählen

cd /pfad/zu/deinem/chroot/
mkdir dev
cd dev
mknod -m 666 null c 1 3

Code: Alles auswählen

cd /usr/share/doc/scponly/
gcc -o groups groups.c
cp groups /home/username/bin/ 
WinSCP liefert:

Code: Alles auswählen

"Connection has been unexpectedly closed. Server sent command exit status 1." 
Also gleicher Fehler wie bisher.
Wäre schön wenn sich zu diesem Beitrag mehr Leute melden würden. Mich würde interessieren ob der Fehler wirklich nur bei mir auftritt.

Gruß
Reedbeat

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 04.05.2007 19:40:59

Hallo,

gehe mal wie folgt vor: (Verzeichnis kann natürlich abweichen)

Chroot anlegen in /var/www/vhosts/$USER mit INCOMING-Folder "web"

Code: Alles auswählen

/usr/share/doc/scponly/setup_chroot/setup_chroot.sh
cd /var/www/vhosts/$USER/
mkdir dev
cd dev
mknod -m 666 null c 1 3
cd ..
cd bin
cp /usr/bin/groups .
Danach läuft es bei mir ohne Probleme mit der neusten WinSCP Version, glaube, das ist 3.8.2 oder so ähnlich.

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Beitrag von LessWire » 05.05.2007 14:18:57

Hallo,

@reedbeat: Nur bei Dir tritt das sicherlich nicht auf, mit mir hast Du einen Leidensgenossen.

Das Anlegen von /dev/null löst auch bei mir das Problem nicht.

Erstaunlich ist, daß es nur bei ETCH nicht funktioniert, ich hatte bei den Webservern mit SARGE keine Probleme und habe die identische Konfiguration im lokalen Netzwerk mit SID, auch da keine Probleme (und ohne /dev/null).

Wenn ich das WinSCP-Log ansehe, so stellt sich raus, dass die Anmeldung und Authentifizierung einwandfrei klappt, abgebrochen wird dann:

Code: Alles auswählen

Using SCP protocol.

. 2007-05-05 14:13:51.318 Doing startup conversation with host.
. 2007-05-05 14:13:51.318 Skipping host startup message (if any).
. 2007-05-05 14:13:51.318 Sent 36 bytes
. 2007-05-05 14:13:51.318 There are 0 bytes remaining in the send buffer
. 2007-05-05 14:13:51.318 Sent 1 bytes
. 2007-05-05 14:13:51.318 There are 0 bytes remaining in the send buffer
  2007-05-05 14:13:51.318 echo "WinSCP: this is end-of-file:0"
. 2007-05-05 14:13:51.318 Waiting for another 1 bytes
. 2007-05-05 14:13:51.318 Looking for incoming data
. 2007-05-05 14:13:51.648 Select result is 1
. 2007-05-05 14:13:51.648 All channels closed. Disconnecting
. 2007-05-05 14:13:51.648 Server closed network connection
. 2007-05-05 14:13:51.648 Waiting for another 1 bytes
. 2007-05-05 14:13:51.648 Looking for incoming data

* 2007-05-05 14:13:51.688 (ESshFatal) Fehler beim Überspringen der Startnachricht. Ihre Kommandozeile (Shell) ist möglicherweise nicht mit dieser Anwendung kompatibel (BASH wird empfohlen).

* 2007-05-05 14:13:51.688 Die Verbindung wurde unerwartet geschlossen. Der Server sendete den Befehlsbeendigungsstatus 1.
Sollte eigentlich nur an einer Kleinigkeit liegen, habe schon einige Zeit investiert aber bislang leider auch erfolglos :-(

vg, L.W.
at ~ now.

Benutzeravatar
mcheizer
Beiträge: 78
Registriert: 11.06.2005 23:23:35
Wohnort: Köln

Beitrag von mcheizer » 05.05.2007 14:54:39

Hallo Zusammen,

habe die gleichen Probleme mit SCPonly unter Etch in Verbindung mit WinSCP!
Nutze ich bei der Anmeldung SFTP statt SCP komme ich ins System rein.
Vieleicht hilft das weiter.

Grüße
mcHeizer

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Beitrag von LessWire » 06.05.2007 01:11:06

@mcheizer: Danke für den Tipp. So kommt man zwar rein, kann aber in alle Verzeichnisse wechseln. :-(

Ich arbeite mit scponlyc, es muss also ein chroot auf das entsprechende Verzeichnis erfolgen.

Wie ich gerade feststelle, liegt da auch der Fehler begraben, denn der in scponlyc offenbar implizit ausgeführte chroot klappt nicht, es wird keine Shell gefunden, Abbruch mit "/bin/bash: Datei/Verzeichnis nicht gefunden".

Das ist Unsinn, denn:
- in /etc/passwd ist scponly als Shell vereinbart
- in /etc/shells ist scponly als zulässige Shell eingetragen
- /bin/bash ist testhalber zusätzlich im chroot-Verzeichnis bereitgestellt worden, trotzdem kommt dieser Fehler.

Und wie gesagt, in SID funktioniert es.
at ~ now.

Benutzeravatar
mcheizer
Beiträge: 78
Registriert: 11.06.2005 23:23:35
Wohnort: Köln

Beitrag von mcheizer » 06.05.2007 01:19:41

Code: Alles auswählen

@mcheizer: Danke für den Tipp. So kommt man zwar rein, kann aber in alle Verzeichnisse wechseln. traurig
Habe das mal bei mir gecheckt; Ich komme aus dem Chroot-Verzeichniss mittels WinSCP-SFTP-Sitzung nicht raus!

Grüße
mcheizer :?

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Beitrag von LessWire » 06.05.2007 03:15:48

Hmmm, seltsam.

Definitiv liegt's bei mir daran, dass chroot nicht funktioniert.

Ein direktes "ssh -l user localhost" klappt erstmal, jede weitere Eingabe wird aber von scponly mit "WinSCP: this is end-of-file:0" beantwortet. Jetzt müsste man wissen, wie WinSCP weiter kommunizieren würde oder ob dies generell zum Abbruch führt.
at ~ now.

Kase
Beiträge: 124
Registriert: 24.01.2005 22:15:40

Beitrag von Kase » 06.05.2007 14:18:54

Das ist bei mir auch so, und trotzdem funktioniert das SCPONLY aus Debian Etch ohne Probleme (nach dem Kopieren der groups und dem Anlegen von dev/null).

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Beitrag von LessWire » 07.05.2007 04:24:09

Wenn Du es so sagst, rentiert es sich mal dran zu bleiben. Mal sehen, heute abend sollte wieder etwas Zeit sein (man hat ja sonst nix zu tun :-) )
at ~ now.

JohSch
Beiträge: 1
Registriert: 14.05.2007 16:51:12
Wohnort: Munich

Beitrag von JohSch » 14.05.2007 17:19:47

Hi,

hatte heute das selbe Problem und hat mich 2,5h gekostet :(

Zuerst müssen wir mal unterscheiden, was in dem scponly-paket alles drinnen ist:
scponly:

Ist das Programm für vollen Dateizugriff auf Benutzerebene - D.h. der User hat vollen Zugang zu allem ihm lesbaren Dateien im System - Es können z.B. viele Systemdateien in /etc /var usw. gelesen werden - Auch das kann für einen Admin unangenehm sein, denn dann muss er je nach Vertrauensbereich entsprechend aufwendiger administrieren

scponlyc:

Bietet als Zusatz ein Chroot-Jail auf das Homeverzeichnis des Users an - D.h. der User kann NUR Dateien in seinem Homeverzeichnis lesen und schreiben

quelle: http://frilug.fh-friedberg.de/frilug/ssh.html oder: http://hp.kairaven.de/scpsftp/ssh-rssh-sftp.html
Wenn ihr zum Anlegen das Script setup_chroot.sh benutzt, das ist nur für scponlyc zuständig.

Ich habe auch mit der netinst-CD installiert, Standard-System, Debian Etch

Folgende Fehler musste ich beheben:

1. scponlyc ist nicht in /etc/shells eingetragen, gelöst mit:

Code: Alles auswählen

which scponlyc >> /etc/shells
2. Das SUID-Bit ist für scponlyc nicht gesetzt, gelöst mit:

Code: Alles auswählen

chmod u+s /usr/sbin/scponlyc
3. "/dev/null" in chroot-umgebung des users angelegt, wie von Kase beschrieben

Jetzt läuft alles wunderbar

gruß, johsch :D

Benutzeravatar
LessWire
Beiträge: 558
Registriert: 21.11.2004 04:36:04
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bavaria

Beitrag von LessWire » 16.05.2007 04:13:03

Hallo johsch,

die 2-3 Std. hab ich auch schon hinter mir und so wie Du es beschreibst, ist mein Server auch konfiguriert. Funktioniert aber trotzdem nicht. Nachdem's aber nicht so pressant ist, konzentriere ich mich erstmal auf Wichtigeres.
Eine Abweichung habe ich allerdings, da ich eine extrem abgemagerte busybox als Befehlssatz für die scponlyc-shell benutze. Daran sollte es eigentlich nicht liegen, denn sowohl unter sid als auch sarge gibts keine Probleme.

Kommt Zeit, kommt Lösung :-)

vg, L.W.
at ~ now.

php-deluxe
Beiträge: 2
Registriert: 16.07.2007 22:17:55

scponly[2935]: failed: /usr/lib/sftp-server with error ...

Beitrag von php-deluxe » 16.07.2007 22:27:56

Hallo Community,

ich habe scponly wie folgt installiert

Code: Alles auswählen

1. scponly installieren

apt-get install scponly

2. in das setup_chroot Verzeichnis wechseln

cd /usr/share/doc/scponly/setup_chroot/

3. setup.chroot.sh entpacken

gunzip setup.chroot.sh.gz

4. Dateirechte setzen

chmod u+rwx setup.chroot.sh

5. scponlyc in die /etc/shells eintragen

which scponlyc >> /etc/shells

6. SUID-Bit ist für scponlyc setzen

chmod u+s /usr/sbin/scponlyc

7. Script ausführen

./setup.chroot.sh

8. /dev/null für den Benutzer anlegen

cd /pfad/zu/deinem/chroot/

mkdir dev
cd dev
mknod -m 666 null c 1 3 
und erhalte folgende Fehlermeldung

Code: Alles auswählen

scponly[2935]: failed: /usr/lib/sftp-server with error No such file or directory(2) 
Ich habe scponlyc schon einmal unter debian etch 32Bit erfolgreich installiert.
Doch jetzt unter einer 64Bit Umgebung scheitert es ...

Ideen, Rat und Lebenshilfe ???

Vielen Dank.
Sven

php-deluxe
Beiträge: 2
Registriert: 16.07.2007 22:17:55

Beitrag von php-deluxe » 17.07.2007 17:02:57

OK, das Problem ist gelöst. Ich habe ein howto geschrieben, mit dem es jetzt jeder hinbekommen sollte.

http://www.serverclan.de/modules/wordpr ... tch-64bit/

Gruss
Sven

Antworten