CentOS下Tomcat数据安全保障措施
tomcat),赋予Tomcat目录所有权(chown -R tomcat:tomcat /opt/tomcat),避免以root身份运行,降低权限滥用风险。firewalld开放Tomcat端口(如8080、8443),并限制访问源IP(如仅允许公司IP段),减少外部非法访问。sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8443/tcp --permanent
sudo firewall-cmd --reload
server.xml中的Connector节点,添加server属性(如server="MyAppServer/1.0"),避免泄露Tomcat版本,减少针对性攻击。server.xml中设置autoDeploy="false"和unpackWARs="false",防止恶意WAR文件自动上传和部署。webapps下的docs、examples、host-manager、manager、ROOT等目录,减少不必要的服务入口和敏感信息暴露。protocol="AJP/1.3"的Connector设置为port="-1"),避免通过AJP协议发起的攻击。certificate.crt和private.key),或使用自签名证书(仅测试环境使用)。server.xml,添加Connector节点,启用TLS协议并指定加密套件(优先使用TLSv1.2及以上,推荐TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256等强加密套件)。<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" scheme="https" secure="true"
sslProtocol="TLS"
sslEnabledProtocols="TLSv1.2,TLSv1.3"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
keystoreFile="/path/to/keystore.jks" keystorePass="your_keystore_password"/>
web.xml配置security-constraint,将HTTP请求重定向至HTTPS,确保数据传输全程加密。jasypt依赖)。mySecretKey),并保存到conf/jasypt.properties(设置jasypt.encryptor.password=mySecretKey,权限设为600)。java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="dbPassword" password="mySecretKey" algorithm="PBEWithMD5AndDES")。server.xml中的明文密码为加密字符串(如password="ENC(加密后的字符串)")。context.xml中配置数据源的useHttpOnly="true",防止通过JavaScript窃取Session Cookie;设置maxActive、maxIdle等参数,避免数据库连接池耗尽。tomcat-users.xml,仅为授权用户分配manager-gui、admin-gui等角色(如<user username="admin" password="securePassword" roles="manager-gui"/>);通过server.xml的Valve节点限制管理界面的IP访问(如仅允许公司IP访问/manager/html)。web.xml中添加security-constraint,禁止PUT、DELETE、TRACE等危险方法,防止恶意修改或探测资源。<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted Methods</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
logging.properties,开启org.apache.catalina、org.apache.coyote等包的FINE级别日志,记录访问请求、错误信息等。grep、awk等工具分析日志,监控异常活动(如频繁的登录失败、大量404请求),及时发现潜在攻击。server.xml、web.xml)和应用数据,确保在遭受攻击(如数据泄露、服务中断)时能快速恢复。