以下是Ubuntu Tomcat的安全策略配置要点,涵盖用户权限、访问控制、加密传输等核心安全措施:
最小权限原则
sudo useradd -m -d /opt/tomcat -s /bin/false tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
sudo -u tomcat /opt/tomcat/bin/startup.sh
删除默认组件
webapps
目录下默认应用(如docs
、examples
、ROOT
等),减少攻击面:rm -rf /opt/tomcat/webapps/*
关闭自动部署
conf/server.xml
中设置autoDeploy="false"
和unpackWARs="false"
,防止恶意代码自动加载:<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">
管理用户权限
conf/tomcat-users.xml
中定义角色和用户,仅授权必要权限(如manager-gui
仅用于管理界面):<role rolename="manager-gui"/>
<user username="admin" password="强密码" roles="manager-gui"/>
manager-script
),避免远程命令执行风险。限制管理界面访问
sudo ufw deny 8080/tcp
sudo ufw allow from 192.168.1.100 to any port 8080
sudo ufw enable
server.xml
中通过RemoteAddrValve
限制IP:<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+"/>
keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/ssl/tomcat.jks -validity 365
conf/server.xml
中配置SSL连接器:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/etc/ssl/tomcat.jks" keystorePass="证书密码"
sslProtocol="TLS" ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"/>
web.xml
中添加安全约束,重定向HTTP到HTTPS。隐藏版本信息
conf/server.xml
中Connector
的server
属性,避免泄露Tomcat版本:<Connector ... server="Custom Server"/>
catalina.jar
中的ServerInfo.properties
文件彻底隐藏版本。配置安全头与Cookie
conf/context.xml
中启用HTTPOnly和Secure属性,防止Cookie劫持:<Context>
<CookieProcessor sameSiteCookies="strict" httpOnly="true" secure="true"/>
</Context>
日志与监控
conf/logging.properties
记录详细访问日志,定期分析异常请求。fail2ban
)监控暴力破解尝试,自动封禁IP。server.xml
中注释或删除AJP连接器,减少攻击面。apt
定期升级Tomcat至最新版本,修复已知漏洞:sudo apt update && sudo apt upgrade tomcat9
生效步骤:完成配置后,重启Tomcat使设置生效:
sudo systemctl restart tomcat9
以上配置参考自,可根据实际环境调整,生产环境建议结合专业安全工具(如WAF、IDS)进一步提升防护能力。