๐ Linux Log ็ฃๆง่ชๅๅ:ๆดๅ GoAccess、Systemd ่ Fail2Ban ๅ ฑ่กจๅๆ
ๆ้ 「ไฝ็ถญ่ญท、ๅฏ่ฆๅ、ๅฏ่ฟฝๆบฏ」็ๆฅ่ช็ฃๆง:ไปฅ GoAccess ็ข็ๅณๆๅ ฑ่กจ、ไปฅ systemd timer ๅฎๆ็ๆ็ทไธๅ ฑๅ,ไธฆ่ฏๅ Fail2Ban ่ชๅๅฐ้ๆกๆไพๆบ。
ไธ、ๅฎ่ฃ่่ณๆๆบ
# Debian/Ubuntu
sudo apt update && sudo apt install -y goaccess
# Nginx ไธป่ฆๆฅ่ช
sudo goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED
ไบ、ไปฅ systemd ่ชๅๅ็ข็ๅ ฑ่กจ
# /etc/systemd/system/goaccess-report.service
[Service]
Type=oneshot
ExecStart=/usr/bin/goaccess /var/log/nginx/access.log \
-o /var/www/html/report.html --log-format=COMBINED
# /etc/systemd/system/goaccess-report.timer
[Timer]
OnCalendar=*:0/10
Persistent=true
RandomizedDelaySec=60
[Install]
WantedBy=timers.target
sudo systemctl enable --now goaccess-report.timer
systemctl list-timers --all
ไธ、Fail2Ban ่ๅฎๅ จ่ฏ้ฒ
# ๅธธ่ฆ jail(nginx-http-auth、sshd ็ญ)
sudo apt install -y fail2ban
sudo nano /etc/fail2ban/jail.local
# ่ชฟๆด bantime/findtime/maxretry,ไธฆๅ็จๅๅๆๅ
sudo systemctl enable --now fail2ban
ๅ、ๆๆจ่งฃ่ฎ่ๅ่ญฆ
- ๅฐๅณฐๆต้ vs. HTTP ็ๆ
็ขผ:
5xxไธๅไปฃ่กจๅพ็ซฏๅฅๅบท้ๆชขๆฅ。 - ็ฑ้่ทฏๅพ、ไพๆบๅฐ、User-Agent:ๅฐๆ่ก้ท่ Bot ็ฎก็。
- ๅฐ้ๅๅฎๅฏฉ่ฆ:้ฟๅ
่ชคๅท;ๆญ้
ignoreip็ฝๅๅฎ。
๐ ็ต่ช
ๅฐๅ ฑ่กจ่ชๅๅ+ๅฐ้่ชๅๅ,้ ๅไธๆฌกๆง็ถญ้ๅบ็ท่จญๅฎ,่ฎๆฅ่ช็ฑ「ไบๅพๆฅ」่ฝ็บ「ๅณๆ็、ไธปๅไฝ」。
๐ ๅปถไผธ้ฑ่ฎ
- Linux Proxy ๆต้่จ้่ GoAccess ่ฆ่ฆบๅๅๆ
- Linux ๆ ้ๆ้คๆๅ(ๅฏฆๆฐๆธ ๅฎ)
- Linux NTP ๆ้ๅๆญฅ(Chrony / timesyncd)
— WWFandy・ไธป้ก็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ