博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apache 和 Tomcat 安全性配置
阅读量:4974 次
发布时间:2019-06-12

本文共 2783 字,大约阅读时间需要 9 分钟。

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

Apache安全配置

1、 隐藏或伪装apache版本号

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

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

 

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

 

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

2、 禁止使用目录索引

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

 

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

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

Allow from all
Allow from all
Options -Indexes FollowSymLinks AllowOverride None Order allow,deny deny from all

 

4、 Apache服务器的访问控制

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

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

order deny,allowdeny from allallow 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中默认有下面一行:

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

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

例如修改如下:

这样就只有在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 中的这段注释掉

 

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

参考文章:

Apache安全配置(基于linux)

apache模块详解

tomcat安全配置

windows平台下的tomcat安全设置

server2003下的tomcat安全

转载于:https://www.cnblogs.com/jonethan/archive/2012/05/15/2500923.html

你可能感兴趣的文章
nodejs dateformat date-utils
查看>>
【sicily】卡片游戏
查看>>
日志系统:数据来源的思考
查看>>
第一次写代码总结
查看>>
[转帖] sparkdev 的 博客 systemd
查看>>
[cnbeta] 波音系列飞机价格。。。
查看>>
MSTSC 3389 端口修改
查看>>
Java数据类型的位数
查看>>
旁门左道通过JS与纯CSS实现显示隐藏层
查看>>
HDU 4313 Matrix(并查集)
查看>>
HDU 2546 饭卡(0-1背包)
查看>>
HDU 2426 Interesting Housing Problem(二分图最佳匹配)
查看>>
SpringMVC存取Session的两种方法
查看>>
通俗易懂之Tensorflow summary类 & 初识tensorboard
查看>>
python基础篇12-函数
查看>>
获取APP地图权限
查看>>
java反射机制获得类的私有属性
查看>>
[EntLib]微软企业库5.0 学习之路——第一步、基本入门 [转]
查看>>
[ExtJs6] 环境搭建及创建项目
查看>>
<译>Zookeeper官方文档
查看>>