LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1305|回复: 1

apache的安全增强配置(使用mod_chroot,mod_security)

[复制链接]
发表于 2010-8-17 16:36:02 | 显示全部楼层 |阅读模式
原文还发在 http://blog.csdn.net/helonghe/archive/2010/08/17/5817850.aspx
linuxsir上高手真多,希望大家指教

                  apache的安全增强配置(使用mod_chroot,mod_security)
                                        作者:windydays 2010/8/17   
        LAMP环境的一般入侵,大致经过sql注入,上传webshell,本地提权至root,安装rootkit等步骤。采用如下的配置,mod_chroot和

单独分区挂载可以 让本地提权变得极为困难,而mod-security可以封堵一般的sql注入等应用层攻击。

        以下内容是在ubuntu10.04上实践以后总结出来的,直接上命令,就不做过多解释了,水平有限,错误在所难免,欢迎指正。首先确保

apache,php,mysql已经正常工作,出现问题的话,查看/var/log/apache2, /var/log/syslog,/var/log/mysql/error.log 尤其是apparmor导致的

权限错误,不易发现。


1.mod_chroot的安装,配置
目标是chroot到/var/www。
(1) 安装:
                sudo service apache2 stop
                sudo apt-get libapache2-mod-chroot
                sudo vi /etc/apache2/mod-available/mod_chroot.conf
                内容为
                        <IfModule mod_chroot.c>
                           LoadFile /lib/libgcc_s.so.1
                           ChrootDir /var/www
                         </IfModule>

                sudo a2enmod mod_chroot
                /etc/apache2/site-enabled/000-default 中DocumentRoot 改为 /
                sudo ln -s /var/www/var/run/apache2.pid /var/run/apache2.pid
                并把
                        ln -s /var/www/var/run/apache2.pid /var/run/apache2.pid
                加到/etc/rc.local中
                sudo mkdir /var/www/tmp # 放session
                sudo chmod 1777 tmp
                sudo mkdir -p /var/www/var/run/mysqld
                sudo ln -s / /var/www/var/www
安装好apache,静态页面和php正常后,弄mysql
1),sudo service mysql stop.
2).改/etc/apparmor.d/usr.sbin.mysqld,
        把"/var/run/mysqld.sock w," 那一行复制并改为
        "/var/www/var/run/mysqld.sock w,"
3),改/etc/mysql/my.cnf
        在[client],[mysqld_safe],[mysqld]每一节里socket路径改为
        "socket  = /var/www/var/run/mysqld/mysqld.sock"
4),sudo service mysql start.

一些其他问题
        date()不正常,解决办法:
                sudo mkdir -p /var/www/usr/share /var/www/etc
                sudo cp -rp /usr/share/zoneinfo /var/www/usr/share/
                sudo cp /etc/localtime /var/www/etc/
        DNS可能出问题(没试过)
                sudo cp /etc/resolv.conf /var/www/etc/resolv.conf
        找不到错误页面
                sudo cp -rp  /usr/share/apache2/ /var/www/usr/share/


2.mod_security的安装,配置
        安装
        sudo aptitude install libapache2-mod-security2
        sudo cp /usr/share/doc/mod-security-common/examples/rules/modsecurity_crs_10_config.conf   /etc/apache2/mods-enabled/mod-security.conf
        sudo a2enmod mod-security
        sudo apache2ctl stop
        修改/etc/apache2/mods-available/mod-security.conf中的debug_log和audit_log路径到合适的位置,并添加如下两行

                Include /usr/share/doc/mod-security-common/examples/rules/modsecurity_crs_10_global_config.conf
                Include /usr/share/doc/mod-security-common/examples/rules/base_rules/*.conf

        sudo apache2ctl start
        #/usr/share/doc/mod-security-common/examples/rules/目录下还有一些规则可用
        另外,参照gentoo的ebuild中的如下内容(http://gentoo-portage.com/www-apache/mod_security/ChangeLog)
               if ! use vanilla; then
                       mv "${D}"${APACHE_MODULES_CONFDIR}/mod_security/modsecurity_*{41_phpids,50_outbound}* \
                             "${D}"${APACHE_MODULES_CONFDIR}/mod_security/optional_rules || die
                fi
        modsecurity_*{41_phpids,50_outbound}* 的这几个规则还是不要用比较好。



3.另外,可以把/var/www/放在一个单独的分区上,用noexec,nosuid,nodev参数挂载,打开mysql的apparmor,可以极大增强安全性。

参考资料:
        /usr/share/doc/mod-chroot-common/
        http://core.segfault.pl/~hobbit/mod_chroot/index.html
        http://server.it168.com/a2010/0714/1077/000001077357.shtml
        http://www.howtoforge.com/chroot ... -chroot-debian-etch
        /usr/share/doc/mod-security-common
我的邮箱是 lh2008999 at gmail.com 欢迎交流
发表于 2010-8-18 18:09:44 | 显示全部楼层
现在最新版的为 modsecurity-apache_2.5.12.tar.gz
安装很简单,但配置一直没搞出来(文档上也没有configure的方法)。能否麻烦楼主给个文档(我搞了下,测试了蛮多次, httpd启动不起来),谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表