2007-02-06

打造Linux下超级安全的LAMP服务器

来源: 本站收集整理 作者:佚名 评论 0 条
 http://www.test.com/openfile.php?path=/../../..,虽然这个漏洞看似弱智,但是很多网站都有的,比如CERNET某大学某图片站:)
SecFilter "../"
# 防止跨站脚本(CSS)攻击
SecFilter "<( | )*script"
SecFilter "<(.| ) >"
# 防止SQL插入(SQL Injection)攻击
SecFilter "delete(空格| ) from"
SecFilter "insert(空格| ) into"
SecFilter "select(空格| ) from"
SecFilter "union(空格| ) from"
# 下面是限制了upload.php文件只能用来上传jpeg.bmp和gif的图片

SecFilterInheritance Off
SecFilterSelective POST_PAYLOAD "!image/(jpeg|bmp|gif)"

用好了mod-security,可以使你的网站的安全性大大的提高的,在他带的manual里你可以找到更多的设置的,在光盘中附带了更加具体的规则
(mod-security.rule.txt)

然后我们装Zend Performance Suit,在安装的时候,他问你使用的用户的时候,记得写chrapax而不是www-data

order allow,deny
allow from 211.43.125.63(你的IP)
deny from all
Options All

下面重头戏到了,chroot,非常重要的一步,但可能还是比较简单的一步,先把几个python写的配置文件复制到/etc/makejail下
[root@debian /etc/makejail]cp /usr/share/doc/makejail/examples/apache.py ./
然后编辑apache.py文件添加修改相应的信息
users=["chrapax"]
groups=["chrapax"]
packages=["apache","apache-common","php4","php4-gd","mysql-common","libapache-mod-security"]
然后执行makejail命令
[root@debian /etc/makejail]makejail apache.py
完成之后,我们得先做个软连接并把chrapax从passwd和group文件分离出来
[root@debian /etc/makejail]ln -s /var/chroot/apache /apache
[root@debian /etc/makejail]grep chrapax /etc/passwd > /apache/etc/passwd
[root@debian /etc/makejail]grep chrapax /etc/group > /apache/etc/group
[root@debian /etc/makejail]cp /etc/mime.types /apache/etc/
然后在/etc/init.d里建一个叫chrapax的文件并让他可执行,内容详见光盘中的chrapax
[root@debian /etc/makejail]cat > /etc/init.d/chrapax
[root@debian /etc/makejail]chmod x /etc/init.d/chrapax
接着使用rcconf命令让他在系统启动的时候启动(如图rcconf.bmp)
[root@debian /etc/makejail]rcconf
启动chroot的apache
[root@debian /etc/makejail]/etc/init.d/chrapax start
先测试一下php和mysql连接是否有问题
[root@debian /etc/makejail]cat > /apache/var/www/mysql.php
$conn = mysql_connect("localhost", "fatb", "urpassword")
or die;
print "php can work with mysql now";
mysql_close($conn);
phpinfo();
?>
结果浏览器返回
Warning: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /var/www/mysql.php on line 2

但是我们可以看到在/var/run/mysqld/下的确有mysqld.sock文件,其实就是因为我们已经chroot apache了,他只能访问apache root jail里的东西,也就是/var/chroot/apache下面的东西,而mysqld.sock明显在jail外面,所以连接不上当然是很正常的了,解决这个问题的方法也很简单,做个硬连接就是了
共6页: 上一页 [1] [2] [3] [4] 5 [6] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:自己动手做一个迷你型Linux操作系统  
下一篇:Linux操作系统内核启动参数详细解析
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号