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

๐Ÿค– Linux ่‡ชๅ‹•ๅŒ–ๅฎ‰ๅ…จ็›ฃๆŽง:ๆ•ดๅˆ Crontab、Systemd Timer ่ˆ‡ Fail2Ban ๆ—ฅ่ชŒ่ญฆ็คบ้€š็Ÿฅ

    ๐Ÿค– Linux ่‡ชๅ‹•ๅŒ–ๅฎ‰ๅ…จ็›ฃๆŽง:ๆ•ดๅˆ Crontab、Systemd Timer ่ˆ‡ Fail2Ban ๆ—ฅ่ชŒ่ญฆ็คบ้€š็Ÿฅ

    ็•ถไผบๆœๅ™จ็’ฐๅขƒ่ถŠไพ†่ถŠ่ค‡้›œ,ไบบๅทฅ็›ฃๆŽงๅทฒ้›ฃๅณๆ™‚็™ผ็พ็•ฐๅธธ。 ๆœฌ็ฏ‡ๅฐ‡็คบ็ฏ„ๅฆ‚ไฝ•็ตๅˆ CrontabSystemd 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・็ณป็ตฑ่ˆ‡็ถฒ่ทฏ็ญ†่จ˜

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

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

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

    ๅญ—็ดš