apache 和 Tomcat 安全性配置

    Apache 和 Tomcat是我们平时使用比较多的两个Web服务器,本文收集一些关于这两个服务器的安全性配置的方法和技巧。另外安全是相对的,需要服务器安全、数据库安全、应用程序安全互相配合。仅从服务器配置上只能在某些方面提高系统的安全性。

Apache安全配置

1、 隐藏或伪装apache版本号

    打乱攻击者的步骤,给攻击者带来麻烦。一般软件的漏洞信息是和版本相关的,在攻击者收集你服务器软件信息时给予迷惑信息是个不错的选择。

默认情况下,系统会把apache的版本模块都显示出来(http返回的头),如下图

 

    添加上如下两行,再次看http返回的信息,已经不包含apache的版本好了。

 

    还有另外一种方法是,修改apache的源码,把版本号改为一个错误的,这个需要重新编译apache,不考虑了。

2、 禁止使用目录索引

    对于可以访问的web目录,要使用相对保守的途径进行访问,不要让用户查看任何目录索引列表,修改conf/httpd.conf

 

3、 配置web目录的访问策略

    结合业务,如果apache只作为文件访问服务器,可以配置只允许客户端访问那些类型的资源,比如如下的配置。

<Directory "D:/ftp/tk/media">

<!-- 只允许flv或jpg的文件访问权限 -->

    <FilesMatch "\.flv$">

        Allow from all

    </FilesMatch>

    <FilesMatch "\.jpg$">

        Allow from all

    </FilesMatch>

    Options -Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    deny from all

</Directory>

 

4、 Apache服务器的访问控制

    apache的access.conf文件负责设置文件的访问权限,可以实现互联网域名和ip地址的访问控制

如允许192.168.1.1到192.168.1.254的主机访问,可以这样设定

order deny,allow

deny from all

allow from pair 192.168.1.0/255.255.255.0

5、 Apache 防Dos

    apache服务经常会碰到Dos攻击,防范的主要手段是通过软件,apahce Dos Evasive Maneuvers Module

来实现的,它是一款mod_access的代替软件,可以对抗DoS攻击,该软件可以快速拒绝来自相同地址对同一URL的重复请求,通过查询内部一张各子进程的哈希表来实现

可以到网址:http://online/.securityfocus.com/tools/ 上下载软件

6、 建立安全的目录结构

apache服务器包括四个目录结构

ServerRoot #保存配置文件,二进制文件与其他服务器配置文件

DocumentRoot #保存web站点内容,包括HTML文件和图片等

ScripAlias #保存CGI脚本

Customlog 和 Errorlog #保存日志和错误日志

建议的目录结构为,以上四种目录相互独立并且不存在父子逻辑关系。

ServerRoot目录只能为root用户访问

DocumentRoot目录应该能够被管理web站点内容的用户访问和使用apache服务器的apache用户与组访问

ScripAlias目录应该只能被CGI开发人员和apache用户访问

Customlog 和 Errorlog只能被root访问

下边是一个安全目录结构的事例

D:/

|+/apache2.2(ServerRoot)

|+/logs(Customlog和Errorlog)

|+/cgi-bin(ScripAlias)

|+/html(DocumentRoot)

这样的目录结构是比较安全的,因为目录之间独立,某个目录权限错误不会影响到其他目录

7、 勤打补丁

     针对于一些缓存区溢出等漏洞,通过这种手段可以有效防御,及时修复已知漏洞可以很好的加强服务器安全。

Tomcat安全配置

1、  使用非管理员账户运行tomcat,配置有限的权限,限定在特定的目录下

    默认的安装tomcat是以Administrator运行的,拥有很高的权限,这样可能会导致一些安全隐患。当用户上传了恶意的jsp可以随意的删除服务器上的文件和目录,执行某些恶意代码或木马程序。所以使用受限账户启动tomcat可以很好的将权限控制在某些范围内。

2、 更改关闭服务器端口

    在conf/server.xml中默认有下面一行:

<Server port="8005" shutdown="SHUTDOWN">

这样允许任何人只要telnet到服务器的8005端口,输入”SHUTDOWN”,然后回车,服务器立即就被关掉了。

从安全的角度上考虑,我们需要把这个shutdown指令改成一个别人不容易猜测的字符串,可以同时把端口也改了。

例如修改如下:

<Server port="8005" shutdown="tiyuan123">

这样就只有在telnet到8005,并且输入”c1gstudio”才能够关闭Tomcat.

注意:这个修改不影响shutdown.bat的执行。运行shutdown.bat一样可以关闭服务器。

3、 删除掉tomcat默认的其他应用

    Tomcat默认安装时,会有一些默认的管理应用,如manager和host-manager等,而且他们默认的登录密码都是空,所以在实际部署时需要更改密码,或是删除掉这些应用。

4、 设置默认的错误页面

    网站中常见的404、500等错误在浏览器中会显示服务器的详细信息,很容易暴露一些敏感的信息,所以在实际部署中需要替换成更外的一些页面,当出现错误时,转向一个体验良好的界面。

打开conf/web.xml文件,在文件的最后添加如下类似的代码

 

同时在根目录下创建404.jsp和500.jsp文件

5、 屏蔽目录文件自动列出的方法

    和apache的原理类似,设置tomcat不显示目录列表,在tomcat的conf/web.xml中,进行以下配置

 

6、 关闭8009端口

    8009端口是tomcat和apache的mod_proxy_ajp,mod_jk沟通的端口,没有用到就关了。

在<tomcatpath>/conf/server.xml 中的这段注释掉

<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->

 

-----------------------------------------------------------------------

参考文章:

Apache安全配置(基于linux)

http://www.blogjava.net/bukebushuo/articles/293776.html

apache模块详解

http://www.djx1981.com/archives/224.html

tomcat安全配置

http://blog.c1gstudio.com/archives/865

http://www.cnblogs.com/dreamof/archive/2010/09/04/1818032.html

http://www.diybl.com/course/4_webprogram/jsp/jsp_js/2008624/127872.html

windows平台下的tomcat安全设置

http://dazhilao.iteye.com/blog/482562

server2003下的tomcat安全

http://www.myhack58.com/Article/60/61/2011/30064.htm

posted on 2012-05-15 09:28  lepfinder  阅读(1737)  评论(0编辑  收藏  举报