# SFTP + Jailkit  mit ISPConfig 3.0.5.1 und Debian Wheezy



## mattula (22. März 2013)

*[Solved] SFTP + Jailkit  mit ISPConfig 3.0.5.1 und Debian Wheezy*

Hi,

ich habe die aktuelle ISPConfig Version auf Debian Wheezy installiert.
Bislang gibt es nur ein Problem:

SSH Login mit und ohne Jailkit funktioniert.
SFTP ohne Jailkit tut auch.

Aber SFTP mit Jailkit mag nicht. 

Die Connection geht kurz auf und gleich wieder zu.
Im SSH Debug Log sehe ich keine aussagekräftige Fehlermeldung, ausser, dass offensichtlich direkt nach dem Login die Client / Server Kommunikation gestört ist. Sprich der Server ist nach kurzer Zeit der Meinung, der Client hätte sich verabschiedet.

Ein Vergleich von SSH und Jailkit Config mit einem ISPConfig 3.0.4 auf Debian Squeeze Setup offenbart mir erstmal keine Unterschiede.

Liegt's am Setup mit Debian Wheezy?
Ist es die verwendete aktuelle Jailkit Version 2.15-1 ?
Macht das neue ISPConfig was anders?

Ich habe an ssh und jailkkit Config keine manuelle Modifikation vorgenommen.
Lediglich Password-Auth mal abgeschaltet - aber es tut weder mit noch ohne noch mit oder ohne Key-Auth.

Hat jemand das Problem mit Debian Squeeze und ISPConfig 3.0.5.1?

Hier ein kleiner Auszug aus dem sshd Log mit Debuglevel 3. Die Authentifizierung hat bis zu diesem Punkt schon erfolgreich stattgefunden. Der Fehler scheint im Aufruf von jk_chrootssh zu liegen, danach bricht die Session weg:


```
Mar 22 21:48:36 webcl1 sshd[19187]: debug3: Copy environment: LANG=en_US.UTF-8
Mar 22 21:48:36 webcl1 sshd[19187]: debug3: Copy environment: LANGUAGE=en_US:en
Mar 22 21:48:36 webcl1 jk_chrootsh[19187]: now entering jail /var/www/clients/client2/web2 for user xxxxxxxxx (1003) with arguments -c /usr/lib/openssh/sftp-server
Mar 22 21:48:36 webcl1 sshd[19186]: debug1: Received SIGCHLD.
Mar 22 21:48:36 webcl1 sshd[19186]: debug1: session_by_pid: pid 19187
Mar 22 21:48:36 webcl1 sshd[19186]: debug1: session_exit_message: session 0 channel 0 pid 19187
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: request exit-status confirm 0
Mar 22 21:48:36 webcl1 sshd[19186]: debug1: session_exit_message: release channel 0
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: write failed
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: close_write
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: send eow
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: output open -> closed
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: read<=0 rfd 9 len 0
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: read failed
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: close_read
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: input open -> drain
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: read 27 from efd 11
Mar 22 21:48:36 webcl1 sshd[19186]: debug3: channel 0: discard efd
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: ibuf empty
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: send eof
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: input drain -> closed
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: send close
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: notify_done: reading
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: read 0 from efd 11
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: closing read-efd 11
Mar 22 21:48:36 webcl1 sshd[19186]: debug3: channel 0: will not send data after close
Mar 22 21:48:36 webcl1 sshd[19186]: debug2: channel 0: rcvd close
Mar 22 21:48:36 webcl1 sshd[19186]: Received disconnect from 1.2.3.4: 11: disconnected by user
Mar 22 21:48:36 webcl1 sshd[19186]: debug1: do_cleanup
```
Matthias


----------



## PatrickR (23. März 2013)

Habe genau das selbe problem allerdings mit ISPConfig 3.0.4.2


----------



## mattula (25. März 2013)

Zitat von PatrickR:


> Habe genau das selbe problem allerdings mit ISPConfig 3.0.4.2


Welche Jailkit, SSH, Linux-OS Version?


----------



## mattula (25. März 2013)

Zitat von mattula:


> Hi,
> Ist es die verwendete aktuelle Jailkit Version 2.15-1 ?


Jetzt habe ich mal testweise die Jailkit Version 2.14 paketiert und installiert (so wie ich sie auch unter Debian Squeeze erfolgreich am laufen habe).
Leider das gleiche Verhalten.


----------



## mattula (25. März 2013)

*Jailkit User: No user found for uid*

Ich nähere mich dem Problem.

Wenn ich mich als Jailkit User per SSH einlogge und dann das sftp Server Binary aufrufe, kommt folgende Meldung:


```
xxxx:/$ usr/lib/openssh/sftp-server -e -d debug
No user found for uid 1003
```
Ein

```
whoami
```
gibt mir ebenfalls *keine* ID zurück.

Also ist wohl irgendwie die Jail-Root nicht korrekt.

Aber an was kann das liegen?

Jailkit war definitiv installiert, bevor ich ISPConfig installiert habe.
Das ganze System ist recht frisch, streng nach HowTo aufgesetzt und die Installation lief auch fehlerfrei durch.

 Matthias


----------



## mattula (25. März 2013)

Die passwd in der Chroot existiert und fuer den User lesbar:


```
:/$ cat etc/passwd 
root:x:0:0:root-webcl2-schwabe:/root:/bin/bash
testuser:x:1003:1005:::/bin/bash
```


----------



## mattula (25. März 2013)

Problem gelöst. Die für die uid Auflösung benötigten Libs haben in der Chroot gefehlt.

Unter Debian Wheezy 64-bi sind  /lib/libnsl.so.1 und /lib/libnss*.so.2 (und viele andere) nach /lib/x86_64-linux-gnu/ gewandert.
D.h. das Hinzufügen dieses Pfades in der /etc/jailkit/jk_init.ini löst das Problem.


```
[uidbasics]
# this section probably needs adjustment on 64bit systems
# or non-Linux systems
comment = common files for all jails that need user/group information
libraries = /lib/libnsl.so.1, /lib64/libnsl.so.1, /lib/libnss*.so.2, /lib64/libnss*.so.2, /lib/x86_64-linux-gnu/libnsl.so.1, /lib/x86_64-linux-gnu/libnss*.so.2
regularfiles = /etc/nsswitch.conf, /etc/ld.so.conf

[netbasics]
comment = common files for all jails that need any internet connectivity
libraries = /lib/libnss_dns.so.2, /lib64/libnss_dns.so.2, /lib/x86_64-linux-gnu/libnss_dns.so.2
regularfiles = /etc/resolv.conf, /etc/host.conf, /etc/hosts, /etc/protocols
```
Die Änderung zieht allerdings nur für neue angelegte Websites und zugeordnete Shell-User.

Bestehende User müssen wohl mit dem jk_update Kommando entsprechend aktualisiert werden.

Das Ganze ist *kein* ISPConfig Fehler, sondern wäre in dem Fall seitens jailkit für Debian Wheezy anzupassen. Werde einen Request an die Entwickler stellen.

Matthias


----------



## mattula (26. März 2013)

Zitat von mattula:


> Das Ganze ist *kein* ISPConfig Fehler, sondern wäre in dem Fall seitens jailkit für Debian Wheezy anzupassen. Werde einen Request an die Entwickler stellen.


Hier ist er:
https://savannah.nongnu.org/bugs/index.php?38596


----------

