试用jailkit

Jailkit大大简化了创建jail需要的操作。

# wget 'http://olivier.sessink.nl/jailkit/jailkit-2.13.tar.bz2'

# tar -jxf jailkit-2.13.tar.bz2

# cd jailkit-2.13

#./configure -prefix=/usr --sysconfdir=/etc

# make install

用起来是很简单的:

jk_cp -j /usr/java/jdk1.6.0_23 /data/tomcatroot/

jk_cp -j /data/tomcatroot/ /etc/localtime

jk_cp -j /data/tomcatroot/ /bin/sh

jk_cp -j /data/tomcatroot/ /bin/uname

jk_cp -j /data/tomcatroot/ /usr/bin/dirname

jk_cp -j /data/tomcatroot/ /usr/bin/tty

jk_cp -j /data/tomcatroot/ /usr/bin/touch

然后编译tomcat native:

./configure --with-apr=/usr/bin/apr-config --prefix=/tmp/native

make install

jk_cp -j /data/tomcatroot/ /tmp/native/

cp -r /data/tomcatroot/tmp/native/* /data/tomcatroot/

然后修正文件夹权限

chown -R 33:33 conf logs webapps work temp

然后挂载特殊的文件系统

mount -o bind /dev /data/tomcatroot/dev

mount -o bind /proc /data/tomcatroot/proc (没有这个会报告找不到libjli.so)

然后tomcat的bin目录下创建setenv.sh,设置JAVA_HOME到jre的根目录下。

然后启动tomcat,jk_chrootlaunch -u 33 -g 33 -j /data/tomcatroot -x /data/tomcatroot/usr/local/apache-tomcat-7.x.x/bin/startup.sh

我之前做jail的时候犯了一个很大的错误,我居然把所有文件的owner都设置成www-data这个用户了。其实此时hacker可以通过替换/lib下的文件来达到获取root权限的目的,然后跳出chroot。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥