首先完成核心配置流程——近期处理了不少CentOS环境下Tomcat遭受攻击的案例,发现许多问题归根结底是初始化阶段没有做到位。
初始化安全配置
- 删除默认应用目录:初次安装完毕后,建议直接将
/srv/apache-tomcat/webapps下的所有内容彻底清除。保留默认的示例应用,等于是向攻击者敞开大门。rm -rf /srv/apache-tomcat/webapps/* - 关闭用户权限:在
tomcat-users.xml中,所有用户权限要么注释掉,要么完全删除。默认用户和角色往往成为入侵的突破口。# cat conf/tomcat-users.xml# # - 隐藏Tomcat版本号:编辑
server.xml,在Connector节点中添加server属性,将默认返回的Tomcat版本信息替换为自定义名称。最简单的方法就是直接修改版本号。vim $CATALINA_HOME/conf/server.xml# 在Connector节点添加server属性
用户与端口管理
- 禁止使用root运行Tomcat:创建一个专用用户(例如
myuser),并将Tomcat目录的权限赋予该用户。以root身份运行应用,安全隐患极大。useradd -p password myuserchown -R myuser:myuser /usr/ja va/tomcat7/* - 严格配置防火墙策略:仅开放业务所需的端口(如8080),其余端口一律拒绝访问。不要为了省事而直接关闭防火墙。
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanentsudo firewall-cmd --reload
应用程序安全加固
- 关闭自动部署功能:在
server.xml中将unpackWARs和autoDeploy均设置为false。若两者保持开启,恶意WAR文件可能被自动加载执行。 - 修改JSESSIONID名称:将默认的JSESSIONID改为PHPSESSID,从而降低被针对性攻击的风险。
- 删除非必要目录:
webapps下的docs、examples、host-manager、manager、ROOT等默认应用基本用不到,保留它们只会增加攻击面。rm -rf /srv/apache-tomcat/webapps/docs /srv/apache-tomcat/webapps/examples /srv/apache-tomcat/webapps/host-manager /srv/apache-tomcat/webapps/manager /srv/apache-tomcat/webapps/ROOT
配置HTTPS加密通信
- 申请合规SSL证书:从受信任的证书颁发机构(CA)获取SSL证书。
- 启用SSL连接器:修改
server.xml,新增一个监听8443端口的SSL连接器。数据走明文还是加密通道,安全性相差极大。
系统Banner信息隐藏
- 避免泄露服务器信息:在响应头中不要返回服务器软件信息,同样通过修改
server.xml中的server属性来实现。
其他安全措施
- 使用Systemd管理服务:创建并启用Systemd服务文件,以便更便捷地控制Tomcat的启动和停止。
sudo systemctl daemon-reloadsudo systemctl enable tomcatsudo systemctl start tomcat - 定期更新与打补丁:保持Tomcat版本为最新,同时检查其依赖的组件是否存在已知安全漏洞。
- 重视日志记录:开启访问日志和操作日志,并设置详细的记录级别。一旦出现问题,日志能提供清晰的排查线索,远胜于事后盲目猜测。
总而言之,通过调整默认配置、收紧权限、开启日志审计,并定期进行安全检查,就能有效封堵大部分常见漏洞。这套安全加固流程一旦熟练执行,后续几乎无需过多操心。
