๐ค 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・็ณป็ตฑ่็ถฒ่ทฏ็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ