正在阅读:用SSL构建一个安全的Apache之三用SSL构建一个安全的Apache之三

2004-02-14 09:34 出处:奥索网 作者:OSO奥索 责任编辑:zwg
六、阿帕奇的配置   现在我们可以来看看阿帕奇的配置文件了——需要记住的是如果你对它做了更改,在未重新启动httpd守护进程前,它是不会发生作用的。好,现在我们可以进目录/usr/local/apache/conf看看了。 httpd.conf -   这是阿帕奇的主要配置文件,你可以在这里设定服务器启动时的基本环境,比如服务器的启动方式、端口号、允许的最多连接数等等,这一文件的注释非常详细,要看明白应该没什么问题。 access.conf -   这一文件是设定系统中的存取方式和环境的,但现在已经可以在httpd.conf中设定了,所以推荐你别动它,放空好了。 srm.conf -   这家伙主要做的是资源上的设定,你也可以放空,仅仅设定httpd.conf中的相关项。   现在重启web server来使改动生效: #/usr/local/apache/bin/apachectl restart 七、将阿帕奇设定在chroot环境下   现在我们开始把刚才建立的东西移到chroot环境下——包括阿帕奇服务器以及所有需要的库文件。当然如前面所说的,这部份是可选的,如果你怕麻烦的话就算了,但转移后可以对你的web server多一个可靠的保护。 建立/chroot目录 #mkdir /chroot 建立一些必需的子目录 #mkdir /chroot/dev #mkdir /chroot/lib #mkdir /chroot/etc #mkdir /chroot/bin #mkdir /chroot/usr #mkdir /chroot/usr/local 在我们的chroot建立/dev/null #mknod -m 666 /chroot/dev/null c 1 3 将阿帕奇拷贝到/chroot目录中 #cp -rp /usr/local/apache/ /chroot/usr/local 拷贝必需的二进制文件 #cp /bin/sh /chroot/bin 确定哪些库是必需的——这取决于你编译时内建了哪些模块 #ldd /usr/local/apache/bin/httpd 将需要的库拷贝到chroot目录 #cp /lib/libm.* /chroot/lib/ #cp /lib/libgdbm.* /chroot/lib #cp /lib/libdb.* /chroot/lib #cp /lib/libdl.* /chroot/lib #cp /lib/libc.* /chroot/lib 拷贝网络连接所需要的函数库 #cp /lib/libnss* /chroot/lib 拷贝必需的/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程序还是干掉比较好些。

关注我们

最新资讯离线随时看 聊天吐槽赢奖品