以下是在Ubuntu中配置Tomcat安全设置的关键步骤:
创建专用用户
避免以root运行Tomcat,创建非root用户(如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" ... />
关闭自动部署
在server.xml
的<Host>
标签中设置:
unpackWARs="false" autoDeploy="false"
隐藏版本信息
修改server.xml
中<Connector>
的server
属性,或修改catalina.jar
中的ServerInfo.properties
文件。
配置SSL/TLS
keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/tomcat/keystore.jks -validity 365
server.xml
添加HTTPS连接器:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" keystoreFile="/opt/tomcat/keystore.jks" keystorePass="yourpassword" />
权限与防火墙
sudo chown -R tomcat:tomcat /opt/tomcat/webapps
ufw
配置防火墙,仅允许必要端口(如8081、8443):sudo ufw allow 8081/tcp
sudo ufw allow 8443/tcp
sudo ufw enable
用户认证与访问控制
tomcat-users.xml
中定义角色和用户:<role rolename="manager-gui"/>
<user username="admin" password="password" roles="manager-gui"/>
web.xml
中配置安全约束(如限制/admin路径访问):<security-constraint>
<web-resource-collection>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-gui</role-name>
</auth-constraint>
</security-constraint>
日志与监控
定期审查/opt/tomcat/logs
下的日志文件,配置入侵检测系统(IDS)监控异常流量。
注意:生产环境中建议使用由CA签发的正式证书,而非自签名证书,并定期更新Tomcat至最新版本以修复安全漏洞。