我怎样才能 chroot ssh 连接?

我怎样才能 chroot ssh 连接?

我想为大多数(不是所有)通过 SSH 登录的用户设置一个 chroot jail。我听说使用最新版本的 openssh 可以实现这一点,但我不知道该怎么做。操作指南都说要修补旧版本,但补丁已经不再可用。

我正在运行 debian etch。

答案1

我为此目的使用了 rssh。

您说得对,有一种新的方法可以做到这一点,而且它是最新 ssh 版本的内置功能。

这是一篇关于不死

答案2

我只需要设置一个用户,他可以通过 ssh 登录,然后通过 ssh 连接到另一台服务器(该服务器不直接连接到外部世界)。cstamas 和 ericmayo 提供的链接是个不错的开始。

基本上,我在 /etc/ssh/sshd_config 中添加了以下内容:

匹配用户 myuser
  Chroot目录 /chroot/myuser

从此以后,我只需在 /chroot/myuser 下创建 chroot 环境。我复制了 /bin/bash 和 /usr/bin/ssh 以及它们所需的共享库(ldd 将显示这些内容)。对于较大的环境,编译所需可执行文件的静态链接版本可能更有意义。

Bash 马上就开始工作了,为了使 ssh 可以工作,我还必须创建 .ssh 目录,复制 /etc/passwd、/etc/nsswitch.conf 和 /lib/libnss_*,并通过 mknod 创建 /dev/null、/dev/tty 和 /dev/urandom。

答案3

mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

您必须编辑 /etc/sshd_config 文件并添加

ChrootDirectory /chroot/%h

并重新启动 sshd 守护进程。

总而言之,我真诚地认为 sftp 是一个更好的选择。

此外,我还找到了这个网址,看看它是否有用。

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

答案4

据我所知,OpenSSH 的新版本仅允许 chroot 进行 SFTP 连接。我试过了,它有效。但对于 SSH,可用的解决方案是 chrootssh 补丁。我浏览了 SourceForge 网站,没有文件,所以我认为它已经停用了。

对于 Debian Etch,这里有一些文件:http://debian.home-dn.net/etch/ssh/

这里还有其他解决方案:http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html,包括 chrootssh 。

相关内容