熱門分類
載入中…
目錄0%

🐧 Linux Fail2Ban 與防火牆整合進階應用:封鎖惡意 IP 全攻略

    🐧 Linux Fail2Ban 與防火牆整合進階應用:封鎖惡意 IP 全攻略

    在開放網路環境中,Linux 伺服器常遭受暴力登入與掃描攻擊。Fail2Ban 可自動分析日誌、封鎖惡意 IP,搭配 firewalldiptables,能有效防止 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

    🧠 六、進階應用:自訂多重防禦

    • 結合 nginxapache 日誌,封鎖特定路徑的攻擊。
    • 透過 recidive jail 累積封鎖多次重犯 IP。
    • 搭配 systemd 定時清理舊紀錄。
    [recidive]
    enabled = true
    filter = recidive
    logpath = /var/log/fail2ban.log
    bantime = 86400
    findtime = 3600

    📘 七、結語

    透過 Fail2Ban 搭配防火牆,可自動偵測並封鎖惡意登入來源,大幅提升伺服器安全性。建議再搭配 GoAccessrsyslog 做流量與異常分析,形成完整安全監控鏈。


    🔗 延伸閱讀

    — WWFandy・系統與網路筆記

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級