🧱 Linux Proxy Server 日誌分析與安全強化(Squid + GoAccess)
在部署 Proxy Server(Squid)之後,了解使用者行為與連線安全是維運的重要環節。本文將介紹如何整合 GoAccess 進行即時流量視覺化分析,並補充 Squid 安全強化的實務設定。
一、環境說明與前置條件
- 系統環境:Ubuntu / CentOS / Rocky Linux
- Proxy 工具:Squid(HTTP/HTTPS 代理)
- 分析工具:GoAccess(Web 即時統計介面)
# 安裝 Squid Proxy
sudo apt install squid -y
# 安裝 GoAccess
sudo apt install goaccess -y
二、啟用日誌記錄與格式調整
Squid 的預設存放路徑為 /var/log/squid/access.log,可依需求調整輸出格式以利 GoAccess 分析。
# 編輯設定檔
sudo nano /etc/squid/squid.conf
# 新增或確認以下設定
access_log /var/log/squid/access.log squid
若使用自訂格式,可指定:
logformat squid_custom %ts.%03tu %>a %Ss/%03Hs % %rm %ru %un %Sh/%
三、使用 GoAccess 進行視覺化分析
GoAccess 可即時統計各項 Proxy 活動,包括請求來源、URL、狀態碼、流量量等。
# 生成即時報表(終端模式)
sudo goaccess /var/log/squid/access.log --log-format=COMMON
# 生成網頁介面報表
sudo goaccess /var/log/squid/access.log --log-format=COMMON -o /var/www/html/report.html --real-time-html
完成後可透過 http://yourserver/report.html 即時監控流量與使用者行為。
四、安全強化設定建議
- 🔒 限制存取來源(ACL 控制)
- 🧱 啟用 HTTPS(CONNECT Port 443 設定)
- 🧩 定期輪替日誌與權限檢查
# 範例 ACL 限制(僅允許內網使用)
acl localnet src 192.168.0.0/16
http_access allow localnet
http_access deny all
🧰 日誌輪替範例(Logrotate)
/var/log/squid/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
postrotate
systemctl reload squid
endscript
}
📘 結語
結合 Squid 與 GoAccess,不僅能快速掌握流量趨勢,也能即時發現異常連線與安全威脅。建議在日常維運中加入自動輪替與週期性分析,形成可長期追蹤的 Proxy 安全監控機制。
🔗 延伸閱讀
- 🧱 Linux Proxy Server 建置教學(Squid 安裝與設定指南)
- 📊 Linux Log 分析與視覺化:GoAccess 即時監控
- 🧩 Linux 安全強化實戰:Firewalld、SELinux、Fail2Ban
— WWFandy・系統維運筆記
沒有留言: