|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!apache的宁静加强设置(利用mod_chroot,mod_security)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)装置:
sudoserviceapache2stop
sudoapt-getlibapache2-mod-chroot
sudovi/etc/apache2/mod-available/mod_chroot.conf
内容为
<IfModulemod_chroot.c>
LoadFile/lib/libgcc_s.so.1
ChrootDir/var/www
</IfModule>
sudoa2enmodmod_chroot
/etc/apache2/site-enabled/000-default中DocumentRoot改成/
sudoln-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中
sudomkdir/var/www/tmp#放session
sudochmod1777tmp
sudomkdir-p/var/www/var/run/mysqld
sudoln-s//var/www/var/www
装置好apache,静态页面和php一般后,弄mysql
1),sudoservicemysqlstop.
2).改/etc/apparmor.d/usr.sbin.mysqld,
把"/var/run/mysqld.sockw,"那一行复制并改成
"/var/www/var/run/mysqld.sockw,"
3),改/etc/mysql/my.cnf
在[client],[mysqld_safe],[mysqld]每节里socket路径改成
"socket=/var/www/var/run/mysqld/mysqld.sock"
4),sudoservicemysqlstart.
一些其他成绩
date()不一般,办理举措:
sudomkdir-p/var/www/usr/share/var/www/etc
sudocp-rp/usr/share/zoneinfo/var/www/usr/share/
sudocp/etc/localtime/var/www/etc/
DNS大概出成绩(没试过)
sudocp/etc/resolv.conf/var/www/etc/resolv.conf
找不到毛病页面
sudocp-rp/usr/share/apache2//var/www/usr/share/
2.mod_security的装置,设置
装置
sudoaptitudeinstalllibapache2-mod-security2
sudocp/usr/share/doc/mod-security-common/examples/rules/modsecurity_crs_10_config.conf/etc/apache2/mods-enabled/mod-security.conf
sudoa2enmodmod-security
sudoapache2ctlstop
修正/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
sudoapache2ctlstart
#/usr/share/doc/mod-security-common/examples/rules/目次下另有一些划定规矩可用
参照gentoo的ebuild中的以下内容(http://gentoo-portage.com/www-apache/mod_security/ChangeLog)
[cpp]viewplaincopy
- if!usevanilla;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}*的这几个划定规矩仍是不要用对照好。
别的,http://www.gotroot.com/tiki-index.php?page=mod_security+rules供应一些划定规矩
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/chrooting-apache2-mod-chroot-debian-etch
/usr/share/doc/mod-security-common
前期增补一些:
chroot的关头是确保/var/www/,/var/www/var/www都存在,而且/var/www/var/www是指向/的标记毗连
对apachechroot的历程,我的了解(若有不合错误,接待斧正)是
1,先初始化其他模块
2,chroot到/var/www
3,改动以后目次到/var/www(此时实践上是改动到/var/www/var/www目次下)
4,当http哀求到来时,好比http://127.0.0.1/index.php,依据vhost的设置(假如documentroot是/,网页实践放在/var/www/下的话),apache寻觅/index.php(实践上是/var/www/index.php)
别的,另有个诊断***是检察/proc/<apachepid>/root和/proc/<apachepid>/cwd,一个是apache的root路径,一个是apache确当前目次(<apachepid>是apache的pid),再看看apache的会见日记
欢迎大家来到仓酷云论坛! |
|