如何在 Debian 9 (Stretch) 上使用 Jailkit 创建一个被监禁的 SSH 用户
本教程适用于这些操作系统版本
- Debian 9(扩展)
- Debian 7(Wheezy)
在此页
- 1 条初步说明
- 2 安装 Jailkit
- 3 监禁用户
- 4 在 Jailed 环境中运行服务和命令
- 5 个链接
本文档介绍如何在 Debian 9 (Stretch) Server 中安装和配置 Jailkit。 Jailkit 是一组实用程序,使用 chroot() 和/或特定命令将用户帐户限制为特定文件。设置一个 chroot shell,一个仅限于某些特定命令的 shell,或者一个 chroot jail 中的守护进程要容易得多,并且可以使用这些实用程序自动化。
众所周知,Jailkit 被用于几家领先 IT 安全公司的网络安全设备、几家大型企业组织的互联网服务器、互联网服务提供商的互联网服务器,以及许多需要保护 cvs、sftp、shell 的小公司和私人用户或守护进程。
1 初步说明
本教程基于 Debian 9 服务器,因此您应该在继续本教程之前设置基本的 Debian 服务器安装。系统应该有一个静态 IP 地址。我在本教程中使用 192.168.0.100 作为我的 IP 地址,使用 server1.example.com 作为主机名。
2 安装 Jailkit
我们将首先下载并安装 Jailkit。在撰写本指南时,Jailkit 的最新可用版本是 2.20。我将下载并安装它,如下所示:
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20
Jailkit 在安装之前需要一些包,我们将按如下方式安装它们:
apt-get install build-essential autoconf automake1.11 libtool flex bison debhelper binutils-gold python
现在我们的系统已经准备好安装 Jailkit,安装如下:
echo 5 > debian/compat
./debian/rules binary
cd ..
dpkg -i jailkit_2.20-1_amd64.deb
它将在 Debian Server 中安装 Jailkit,我们可以从 /tmp 中删除额外的包:
rm -rf /tmp/jailkit*
3 监禁用户
现在我们将创建一个使用 Jailkit 被监禁的用户:
adduser srijan
在我的例子中,我正在创建用户 srijan,您可以使用任何名称。
接下来我们查看/etc/passwd 中用户srijan 的信息为:
egrep srijan /etc/passwd
接下来,我们将监禁创建的用户。为 Jail 环境创建目录 /jail:
mkdir /jail
现在我们将为 Jail 提供一些默认的程序环境:
jk_init -v /jail netutils basicshell jk_lsh openvpn ssh sftp
我们也可以提供其他值,Jail 环境的完整列表可以在文件中查看
nano /etc/jailkit/jk_init.ini
现在 Jail 准备就绪,只需在环境中添加用户:
jk_jailuser -m -j /jail/ srijan
再次检查 /etc/passwd 中用户 srijan 的值:
egrep srijan /etc/passwd
现在我们的用户已添加到 Jailed 环境中。我将使用 IP 192.168.0.100 将 Debian 服务器连接到 bash 终端:
ssh
由于用户没有日志外壳,连接正在关闭,让我们将其添加到 Jail 的配置文件中:
nano /jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
#srijan:x:1001:1001:,,,:/home/srijan:/usr/sbin/jk_lsh
srijan:x:1001:1001:,,,:/home/srijan:/bin/bash
它将为被监禁的用户 srijan 添加 bash 提示符。现在再次尝试使用 srijan 用户进行 ssh 登录,您将能够登录:
ssh
现在检查根目录的内容,你会发现它有这样的内容:
ls /
4 在 Jailed 环境中运行服务和命令
Jail 可用于在 Jailed 环境中运行服务。假设我们想在 Jailed 环境中运行任何服务,那么我们将为此使用 jk_chrootlaunch 命令:
jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'
这里我启动Apache的服务。同样,您可以在 Jailed 环境中使用它运行任何服务或守护进程。
假设我们想在 Jail 环境中运行特定命令,那么我们将使用 jk_cp。让我们在 Jailed 环境中测试它,当我们运行 cal 时它显示如下:
cal
这意味着 Jail 环境不知道 cal 命令,现在我将在 Debian Server 中添加它,如下所示:
jk_cp -v -j /jail/ /usr/bin/cal
再次在 Jailed 环境中运行 cal 命令:
cal
所以我们添加了 Jailed 环境的命令。恭喜!现在我们已经成功地在 Debian 9 中配置了 Jail 环境:)
5个链接
- Debian:
- Jailkit:https://olivier.sessink.nl/jailkit/