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

๐Ÿง Linux Fail2Ban ่ˆ‡้˜ฒ็ซ็‰†ๆ•ดๅˆ้€ฒ้šŽๆ‡‰็”จ:ๅฐ้Ž–ๆƒกๆ„ IP ๅ…จๆ”ป็•ฅ

    ๐Ÿง Linux Fail2Ban ่ˆ‡้˜ฒ็ซ็‰†ๆ•ดๅˆ้€ฒ้šŽๆ‡‰็”จ:ๅฐ้Ž–ๆƒกๆ„ IP ๅ…จๆ”ป็•ฅ

    ๅœจ้–‹ๆ”พ็ถฒ่ทฏ็’ฐๅขƒไธญ,Linux ไผบๆœๅ™จๅธธ้ญๅ—ๆšดๅŠ›็™ปๅ…ฅ่ˆ‡ๆŽƒๆๆ”ปๆ“Š。Fail2Ban ๅฏ่‡ชๅ‹•ๅˆ†ๆžๆ—ฅ่ชŒ、ๅฐ้Ž–ๆƒกๆ„ IP,ๆญ้… firewalld ๆˆ– iptables,่ƒฝๆœ‰ๆ•ˆ้˜ฒๆญข SSH、HTTP、FTP ็ญ‰ๆœๅ‹™่ขซๆšดๅŠ›็ ด่งฃ。ๆœฌๆ–‡ๆ•™ไฝ ๅพžๅฎ‰่ฃ、่จญๅฎšๅˆฐ้€ฒ้šŽ้˜ฒ็ฆฆๆ•ดๅˆ็š„ๅฎŒๆ•ดๅฏฆไฝœ。

    ๐Ÿ“˜ ไธ€、Fail2Ban ๆฆ‚ๅฟต่ˆ‡้‹ไฝœๅŽŸ็†

    • ๆ ธๅฟƒๅŽŸ็†:้€้Žๅˆ†ๆžๆ—ฅ่ชŒ(ๅฆ‚ /var/log/secure),ๅตๆธฌ้‡่ค‡ๅคฑๆ•—็™ปๅ…ฅ่กŒ็‚บ。
    • ๅฐ้Ž–ๆฉŸๅˆถ:่‡ชๅ‹•ๅ‘ผๅซ้˜ฒ็ซ็‰†(firewalld / iptables)ๅฐ้Ž–ไพ†ๆบ IP。
    • ๆ•ดๅˆ็ฏ„ๅœ:SSH、vsftpd、Postfix、nginx、Apache、Proxmox ็š†ๅฏๅฅ—็”จ。

    ⚙️ ไบŒ、ๅฎ‰่ฃ Fail2Ban

    # Rocky / CentOS
    sudo dnf install fail2ban -y
    
    # Ubuntu / Debian
    sudo apt install fail2ban -y
      

    ๅ•Ÿๅ‹•ไธฆ่จญๅฎš้–‹ๆฉŸ่‡ชๅ‹•ๅ•Ÿ็”จ:

    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    sudo systemctl status fail2ban
    ✅ ๅฐๆ็คบ:่‹ฅ้กฏ็คบ active (running),ไปฃ่กจๆœๅ‹™ๅ•Ÿๅ‹•ๆˆๅŠŸ。

    ๐Ÿงฉ ไธ‰、่จญๅฎš SSH ้˜ฒๆšดๅŠ›็™ปๅ…ฅไฟ่ญท

    ๅปบ็ซ‹่ฆ†ๅฏซ่จญๅฎšๆช”:

    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

    ็ทจ่ผฏ /etc/fail2ban/jail.local

    [sshd]
    enabled = true
    port = ssh
    logpath = /var/log/secure
    maxretry = 3
    bantime = 600
    backend = systemd

    ๅฅ—็”จ่จญๅฎš:

    sudo systemctl restart fail2ban

    ๐Ÿงฑ ๅ››、ๆ•ดๅˆ firewalld ๅฐ้Ž–่ฆๅ‰‡

    Fail2Ban ๆœƒ่‡ชๅ‹•ๅปบ็ซ‹ zone f2b-sshd,ๅฏ็”จไปฅไธ‹ๆŒ‡ไปคๆชขๆŸฅ:

    sudo firewall-cmd --info-zone=f2b-sshd
    sudo firewall-cmd --list-all-zones | grep f2b

    ๆŸฅ็œ‹็›ฎๅ‰่ขซๅฐ้Ž– IP:

    sudo fail2ban-client status sshd

    ่งฃ้™คๅฐ้Ž–(ไพ‹ๅฆ‚่งฃ้™ค 192.168.1.50):

    sudo fail2ban-client set sshd unbanip 192.168.1.50

    ๐Ÿ“ˆ ไบ”、ๆ—ฅ่ชŒ่ˆ‡็‹€ๆ…‹็›ฃๆŽง

    # ๆŸฅ็œ‹ Fail2Ban ็ธฝ็‹€ๆ…‹
    sudo fail2ban-client status
    
    # ๆŸฅ็œ‹ๅ„ jail ๅฐ้Ž–็ด€้Œ„
    sudo fail2ban-client status sshd
    
    # ็›ฃๆŽงๅณๆ™‚ๅฐ้Ž–
    sudo tail -f /var/log/fail2ban.log

    ๐Ÿง  ๅ…ญ、้€ฒ้šŽๆ‡‰็”จ:่‡ช่จ‚ๅคš้‡้˜ฒ็ฆฆ

    • ็ตๅˆ nginx ๆˆ– apache ๆ—ฅ่ชŒ,ๅฐ้Ž–็‰นๅฎš่ทฏๅพ‘็š„ๆ”ปๆ“Š。
    • ้€้Ž recidive jail ็ดฏ็ฉๅฐ้Ž–ๅคšๆฌก้‡็Šฏ IP。
    • ๆญ้… systemd ๅฎšๆ™‚ๆธ…็†่ˆŠ็ด€้Œ„。
    [recidive]
    enabled = true
    filter = recidive
    logpath = /var/log/fail2ban.log
    bantime = 86400
    findtime = 3600

    ๐Ÿ“˜ ไธƒ、็ต่ชž

    ้€้Ž Fail2Ban ๆญ้…้˜ฒ็ซ็‰†,ๅฏ่‡ชๅ‹•ๅตๆธฌไธฆๅฐ้Ž–ๆƒกๆ„็™ปๅ…ฅไพ†ๆบ,ๅคงๅน…ๆๅ‡ไผบๆœๅ™จๅฎ‰ๅ…จๆ€ง。ๅปบ่ญฐๅ†ๆญ้… GoAccess ๆˆ– rsyslog ๅšๆต้‡่ˆ‡็•ฐๅธธๅˆ†ๆž,ๅฝขๆˆๅฎŒๆ•ดๅฎ‰ๅ…จ็›ฃๆŽง้ˆ。


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

    — WWFandy・็ณป็ตฑ่ˆ‡็ถฒ่ทฏ็ญ†่จ˜

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

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

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

    ๅญ—็ดš