1.更新Tomcat版本
2.Tomcat不对外提供端口服务
3.删除示例程序
4.检查控制台口令
5.设置SHUTDOWN 字符串
6.设置运行身份
7.禁止列目录
8.日志审核
9.自定义错误信息
1. 更新Tomcat版本
关注Tomcat官方及时更新Tomcat版本
2. Tomcat不对外提供端口服务
Tomcat不对外提供端口服务,限制IP,使用Nginx转发到Tomcat处理请求,建议保留Nginx日志
3. 删除文档和示例程序
删除文档和示例程序
方法:打开tomcat_home/webapps 文件夹,默认存在docs 和examples 文件
4. 检查控制台口令
加固tomcat 控制台,设置复杂的口令
方法:
(1)默认通过http://ip:8080/manager/html 可以访问tomcat manager,如
如果不需要使用,建议删除tomcat_home/webapps/manager 和host-manager 文件夹;
默认通过http://ip:8080/admin 可以访问tomcat admin,如果不需要使用,
建议删除tomcat_home/webapps/admin 文件夹
(2)如果需要使用tomcat manager,打开
tomcat_home/conf/tomcat-users.xml,查看用户密码复杂度,例如:
..<role rolename=”manager”/>
..<user username=”tomcat” password=”复杂的口令” roles=”manager”/>
方法:
(1) 删除tomcat_home/webapps 下的相关文件夹
(2) 在tomcat-users.xml 中为所有用户设置复杂的密码
5. 设置SHUTDOWN 字符串
防止恶意用户telnet 到8005 端口后,发送SHUTDOWN 命令停止
方法:打开tomcat_home/conf/server.xml,查看是否设置了复杂的字符串
<Server port=”8005″ shutdown=”复杂的字符串”>
方法:设置复杂的字符串,防止恶意用户猜测
6. 设置运行身份
以tomcat 用户运行服务,增强安全性
方法:查看tomcat 的启动脚本或服务,确认是否以tomcat 身份运行
方法:
(1) 创建apache 组:groupadd tomcat
(2) 创建apache 用户并加入apache 组:useradd tomcat –g tomcat
(3) 以tomcat 身份启动服务
Windows 系统:
(1) 新建一个tomcat 用户
(2) 设置tomcat 用户对tomcat_home 的相关权限
(3) 在服务管理器 (service.msc) 中找到tomcat 服务,右键选择属性,
设置登录身份为tomcat 用户
7. 禁止列目录
防止直接访问目录时由于找不到默认主页而列出目录下所有文件
方法:打开应用程序的web.xml ,查看listings 是否设置为false
<param-name>listings</param-name>
<param-value>false</param-value>
方法:将listings 的值修改为false
8. 日志审核
检查tomcat 是否记录了访问日志
方法:tomcat 的日志信息默认存放在tomcat_home/logs 中,访问日志默认未开启
方法:如果tomcat 前端有Apache ,Apache 可以记录访问日志。如果tomcat
独立运行,可以开启tomcat 访问日志,修改
tomcat_home/conf/server.xml,取消注释:
<Valve className=”org.apache.catalina.valves.AccessLogValve”
directory=”logs”
prefix=”localhost_access_log.” suffix=”.txt” pattern=”common”
resolveHosts=”false”/>
启用access_log 后,重启tomcat,在tomcat_home/logs 中可以看到访问日志
注:这里记录的时间转换为北京时间需要+8 小时
9. 自定义错误信息
自定义Tomcat 返回的错误信息
方法:查看应用程序的web.xml 中<error-page> </error-page> 部分的设置
方法:修改应用程序的web.xml ,在最后</web-app>一行之前加入以下内容
(1)表示出现404 未找到网页的错误时显示404.html 页面
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
建议自定义403 ,404,500 错误的页面
(2 )表示出现java.lang.NullPointerException 错误时显示 error.jsp 页面
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error.jsp</location>
</error-page>