在Linux中,如何配置和使用fail2ban來防止暴力攻擊?

黄嘉波發表於2024-04-09

fail2ban是一個用於防止暴力攻擊(如破解密碼嘗試)的安全工具,它透過監控系統日誌檔案來檢測異常行為,並在檢測到多次失敗的登入嘗試後,自動採取措施(如暫時或永久地阻止攻擊者的IP地址)。

1. 配置fail2ban
  1. 安裝fail2ban
    使用你的Linux發行版的包管理器安裝fail2ban。例如,在基於Debian的系統上,可以使用以下命令:

    sudo apt-get update
    sudo apt-get install fail2ban
    
  2. 配置檔案
    fail2ban的配置檔案位於/etc/fail2ban目錄中。主要的配置檔案是jail.conf,你可以在這個檔案中定義全域性設定,或者為不同的服務建立特定的規則。

    sudo nano /etc/fail2ban/jail.conf
    
  3. 設定全域性選項
    jail.conf檔案中,你可以設定如下全域性選項:

    • bantime:在檢測到攻擊後,攻擊者被禁止的秒數。
    • unbantime:定期檢查和解除禁止的時間,以秒為單位。
    • maxretry:在執行ban之前允許的最大失敗嘗試次數。
    • findtime:在maxretry次數內允許的時間視窗,以秒為單位。
  4. 啟用服務
    預設情況下,fail2ban可能不會為所有服務啟用。你可以為特定服務啟用規則,例如SSH:

    sudo nano /etc/fail2ban/jail.local
    

    jail.local檔案中新增以下內容來啟用SSH保護:

    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    
  5. 配置日誌路徑
    確保fail2ban配置檔案中指定了正確的日誌檔案路徑。例如,對於SSH,你需要確保sshd日誌檔案的路徑正確無誤。

  6. 重啟fail2ban服務
    配置完成後,重啟fail2ban服務以應用更改:

    sudo systemctl restart fail2ban
    
2. 使用fail2ban
  1. 檢視狀態
    檢視fail2ban的狀態和當前被禁止的IP地址:

    sudo fail2ban-client status sshd
    
  2. 檢視日誌
    檢視fail2ban的日誌檔案,瞭解其活動和事件:

    sudo journalctl -u fail2ban
    
  3. 手動新增規則
    如果你想要手動阻止某個IP地址,可以使用以下命令:

    sudo fail2ban-client set sshd banip <IP地址>
    
  4. 移除規則
    如果你想要移除對某個IP地址的禁止,可以使用以下命令:

    sudo fail2ban-client set sshd unbanip <IP地址>
    
  5. 更新和升級
    定期更新fail2ban的規則集,以包含最新的安全補丁和改進:

    sudo fail2ban-update
    
3. 注意事項
  • 在配置fail2ban時,確保你瞭解每個選項的含義,並且正確地設定了引數,以避免誤封合法使用者。
  • 測試你的配置,確保在正常使用情況下不會誤封合法使用者。
  • 考慮為fail2ban設定一個備份伺服器,以便在主伺服器出現問題時,備份伺服器可以接管。
  • 保持fail2ban的規則集更新,以確保最佳的安全效能。

綜上所述,透過配置和使用fail2ban,你可以有效地減少暴力攻擊的風險,提高系統的安全性。

相關文章