以下是在Ubuntu上配置Tomcat安全设置的关键步骤:
使用专用用户运行Tomcat
创建非root用户(如tomcat
)并赋予其运行权限,避免以root身份启动服务。
sudo useradd -m -d /opt/tomcat -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
禁用默认目录与自动部署
删除webapps
下默认应用(如ROOT
、manager
),避免未授权访问;关闭autoDeploy
和unpackWARs
。
rm -rf /opt/tomcat/webapps/*
# 在conf/server.xml中设置
<Host name="localhost" appBase="/opt/tomcat/webapps" unpackWARs="false" autoDeploy="false"/>
配置管理用户权限
在conf/tomcat-users.xml
中添加用户并分配最小必要角色(如manager-gui
仅限本地访问)。
<user username="admin" password="强密码" roles="manager-gui"/>
<!-- 限制访问IP(可选) -->
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1"/>
启用HTTPS加密通信
生成SSL证书(自签名或CA颁发),在conf/server.xml
中配置HTTPS连接器,指定证书路径及加密套件。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" keystoreFile="/path/to/keystore.jks" keystorePass="密码"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"/>
防火墙与端口管理
仅开放必要端口(如HTTP 8080、HTTPS 8443),关闭默认AJP端口(8009)或限制其访问。
sudo ufw allow 8080/tcp
sudo ufw allow 8443/tcp
sudo ufw enable
日志审计与监控
启用访问日志记录用户操作,在conf/server.xml
中配置AccessLogValve
,定期分析异常请求。
隐藏版本信息与安全加固
修改conf/server.xml
中的server
字段,避免泄露Tomcat版本;禁用目录列表显示。
<Connector server="Custom Server"/>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
参考来源: