CentOS下Tomcat日志安全策略配置指南
確保Tomcat日志文件僅能被授權用戶訪問,避免未授權讀取或篡改。
tomcat
),例如:sudo chown -R tomcat:tomcat /var/log/tomcat/
640
或644
),組用戶只讀,其他用戶無權限。例如:sudo chmod 640 /var/log/tomcat/*.log
catalina.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 1
ausearch
生成策略模塊并安裝: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
過濾敏感信息(如信用卡號)。