科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道打造Linux下超安全的LAMP服务器

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 本文全面细致的介绍了在Linux下加固apache+php+mysql的方法,通过仔细阅读本文,你可以快速掌握安全配置apache,php,和mysql的方方面面,还有chroot这个前沿而强悍的技术,依靠这些知识,完全可以让你的WWW服务器在层出不穷的SQL注射(SQLInjection)和CSS跨站脚本攻击(CrossSiteScript)中屹立不倒。

来源:CCW 2010年1月12日

关键字: linux安全 系统安全

  • 评论
  • 分享微博
  • 分享邮件

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

  本文全面细致的介绍了在Linux下加固apache+php+mysql的方法,通过仔细阅读本文,你可以快速掌握安全配置apache,php,和mysql的方方面面,还有chroot这个前沿而强悍的技术,依靠这些知识,完全可以让你的WWW服务器在层出不穷的SQL注射(SQLInjection)和CSS跨站脚本攻击(CrossSiteScript)中屹立不倒。

  从动网的几个漏洞到独孤剑客的网站被黑,脚本攻击闹的沸沸扬扬,可见它在网络攻击中终于显现出他的重要性了。由于程序开发人员无意或有意的不小心,用Perl、PHP、ASP等编写的脚本就会出现这样或那样的错误,轻则导致泄露路径,重则导致整个服务器被攻陷甚至蔓延到整个网络。难道我们就非得把所用的脚本读N遍,认真的分析?我相信不是人人都有这等功力的,就算有这样的功力也不会枉费那么多的时间和精力。

  你可能会问:“我既想用网上免费的程序,又不想因此受到重创。难道就没有一个两全的办法?”

  针对windows主机,我们可以使用IISLockdown,SecureIIS之类的

  针对*nix主机给大家提出两个方案,一个就是给apache装上mod-security模块,另外一个办法就是把LAMP放置在一个chrootjail环境中。当然,最强的还是把两个方案结合在一起咯:)

  下面,让我们一起来分享这两个方案

  前提:我们只需要有普通的linux操作经验,包括vi的使用等

  首先,我们先弄清楚几个概念

  什么是Debian:一个完全自由的Linux操作系统,他最令我心仪的就是他的apt包管理工具,让你安装或者升级软件无忧!如果你是CERNET用户的话,推荐你到电子科大http://debian.ustc.edu.cn或者我的网站http://secu.zzu.edu.cn升级,CHINANET用户可以在http://mirror.gennkbone.org升级

  什么是LAMP:就是LinuxApacheMySQLPhp的缩写,几乎是最强的架站组合

  什么是chroot:是changeroot的缩写,就是把一个进程守护程序限制在某个特定的root环境中执行,这个被chroot了的程序几乎接近无法访问任何超出了这个root的任何文件或空间,这个root目录(也就是下面我们说到的jail)包含了执行进程守护程序所需要的所有文件,在你正确配置之后,绝大多数的入侵者是不可能跳出jail而接触到外面的文件的。这样我们就可以最大限度的限制入侵者保护自己。

  本文主要涉及到的软件

  makejailhttp://www.floc.net/makejail/

  是一个自动把建立jail所需要的程序放到jail内的软件,使用python编写,他有debian和openbsd的版本

  ZendPerformanceSuithttp://www.zend.com

  Zend公司开发的一套给PHP加速的东西,包括一个代码优化器(optimizer)和一个加速器(accelerator),还有cache功能,很好使的,有了他,php程序跑起来就跟飞一样!可以申请30天试用版本的,如果你觉得好用的话就买下来吧:)mod-securityhttp://www.modsecurity.org/他是apache的一个模块,他有请求过滤,日志审计等功能,可以防止SQLInjection,跨站脚本攻击,很不错的一个模块

  我们假设我们手头上有一个装好的debianwoody,并且已经正确设置了了apt源

  二话不说,先升级到debiansarge,也就是testing版本,我觉得这个版本还是不错的,因为他的软件比较新,而且有security支持,最主要这个版本的软件列表包含makejail这个软件

  首先su到root升级系统并安装apache,php,mysql,gd

  更新apt源,我在教育网,所以使用中科大的apt源debian.ustc.edu.cn速度很快

  [root@debian/]apt-getupdate(如图update.jpg)

  再更新所有软件包

  [root@debian/]apt-getdist-upgrade(如图upgrade.jpg)

  [root@debian/]apt-getinstallapachephp4php4-gd2php4-mysqlmysql-servermysql-client

  并且把extension=gd.so和extension=mysql.so加到php.ini中

  你的系统就已经装上了apache-1.3.27,php-4.1.2,mysql-4.0.13

  这样一个基本的LAMP就起来了,简单吧。

  再加一个系统用户,这个用户是我们等会chroot要用的

  [root@debian/]adduser--home/chroot/apache--shell/dev/null--no-create-home--system--groupchrapax

  接着我们编辑httpd.conf文件并做一些修改,删除多余的apache模块并激活php模块

  [root@debian/]vi/etc/apache/httpd.conf

  注释掉除了mod_access,mod_auth,mod_dir,mod_log_config,mod_mime,mod_alias之外的所有模块

  去掉注释LoadModulephp4_module/usr/lib/apache/1.3/libphp4.so以支持PHP(如图apache_mod.jpg)

  设置ServerAdminfatb@zzu.edu.cn

  设置ServerNamesecu.zzu.edu.cn

  把

  下面的OptionsIndexesIncludesFollowSymLinksMultiViews的Indexes去掉,这样避免被别人索引目录

  把用户和组改成chrapax

  Userchrapax

  Groupchrapax

  在下面加上index.php如下

  DirectoryIndexindex.phpindex.htmlindex.htmindex.shtmlindex.cgi

  默认使用中文字符集

  AddDefaultCharsetgb2312

  加出错重定向,这样当出现下面的错误的时候,用户就会被重顶向到到你指定的页面

  ErrorDocument404http://secu.zzu.edu.cn/index.php

  ErrorDocument402http://secu.zzu.edu.cn/index.php

  ErrorDocument403http://secu.zzu.edu.cn/index.php

  ErrorDocument500http://secu.zzu.edu.cn/index.php

  把signature关掉

  ServerSignatureOff

  如果signature打开的话,当有人访问到一个被禁止或者不存在的页面的话,会出现一些错误信息的

  这样的信息,不好,去掉他(如图403.jpg)

  如果不需要cgi支持的话,删除

  ScriptAlias/cgi-bin//usr/lib/cgi-bin/

  AllowOverrideNone

  OptionsExecCGI-MultiViews

  Orderallow,deny

  Allowfromall

  这行的注释去掉,因为我们需要PHP支持

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章