CentOS下Tomcat日志安全策略配置指南
确保Tomcat日志文件仅能被授权用户访问,避免未授权读取或篡改。
tomcat),例如:sudo chown -R tomcat:tomcat /var/log/tomcat/640或644),组用户只读,其他用户无权限。例如:sudo chmod 640 /var/log/tomcat/*.logcatalina.sh脚本中的UMASK(默认0027),设置为0022,使新生成日志文件的默认权限符合安全要求(如644)。防止日志文件过大占用磁盘空间,同时保留历史日志用于审计。
/etc/logrotate.d/tomcat配置文件,设置每日轮转、保留7天、压缩旧日志、创建新文件并重启Tomcat:/var/log/tomcat/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 tomcat tomcat
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/tomcat.pid 2>/dev/null` 2>/dev/null || true
endscript
}
避免日志中泄露敏感信息,聚焦安全相关事件记录。
server.xml中的Connector配置,添加server属性隐藏Tomcat版本:<Connector port="8080" protocol="HTTP/1.1" server="Custom Server" ... />logging.properties中设置FINE或FINER级别,记录用户登录、权限变更、异常等关键事件;或通过Log4j2配置log4j2.xml,添加Security logger并设置level=INFO。确保SELinux允许Tomcat访问日志文件及目录。
httpd_sys_rw_content_t类型:sudo chcon -Rt httpd_sys_rw_content_t /var/log/tomcat/httpd_can_network_connect:sudo setsebool -P httpd_can_network_connect 1ausearch生成策略模块并安装:sudo ausearch -c 'java' --raw | audit2allow -M my-tomcat-log && sudo semodule -i my-tomcat-log.pp及时发现日志中的异常行为,快速响应安全事件。
Prometheus+Grafana监控日志文件大小、修改时间等指标;或用auditd记录对日志文件的访问(如-w /var/log/tomcat/ -p wa -k tomcat_log_access)。ERROR),通过邮件、短信等方式通知管理员。对存储的日志文件进行加密,防止泄露敏感信息。
SSL/TLS加密Tomcat与日志收集服务器之间的通信(如配置server.xml中的Connector启用HTTPS)。LUKS加密日志分区,或在应用层通过Log4j2的EncryptingLayout对日志内容加密(需额外配置密钥管理)。利用Log4j2、Logback等框架增强日志管理能力。
pom.xml中排除默认日志依赖,添加Log4j2依赖:<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
log4j2.xml中设置RollingFileAppender实现自动轮转,PatternLayout控制日志格式,Filters过滤敏感信息(如信用卡号)。