以下是在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中设置"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>
参考来源: