Jailkit:它在 22.04 中能运行吗?

Jailkit:它在 22.04 中能运行吗?

我正在跟进这些说明用于设置 sftp 和 scp(虽然我也想添加 rsync)但是当被监禁的帐户登录时,它会立即断开连接,而且我看不到任何错误。

文档说,如果发生这种情况,您需要journalctl|grep jk_,这会产生以下结果(也不会出现错误):

jk_chrootsh[3157425]: now entering jail /home/jail for user jailtest (1001) with arguments -c /usr/lib/openssh/sftp-server

尽管我看到 jailkit 本身已于 2021 年 10 月更新,但我能找到的有关 Jailkit 的大部分(如果不是全部)信息似乎都相当旧了。有人知道它是否仍然可以在 Ubuntu 上运行,或者我如何追踪正在发生的错误?

我过去曾在 Ubuntu 18 上成功使用过 Jailkit。我开始认为 20 中的一些基本内容发生了变化(可能是 snap?),这在某种程度上禁用了 Jailkit。

/home/jail/etc/密码:

jailtest:x:1001:1004:tester,,,:/home/jailtest:/usr/sbin/jk_lsh

/etc/jailkit/jk_lsh.ini:

[jailtest]
paths= /usr/bin, /usr/lib/openssh
executables= /usr/bin/scp, /usr/lib/openssh/sftp-server

ldd /usr/sbin/jk_lsh

linux-vdso.so.1 (0x00007ffce6d11000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f91ffee6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f920011f000)

strace chroot /home/jail/ /usr/sbin/jk_lsh其他东西似乎没有缺少任何东西。

scp -v ./test.txt [email protected]:/home/jailtest/客户端没有显示任何错误并直接挂断:

debug1: Sending environment.
debug1: channel 0: setting env LANG = "en_GB.UTF-8"
debug1: Sending subsystem: sftp
debug1: pledge: fork
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 4172, received 4132 bytes, in 0.4 seconds
Bytes per second: sent 9390.9, received 9300.9
debug1: Exit status 3
scp: Connection closed

我的 sshd_config 是:

PermitRootLogin no 
PubkeyAuthentication yes
PasswordAuthentication no 
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem       sftp    /usr/lib/openssh/sftp-server
AllowGroups ssh-users # I've put the jailed user into this, removing it causes a permissions error

答案1

对此的简短回答是“是”。在我开始调查评论中@DanielT 的非常好的建议之前,我决定删除并重新安装 JailKit 包。然后我用以下代码重新创建了我的 jail:

jk_init -v -j /home/jail netutils jk_lsh

(请注意,这与官方文档不同。)

该命令中的别名netutils允许访问 sftp、scp 和 rsync,这正是我感兴趣的 - 请参阅/etc/jailkit/jk_init.ini

由于某种原因,当我运行 jk_init 命令(jailkit v2.23-1)时出现 Python 错误,但再次运行它似乎可以解决问题。

被监禁的账户随后便能够登录,并能正确地进行 chroot。

相关内容