็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿง Linux systemd ๆทฑๅ…ฅ่งฃๆž่ˆ‡ๅ•Ÿๅ‹•ๆต็จ‹็ฎก็†

    ๐Ÿ“Š 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 ็™ฝๅๅ–ฎ。

    ๐Ÿ“˜ ็ต่ชž

    ๅฐ‡ๅ ฑ่กจ่‡ชๅ‹•ๅŒ–+ๅฐ้Ž–่‡ชๅ‹•ๅŒ–,้…ๅˆไธ€ๆฌกๆ€ง็ถญ้‹ๅŸบ็ทš่จญๅฎš,่ฎ“ๆ—ฅ่ชŒ็”ฑ「ไบ‹ๅพŒๆŸฅ」่ฝ‰็‚บ「ๅณๆ™‚็œ‹、ไธปๅ‹•ไฝœ」。


    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・ไธป้กŒ็ญ†่จ˜

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš