如何在Debian Wheezy上使用Jailkit创建一个被监禁的ssh用户

如何在Debian Wheezy上使用Jailkit创建一个被监禁的ssh用户

版本1.0
作者:Srijan Kishore
在Twitter上关注youcl

本文档介绍如何在Debian Wheezy Server中安装和配置Jailkit。 Jailkit是一组实用程序,用于使用chroot()和或特定命令将用户帐户限制为特定文件。 设置chroot shell,限制某些特定命令的shell或chroot jail中的守护进程容易得多,可以使用这些实用程序进行自动化。

Jailkit被称为用于来自几家领先的IT安全公司的网络安全设备,来自几个大型企业组织的互联网服务器,来自互联网服务提供商的互联网服务器以及需要保护cvs,sftp,shell的许多小公司和私人用户或守护进程。

1初步说明

本教程基于Debian 7.6服务器,因此您应该在继续本教程之前设置基本的Debian 7.6服务器安装。 系统应该有一个静态IP地址。 我在本教程中使用192.168.0.100作为我的IP地址,将server1.example.com用作主机名。

2安装Jailkit

我们将首先下载并安装Jailkit。 在目前编写本指南的时候,最新的可用版本的Jailkit是2.17。 我会下载它并安装如下:

cd /tmp    
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17

Jailkit在安装之前需要一些软件包,我们将安装它们如下:

apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold python

现在我们的系统准备安装Jailkit,安装如下:

./debian/rules binary
cd ..
dpkg -i jailkit_2.17-1_amd64.deb

它将在Debian Server中安装Jailkit,我们可以从/ tmp中删除额外的包:

rm -rf /tmp/jailkit*

3给一个用户打了

现在我们将创建一个将使用Jailkit作为:

adduser srijan

root @ server1:〜#adduser srijan
添加用户“srijan”...
添加新组'srijan'(1001)...
添加新用户`srijan'(1001)与组`srijan'...
创建主目录`/ home / srijan'...
从`/ etc / skel'复制文件...
输入新的UNIX密码: < - 密码
重新输入新的UNIX密码: < - password
passwd:密码更新成功
更改srijan的用户信息
输入新值,或按ENTER键进行设置
全名[]: < - ENTER
房间号码[]: < - ENTER
工作电话[]: < - ENTER
家庭电话[]: < - ENTER
其他[]: < - ENTER
信息是否正确? [Y / n] < - Y
root @ server1:〜#

在我的情况下,我正在创建用户srijan ,您可以使用任何名称。

接下来我们将在/ etc / passwd中查看有关user srijan的信息:

egrep srijan /etc/passwd
root @ server1:/ tmp#egrep srijan / etc / passwd
srijan:x:1001:1001:,,,:/ home / srijan:/ bin / bash
root @ server1:/ tmp#

接下来我们将监控创建的用户。 为Jail环境创建一个目录/ jail

mkdir /jail

现在我们将为Jail提供一些默认程序环境:

jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp

我们也可以给出其他值,可以在文件中检查Jail环境的完整列表

nano /etc/jailkit/jk_init.ini

现在监狱已经准备就绪,只需将用户添加到环境中即可:

jk_jailuser -m -j /jail/ srijan

再次查看/ etc / passwd中的用户srijan的值

egrep srijan /etc/passwd
root @ server1:/ tmp#egrep srijan / etc / passwd
srijan:x:1001:1001:,,,:/ jail /./ home / srijan:/ usr / sbin / jk_chrootsh
root @ server1:/ tmp#

现在我们的用户已被添加到Jailed环境中。 我将Debian服务器与bash终端与其IP 192.168.0.100连接:

ssh srijan@192.168.0.100
root @ server1:〜$ ssh srijan@192.168.0.100
主机'192.168.0.100(192.168.0.100)'的真实性无法建立。
ECDSA键指纹为3d:ca:91:67:96:39:15:b4:0f:6e:c8:2c:92:ef:25:d7
您确定要继续连接(是/否)? 是
srijan@192.168.0.100的密码:
Linux server1 3.2.0-4-amd64#1 SMP Debian 3.2.60-1 + deb7u3 x86_64

Debian GNU / Linux系统中包含的程序是免费软件;
每个程序的确切分配条款在
/ usr / share / doc / * / copyright中的个人文件。

Debian GNU / Linux自带的绝对无担保,在一定程度上
适用法律允许。
连接到192.168.0.100关闭。
root @ server1:〜$

连接正在关闭,因为用户没有日志记录shell,可以将其添加到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 srijan@192.168.0.100

现在检查根目录的内容,你会注意到它有这样的内容:

ls /
srijan @ server1:〜$ ls /
bin dev等home lib lib64 usr
srijan @ server1:〜$

4在监狱环境中运行服务和命令

Jail可用于在Jailed环境中运行服务。 假设我们要在Jailed环境中运行任何服务,那么我们将使用jk_chrootlaunch命令:

jk_chrootlaunch -j /jail -u srijan -x 'service apache2 start'


在这里我开始Apache的服务,你也可以在Jailed环境中运行任何服务或守护进程。

假设我们要在Jail环境中运行一个特定的命令,那么我们将使用jk_cp 。 让我们在Jailed环境中测试它们,当我们运行cal时 ,它显示如下:

cal
srijan @ server1:〜$ cal
bash:cal:command not found
srijan @ server1:〜$


这意味着Jail环境不知道cal命令,现在我将它添加到Debian Server中,如下所示:

jk_cp  -v -j /jail/ /usr/bin/cal
root @ server1:〜#jk_cp -v -j / jail / / usr / bin / cal
创建symlink / jail / usr / bin / cal到ncal
将/ usr / bin / ncal复制到/ jail / usr / bin / ncal
创建符号链接/jail/lib/x86_64-linux-gnu/libncurses.so.5到libncurses.so.5.9
将/lib/x86_64-linux-gnu/libncurses.so.5.9复制到/jail/lib/x86_64-linux-gnu/libncurses.so.5.9
/jail/lib/x86_64-linux-gnu/libtinfo.so.5已经存在,不会碰它
/jail/lib/x86_64-linux-gnu/libc.so.6已经存在,不会碰它
/jail/lib/x86_64-linux-gnu/libdl.so.2已经存在,不会碰它
/jail/lib64/ld-linux-x86-64.so.2已经存在,不会碰它
/jail/lib/x86_64-linux-gnu/libtinfo.so.5已经存在,不会碰它
/jail/lib/x86_64-linux-gnu/libc.so.6已经存在,不会碰它
/jail/lib/x86_64-linux-gnu/libdl.so.2已经存在,不会碰它
/jail/lib64/ld-linux-x86-64.so.2已经存在,不会碰它
root @ server1:〜#


再次在Jailed环境中运行cal命令:

cal
srijan @ server1:〜$ cal
2014年9月
苏莫Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

srijan @ server1:〜$


所以我们添加了Jailed环境的命令。 恭喜! 现在我们已经在Debian Wheezy中成功配置了Jail环境:)

5链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏