╃苍狼山庄╃╃苍狼山庄╃

Clang出品,
必属精品!

用SSL构建一个安全的Apache之四

拷贝必需的/etc下的文件到chroot

#cp /etc/passwd /chroot/etc

#cp /etc/shadow /chroot/etc

#cp /etc/group /chroot/etc

#cp /etc/resolv.conf /chroot/etc

#cp /etc/hosts /chroot/etc

#cp /etc/localtime /chroot/etc

#cp /etc/localtime /chroot/etc

#cp /etc/ld.so.* /chroot/etc

测试chroot下的阿帕奇

#chroot /chroot /usr/local/apache/bin/apachectl start

现在再

#chroot /chroot /usr/local/apache/bin/apachectl stop

服务器就停下来了,如果不行的话,再次确认是否所有需要的库都拷到了/chroot/lib下了,如果仍然无帮助的话,或者可以以strace方式运行httpd,它的输出可能会有一些有价值的内容可以帮助确定是丢失了哪些库或者二进制文件。

然后我们可以做一些小工作了:默认情况下阿帕奇是以nobody用户及用户组运行的,不要更改它。

在passwdshadowgroup等文件中包含了大量系统信息,所以你可以替换掉它们。

建立一个用户名为httpd,UID为80

建立一个组名为httpd,GID为80

用下面的命令来将/chroot下的passwd,shadow,group替换掉

#echo "httpd:x:80:100:,,,:/home/httpd:/bin/false" > /chroot/etc/passwd

#echo "httpd:*LK*:11010:0:99999:7:::" > /chroot/etc/shadow

#echo "httpd:x:80:" > /chroot/etc/group

设定好文件的许可权限

#chmod 600 /chroot/etc/passwd shadow group

现在我们可以编辑apache的配置文件并进行需要的配置,文件在

/chroot/usr/local/apache/conf/httpd.conf,寻找到包含apache运行用户

及组的信息的行并改变它(approx. line 263),当然是改成httpd/httpd。

一切运行正常后我们可以删除前面的那些服务器安装的东西——/usr/local下的,包括服务器以及那些内建的模块等等。

#rm -rf /usr/local/apache

#rm -rf /usr/local/mod_ssl-2.5.0-1.3.11/

#rm -rf /usr/local/mod_perl-1.21/

#rm -rf /usr/local/openssl-0.9.4/

#rm -rf /usr/local/rsaref

如果以后还想改变它们的配置,增加新的模块,那么将原先的apache留下来也行。

将阿帕奇设定为在开机时自启动,修改/etc/rc.d/rc.local并且加入以下行:

echo "Starting Apache-SSL"

/usr/sbin/chroot/apache/bin/apachectl startssl

如果一切都运行正常的话,那么恭喜你,你已经成功地运行了带SSL支持的阿帕奇了,这会使你的web server更加安全,如果你希望加入更多的模块实现其它功能的话,自己动手吧,最后要说明的是:在chroot环境中最好只有必需的一些二进制程序,而SUID程序还是干掉比较好些。

本原创文章未经允许不得转载 | 当前页面:╃苍狼山庄╃ » 用SSL构建一个安全的Apache之四

评论

文章评论已关闭!