1. 系统与Tomcat基础准备
sudo apt update && sudo apt upgrade确保系统软件包最新;使用sudo apt install tomcat9 tomcat9-admin安装Tomcat及管理组件(如tomcat9-admin包含管理界面所需模块)。sudo groupadd tomcat创建tomcat组,再用sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat创建系统用户(/bin/false禁用登录shell,/opt/tomcat为Tomcat安装目录),避免以root身份运行Tomcat。tomcat用户及组,限制访问范围:sudo chown -R tomcat:tomcat /opt/tomcat /var/lib/tomcat9 /var/log/tomcat9 /etc/tomcat9
sudo chmod -R 750 /opt/tomcat # 确保目录仅所有者可写
2. 核心安全配置(server.xml)
/etc/tomcat9/server.xml(或/opt/tomcat/conf/server.xml),将HTTP连接器端口从8080改为非标准端口(如1234),HTTPS端口从8443改为8443(或其他),降低端口扫描风险:<Connector port="1234" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" keystoreFile="/path/to/keystore.jks" keystorePass="yourPassword" />
<Connector>标签中添加server="Custom Server"属性,掩盖Tomcat版本,减少针对性攻击:<Connector ... server="Custom Server" />
server.xml中的AJP连接器(默认端口8009),避免不必要的协议暴露:<!-- 注释或删除以下内容 -->
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
3. 管理界面安全强化
sudo rm -rf /var/lib/tomcat9/webapps/manager /var/lib/tomcat9/webapps/host-manager删除manager(远程管理)和host-manager(主机管理)应用,避免未授权访问。/etc/tomcat9/tomcat-users.xml,添加具有manager-gui(远程管理)和admin-gui(全局管理)角色的用户,设置强密码(如包含大小写字母、数字和特殊字符):<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="secureAdmin" password="YourSecurePassword123!" roles="manager-gui,admin-gui"/>
</tomcat-users>
server.xml的<Valve>标签限制IP访问(如仅允许公司IP):<Context path="/manager" privileged="true">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+" />
</Context>
4. SSL/TLS加密配置
sudo apt install certbot python3-certbot-nginx),或通过OpenSSL生成自签名证书(仅测试用):sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat9/keystore.jks -validity 365 -keysize 2048
server.xml中添加SSL连接器,启用HTTPS并强制跳转:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" keystoreFile="/etc/tomcat9/keystore.jks" keystorePass="yourKeystorePassword" clientAuth="false" sslProtocol="TLS" />
web.xml中添加安全约束,要求敏感页面(如/manager)使用HTTPS:<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
5. 防火墙配置(UFW)
sudo apt install ufw安装,然后启用防火墙:sudo ufw enable。1234)和HTTPS(8443)端口:sudo ufw allow 1234/tcp
sudo ufw allow 8443/tcp
192.168.1.100),提升安全性:sudo ufw allow from 192.168.1.100 to any port 1234/tcp
sudo ufw allow from 192.168.1.100 to any port 8443/tcp
sudo ufw enable激活规则,通过sudo ufw status验证配置。6. 日志与监控
/etc/tomcat9/logging.properties,调整日志级别为FINE或FINER,记录更多操作细节(如用户登录、请求响应):org.apache.catalina.level = FINE
com.example.webapp.level = FINER
logwatch工具每日发送日志摘要(包含Tomcat日志),或通过sudo tail -f /var/log/tomcat9/catalina.out实时监控异常(如大量失败登录尝试、非法URL访问)。7. 定期更新与维护
sudo apt update && sudo apt upgrade tomcat9,安装最新安全补丁(如修复已知漏洞)。/opt/tomcat/work(编译后的JSP文件)和/tmp(临时上传文件),避免敏感信息泄露:sudo rm -rf /opt/tomcat/work/Catalina/*
sudo rm -rf /tmp/tomcat_*