Tomcat 安全加固
Tomcat 安全加固
一、信息保护检查
A、检查是否删除无关文件和目录:
小知识学习:Tomcat安装提供了示例应用程序、文档和其他可能不用于生产程序及目录,存在极大安全风险;
判断依据:存在则不符合
检查方式:查看Tomcat根目录的webapps目录下有无docs、examples、host-manager、manager目录;
加固方式:删除Tomcat示例程序和目录、管理控制台等,即从Tomcat根目录的webapps目录,移出或删除docs、examples、host-manager、manager目录;
B、检查Tomcat是否修改默认端口:
判断依据:若为默认端口则是不符合;
检查方式:检查server.xml配置文件,确保配置端口不为8080即可;
加固方式:将端口修改为8080以外的其它端口即可;
C、检查catalina.jar 中 Serverinfo.properties 中的内容信息是否为默认:
判断依据:默认则不符合;
检查方式:查看Server Info.properties文件并检查server.info属性
命令:cat /usr/local/tomcat/lib/org/apache/catalina/util/ServerInfo.properties
加固方式:修改以下内容:
server.info=XXXX
server.number=XXX
server.built=XXX
D、检查是否禁用X-Power-by HTTP Header
判断依据:启用则不符合
检查方式:查看server.xml配置文件,确保里面有关X-PoweredBy字段被设置为False,默认False
加固方式:修改为false重启即可;
E、检查Tomcat服务器头部信息是否被删除
判断依据:存在且为Tomcat相关值则不符合;
检查方式:查看server.xml配置文件,确保里面连接器中没有设置"server="字段;
加固方式:删除或者修改改字段;
F、检查Tomcat错误页面是否经过处理
判断依据:不是默认则符合;
检查方式:检查关于错误页面的配置是否仍然采用默认显示方式;
加固方式:修改web.xml配置文件,在文件末尾的前面加上以下内容
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
二、访问限制检查
A、检查是否禁用Trace请求
判断依据:存在则不符合
检查方式:查看server.xml配置文件,确保里面没有连接器允许Trace请求;
加固方式:将$CATALINA_HOME/conf/server.xml中指定的每个Connector的ALLOW Trace属性设置为false;
B、检查是否限制对web管理应用程序的访问(IP)
判断依据:存在则符合
检测方式:检查server.xml配置文件,确保存在关于限制IP对于web管理应用程序访问的配置;
加固方式:修改server.xml配置文件,若没有以下配置或者配置注释,则输入以下代码或取消注释;
C、检查是否配置了连接超时
判断依据:设置则符合;
检查方式:检查server.xml配置文件,确保配置文件中存在connectionTimeout的关键字配置;
加固方式:修改server.xml配置文件,确保连接器中设置了connectionTimeout字段;
D、检查是否配置了最大请求头限制
判断依据:设置则不符合
检查方式:检查server.xml配置文件,确保配置文件中存在maxHttpHeaderSize的关键字配置;
加固方式:将$CATALINA_HOME/conf/server.xml中每个连接器的maxHttp HeaderSize设置为适当的设置;
E、检查Tomcat是否启用目录浏览功能
判断依据:启用则不符合
检查方式:查看web.xml配置文件,确保listings配置项被设置为False;
加固方式:修改web.xml配置文件;
F、检查Tomcat是否限制最大连接会话数
判断依据:设置则符合
检查方式:检查server.xml配置文件,确保最大会话数项maxConnections已被设置
加固方式:修改server.xml配置文件
三、日志审计检查:
A、检查Tomcat日志审计功能是否开启
判断依据:开启则符合
检查方式:检查server.xml配置文件,确保日志相关的配置没有被注释
加固方式:修改server.xml配置文件
B、检查Tomcat日志审计类型是否符合需求
判断依据:无;
检查方式:检查server.xml文件,确保配置文件中包含关键的字段,例如;cookie,请求头部信息等;
加固方式:修改server.xml文件;
四、安全选项检查:
A、检查关闭端口被设置的值是否为默认的:SHUTDOWN
判断依据:shutdown的值为:SHUTDOWN则不符合;
检查方式:检查server.xml配置文件,确保shutdown的值没有为默认的:SHUTDOWN
加固方式:修改shutdown的值,或者将侦听的端口为“-1“以达到关闭此端口的目的
B、检查Tomcat关键目录的访问权限
判断依据:权限不正确则不符合
检查方式:通过ls或者ll命令检查$CATALINA_HOME目录下文件或者文件夹的拥有者和权限是否正确;
加固方式:创建tomcat账户,设置tomcat目录的拥有者和组都为tomcat;
C、检查连接器是否启用SSL设置
判断依据:SSLEnabled设置将确保在连接器或者过程中信息的机密性和完整性;
检查方式:检查server.xml文件,确保SSLEnabled的值为True;
加固方式:修改server.xml文件;
D、检查SSL协议是否使用TLS设置
判断依据:存在则符合
检查方式:检查server.xml配置文件,确保SSLProtocol的值为TLS;
加固方式:修改server.xml配置文件;
E、检查是否使用证书认证的连接方式
判断依据:存在则符合
检查方式:检查server.xml配置文件,确保clinnetAuth字段被设置为true并且certificateVerification字段被设置为required;
加固方式:修改server.xml配置文件;