sudo apt update && sudo apt install default-jdk,确保系统包及Java环境(Tomcat依赖JDK)为最新版本。tomcat9),便于后续通过apt自动更新:sudo apt install tomcat9 tomcat9-admin(包含管理组件)。root身份运行Tomcat,创建tomcat用户组及用户,并设置目录权限:sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat # 若使用官方包,路径为/var/lib/tomcat9
sudo chown -R tomcat:tomcat /var/lib/tomcat9/ # 官方包路径
sudo chmod -R 750 /var/lib/tomcat9/
/etc/tomcat9/server.xml(官方包路径),调整HTTP(默认8080)和HTTPS(默认8443)端口,降低被扫描工具发现的风险:<Connector port="1234" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" />
/var/lib/tomcat9/webapps/下的docs、examples文件夹(避免泄露服务器信息),若不需要管理界面,可重命名manager、host-manager目录:sudo rm -rf /var/lib/tomcat9/webapps/docs /var/lib/tomcat9/webapps/examples
sudo mv /var/lib/tomcat9/webapps/manager /var/lib/tomcat9/webapps/manager_disabled
sudo mv /var/lib/tomcat9/webapps/host-manager /var/lib/tomcat9/webapps/host-manager_disabled
server.xml的Connector标签中添加server属性,掩盖Tomcat版本:<Connector port="1234" protocol="HTTP/1.1" ... server="CustomSecureServer" />
/etc/tomcat9/tomcat-users.xml,仅添加必要的管理角色(如manager-gui用于Web管理界面、admin-gui用于管理员操作),并设置强密码(包含大小写字母、数字、特殊字符):<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="secureAdmin" password="YourStrongPassword123!" roles="manager-gui,admin-gui"/>
</tomcat-users>
RemoteAddrValve阀门限制仅允许内部IP访问管理界面(如192.168.1.0/24),编辑/var/lib/tomcat9/webapps/manager/META-INF/context.xml(官方包路径):<Context>
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+|127\.\d+\.\d+\.\d+" />
</Context>
keytool生成自签名证书(生产环境建议使用Let’s Encrypt等CA签发的证书):sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat9/keystore.jks -validity 365 -keysize 2048
依次输入密钥库密码、姓名、组织等信息(注意:Common Name需填写服务器域名或IP)。server.xml中添加HTTPS连接器,引用生成的证书:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/etc/tomcat9/keystore.jks"
keystorePass="yourKeystorePassword"
clientAuth="false" sslProtocol="TLS" />
sudo ufw allow 1234/tcp # 自定义HTTP端口
sudo ufw allow 8443/tcp # HTTPS端口
sudo ufw allow 22/tcp # SSH端口(用于远程管理)
sudo ufw enable # 启用防火墙
apt自动更新Tomcat及相关组件,修复已知漏洞:sudo apt update && sudo apt upgrade tomcat9
server.xml的Host标签中添加AccessLogValve),并使用logwatch工具定期分析日志:sudo apt install logwatch
sudo logwatch --service tomcat --output mail # 通过邮件发送日志报告
示例AccessLogValve配置:<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log."
suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
server.xml中注释或删除AJP连接器(默认端口8009),减少攻击面。webapps、work、temp目录仅允许tomcat用户读写:sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps/
sudo chmod -R 750 /var/lib/tomcat9/webapps/
通过以上步骤,可显著提升Debian系统上Tomcat的安全性,防范常见的扫描、未授权访问及数据泄露风险。需定期复查配置(如每季度),并根据业务需求调整权限与访问规则。