在Debian系统上对Tomcat进行安全设置是确保服务器稳定性和数据安全的关键步骤。以下是一个全面的安全设置指南,涵盖了从基础配置到高级安全措施的各个方面。
更新系统:
sudo apt update && sudo apt upgrade
最小化安装:
sudo apt remove tomcat9-examples tomcat9-docs
禁用自动部署:
server.xml
中设置 autoDeploy="false"
和 deployOnStartup="false"
,防止攻击者通过文件系统直接部署恶意应用。<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false">
修改默认密码:
tomcat-users.xml
,设置复杂密码并限制角色权限。避免使用高权限角色如 manager-script
、manager-jmx
。<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="securePassword" roles="manager-gui,admin-gui"/>
</tomcat-users>
限制管理界面访问:
server.xml
限制访问IP,或禁用管理界面(删除 webapps
目录下的 manager
和 host-manager
)。<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t %r %s %b"/>
</Host>
启用账户锁定机制:
文件与目录权限:
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R 750 /opt/tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
隐藏Tomcat信息:
server.xml
中的 server
属性为自定义字符串。<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/path/to/your/keystore" keystorePass="yourKeystorePassword"/>
配置SSL/TLS:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/path/to/your/keystore" keystorePass="yourKeystorePassword"/>
监控和日志记录:
防火墙配置:
ufw
限制访问Tomcat端口。sudo ufw allow 8080/tcp
sudo ufw allow 8443/tcp
sudo ufw enable
禁用不必要的服务:
定期更新Tomcat:
sudo apt update && sudo apt upgrade tomcat9
强化身份验证和访问控制:
安全审计和监控:
通过上述措施,可以显著提高Debian上Tomcat服务器的安全性,减少潜在的安全风险。建议定期审查和更新安全配置,以应对新出现的安全威胁。