以下是Ubuntu上Tomcat的安全配置步骤,涵盖关键安全措施:
创建专用用户
避免以root运行Tomcat,创建非特权用户(如tomcat
)并设置目录权限:
sudo useradd -m -d /opt/tomcat -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
修改默认端口
编辑/opt/tomcat/conf/server.xml
,将HTTP/AJP端口改为非默认值(如8081/8009):
<Connector port="8081" protocol="HTTP/1.1" ... />
<Connector port="8009" protocol="AJP/1.3" ... />
禁用自动部署与删除默认目录
关闭自动部署并删除webapps
下默认应用,防止恶意代码注入:
<Host name="localhost" appBase="/opt/tomcat/webapps" unpackWARs="false" autoDeploy="false" />
rm -rf /opt/tomcat/webapps/*
隐藏版本信息
修改server.xml
中Connector
的server
属性,或通过修改catalina.jar
隐藏版本:
<Connector ... server="Custom Server" />
配置SSL/TLS加密
keytool -genkeypair -alias tomcat -keyalg RSA -keystore /opt/tomcat/conf/keystore.jks -validity 365
server.xml
添加HTTPS连接器:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" keystoreFile="/opt/tomcat/conf/keystore.jks" keystorePass="yourpassword" />
权限与访问控制
manager-gui
):/opt/tomcat/conf/tomcat-users.xml
,删除冗余用户或限制IP访问。web.xml
启用HTTP Basic认证或表单认证,保护敏感路径。防火墙与端口管理
使用ufw
限制仅允许必要端口(如8081、8443)访问:
sudo ufw allow 8081/tcp
sudo ufw allow 8443/tcp
sudo ufw enable
日志与监控
定期审查/opt/tomcat/logs
下的catalina.out
等日志,监控异常访问。
其他安全优化
server.xml
中AJP相关配置。HttpOnly
属性,增强会话安全:/opt/tomcat/conf/context.xml
,添加<CookieProcessor sameSiteCookies="strict" />
。验证配置:重启Tomcat后,通过浏览器访问HTTPS端口(如https://localhost:8443
),确认安全连接生效。
以上步骤参考自,可根据实际环境调整。