Tomcat中间件安全加固
1、设置口令长度和复杂度
- 在
Tomcat/conf/tomcat-user.xml
配置文件中设置密码为复杂密码,<user username=”tomcat”password=”Tomcat!254”roles=”admin”>
- 在
Tomcat/conf/server.xml
配置文件中为shutdown设置复杂密码<Server port="8005" shutdown="复杂密码">
2、禁止 Tomcat 列表显示文件
编辑 Tomcat/conf/web.xml
配置文件,
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把 true 改成 false
3、禁用非法HTTP方法
Tomcat默认情况下允许所有HTTP方法。如果您希望禁用某些HTTP方法,可以配置Tomcat的/conf/web.xml文件里的org.apache.catalina.servlets.DefaultServlet
的值。
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
readonly 参数默认是 true,即允许 delete 和 put 操作,修改 为 false。修改后重启 Tomcat 服务。
4、删除无关文件和目录*
- Tomcat/webapps目录,删除
docs、examples、host-manager、manager
目录。 - 删除默认的/conf/tomcat-users.xml文件
5、更改Tomcat服务器默认端口
(1)打开Tomcat安装目录下的conf文件夹。
(2)打开文件server.xml。
(3)找到以下代码块
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
此代码块指定了Tomcat的默认端口为8080。
(4)更改port属性的值来更改Tomcat的默认端口。
6、禁用超级用户启用Tomcat,使用普通用户启动Tomcat
(1)新建 Tomcat 用户:useradd tomcat
(2)设置密码:passwd tomcat
(3)将 Tomcat 目录改为 Tomcat
chown -R tomcat:tomcat /home/tomcat
(4)停止原来的 Tomcat 服务
(5)切换到 Tomcat 用户,启动 Tomcat
7、脚本权限回收
Tomcat/bin目录下的start.sh、catalina.sh、shutdown.sh的权限不高于744
chmod -R 744 Tomcat/bin/*
8、设置防止恶意关闭tomcat服务*
方法1:修改Tomcat服务的启动方式,建议使用非root账号启动Tomcat服务。
方法2:使用iptables限制对Tomcat服务的访问,只允许特定的IP地址或IP地址段访问Tomcat服务。
9、配置Tomcat错误页面重定向
查看 tomcat/conf/web.xml 文件,新增或修改如下配置:
<error-page>
<error-code>404</error-code>
<location>/错误页面</location>
</error-page>
......
<error-page>
<exception-type>java.lang.NullPointerException</except
ion-type>
<location>/error.jsp</location>
</error-page>
10、配置日志功能
编辑 server.xml 配置文件,在 标签中增加记录日志功能 将以下内容的注释标记< ! – – > 取消
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
11、设置连接超时时间
编辑 Tomcat/conf/server.xml 配置文件,连接超时修改为5000秒
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="5000"
redirectPort="8443" />
注意:连接超时时间和持续连接超时时间可能会影响Tomcat的性能。应该根据您的实际情况进行测试和优化。
12、设置连接数
- 编辑
/Tomcat/conf/server.xml
文件,样例如下:<Connector port="8080" minSpareThreads="25" ……/>
minSpareThreads=“25” //表示即使没有人使用也开这么多空线程等待,根据实际情况设置连接数。 - 编辑server.xml文件,样例如下:
<Connector port="8080" maxThreads="150"……/>
maxThreads=“150” //表示最多同时处理150个连接,根据实际情况配置连接数。
13、保护telnet管理端口
修改默认的8005管理端口或禁用,修改SHUTDOWN命令为其他字符串。
<Server port="8578" shutdown="close" > # 更改
<Server port="-1" shutdown="close" > # 禁用