Tomcat安全优化

1.Tomcat启动端口优化

1)8005端口优化

8005端口是tcp的管理端口,修改默认的8005端口为不易猜测的端口,可以是大于1024的任意端口。

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

2)8009端口优化

8009端口为Ajp协议连接保护端口,针对8009端口的优化可以分为两部分。

1.修改默认8009端口为不易猜测的大于1024的端口。

2.通过iptables规则限制ajp端口访问的权限。

<Connector port="8528" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/>

2.Tomcat管理端优化

关于管理端的优化主要在3个点

1.删除默认的{tocmat安装目录}/conf/tomcat-users.xml文件,重启tomcat会自动生成新的文件。

2.删除{tocmat安装目录}/webapps/下所有目录和文件

3.将tomcat的启动用户设置成普通用户

<Context path="" docBase="/usr/local/tomcat_webvapps" debug="0" reloadable="false" crossContext="true"/>

3.Tomcat降权启动

Tomcat启动用户权限必须为非root权限,尽量降低tomcat启动用户对目录的访问权限,避免一旦tomcat服务器被入侵,黑客直接获取高级用户权限危害整个服务器

4.关闭文件列表功能

conf/web.xml文件中default部分的listings必须配置为false

    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>

5.隐藏Tomcat版本信息

tomcat报错后会有版本提示,定义一个error-code

1.修改conf/web.xml,重定向403/404以及500等错误页面的url

2.修改程序目录下的WEB-INF/web.xml配置页面重定向

	   <error-page>
            <error-code>404</error-code>
            <location>/WEB-INF/jsp/errors/error.jsp</location>
        </error-page>
        <error-page>
            <error-code>500</error-code>
            <location>/WEB-INF/jsp/errors/error.jsp</location>
        </error-page>

6.Tomcat响应头重写

修改http响应头中的服务端名称

server="webserver"

7.Tomcat设置访问限制

通过配置限定访问的IP来源

<context path=”/myapp” reloadable=”true” docBase=”/var/www/myapp”>
     <value className=”org.apache.catalina.values.RemoteAddrValue”
         allow=”192.168.[1-5].*,192.168.[10-15].*” deny=”″ />
</context >

8Tomcat日志设置

开启tomcat默认访问日志中的referer和user-agent记录

<Valve className="org.apache.catalina.valves.AccessLogValve"  directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>