🤖 Linux 自動化安全監控:整合 Crontab、Systemd Timer 與 Fail2Ban 日誌警示通知
當伺服器環境越來越複雜,人工監控已難即時發現異常。 本篇將示範如何結合 Crontab、Systemd Timer 與 Fail2Ban, 自動偵測暴力登入或異常封鎖事件,並以電子郵件發出安全警示。
一、建立日誌檢查腳本
# /usr/local/bin/fail2ban-alert.sh
#!/bin/bash
LOG=/var/log/fail2ban.log
ALERT=/tmp/fail2ban_alert.txt
grep "Ban" $LOG | tail -n 5 > $ALERT
mail -s "[Fail2Ban Alert] $(hostname)" admin@example.com < $ALERT
⚙️ 確認郵件系統(mailx 或 postfix)已正確設定。
二、使用 Crontab 定期執行
sudo crontab -e
# 每 30 分鐘檢查一次
*/30 * * * * /usr/local/bin/fail2ban-alert.sh
三、改用 systemd Timer 自動排程
# /etc/systemd/system/fail2ban-alert.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/fail2ban-alert.sh
# /etc/systemd/system/fail2ban-alert.timer
[Timer]
OnCalendar=hourly
Persistent=true
WantedBy=timers.target
啟用定時器:
sudo systemctl enable --now fail2ban-alert.timer
sudo systemctl list-timers --all
四、整合 journalctl 自動報告
journalctl -u fail2ban.service --since "1 hour ago" | grep Ban
📘 結語
透過簡單的 Timer 與 Crontab 配置,你可以在無需登入伺服器的情況下, 即時接收安全警示,建立完整的「自動化安全監控」鏈。 這不僅能防範入侵,更能讓運維工作變得輕量、可追蹤。
🔗 延伸閱讀
💬 分享你的自動化監控策略
你是否也用過 systemd timer 或郵件通知? 歡迎留言分享你的設定經驗與建議。
— WWFandy・系統與網路筆記
沒有留言: