在Debian 10上安裝和配置Fail2ban

可從Internet訪問的所有服務器都受到惡意軟件攻擊的風險。 例如,如果您有一個可以從公共網絡訪問的應用程序,則攻擊者可以使用蠻力嘗試來獲取對該應用程序的訪問權限。

Fail2ban是一種工具,可以通過監視服務日誌中的惡意活動來幫助保護Linux機器免受暴力攻擊和其他自動攻擊。 它使用正則表達式來掃描日誌文件。 將對所有與模式匹配的條目進行計數,並且當它們的數量達到某個預定義的閾值時,Fail2ban會在特定時間段內使用系統防火牆禁止有問題的IP。 禁止期限到期後,將從禁止列表中刪除IP地址。

本文介紹了如何在Debian 10上安裝和配置Fail2ban。

在Debian上安裝Fail2ban#

Fail2ban軟件包包含在默認的Debian 10存儲庫中。 要安裝它,請以root或具有sudo特權的用戶身份運行以下命令:

sudo apt updatesudo apt install fail2ban

完成後,Fail2ban服務將自動啟動。 您可以通過檢查服務狀態來驗證它:

sudo systemctl status fail2ban

輸出將如下所示:

● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-03-10 18:57:32 UTC; 47s ago
...

而已。 至此,您的Debian服務器上正在運行Fail2Ban。

Fail2ban配置#

默認的Fail2ban安裝帶有兩個配置文件, /etc/fail2ban/jail.conf/etc/fail2ban/jail.d/defaults-debian.conf。 您不應該修改這些文件,因為更新軟件包時它們可能會被覆蓋。

Fail2ban按以下順序讀取配置文件。 每個 .local 文件會覆蓋來自 .conf 文件:

  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local

配置Fail2ban的最簡單方法是複製 jail.confjail.local 並修改 .local 文件。 更高級的用戶可以構建一個 .local 從頭開始配置文件。 這 .local 文件不必包含來自相應文件的所有設置 .conf 文件,只有您要覆蓋的文件。

創建一個 .local 通過複製默認配置文件 jail.conf 文件:

sudo cp /etc/fail2ban/jail.{conf,local}

要開始將Fail2ban服務器配置為打開,請 jail.local 用您的文本編輯器文件:

sudo nano /etc/fail2ban/jail.local

該文件包含描述每個配置選項功能的注釋。 在此示例中,我們將更改基本設置。

將IP地址列入白名單

您可以將要排除在外的IP地址,IP範圍或主機添加到 ignoreip 指示。 在這裡,您應該添加您的本地PC IP地址以及您要列入白名單的所有其他計算機。

取消注釋以以下內容開頭的行 ignoreip 並添加以空格分隔的IP地址:

/etc/fail2ban/jail.local

ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24

禁止設置#

bantimefindtime, 和 maxretry 選項設置禁止時間和禁止條件。

bantime 是IP被禁止的持續時間。 如果未指定後綴,則默認為秒。 默認情況下, bantime 值設置為10分鐘。 大多數用戶喜歡設置更長的禁止時間。 根據您的喜好更改值:

/etc/fail2ban/jail.local

bantime  = 1d

要永久禁止IP,請使用負數。

findtime 是設置禁令前的失敗次數之間的持續時間。 例如,如果Fail2ban設置為在5次失敗後禁止IP(maxretry,請參閱下文),這些故障必須發生在 findtime 期間。

/etc/fail2ban/jail.local

findtime  = 10m

maxretry 是禁止IP之前的失敗次數。 默認值設置為5,這對於大多數用戶來說應該沒問題。

/etc/fail2ban/jail.local

maxretry = 5

電子郵件通知 #

當IP被禁止時,Fail2ban可以發送電子郵件警報。 要接收電子郵件,您需要在服務器上安裝SMTP並更改默認操作,該操作僅禁止IP %(action_mw)s, 如下所示:

/etc/fail2ban/jail.local

action = %(action_mw)s

%(action_mw)s 禁止違規的IP,並發送包含Whois報告的電子郵件。 如果要在電子郵件中包含相關日誌,請將操作設置為 %(action_mwl)s

您還可以更改發送和接收電子郵件地址:

/etc/fail2ban/jail.local

destemail = [email protected]

sender = [email protected]

Fail2ban監獄#

Fail2ban使用監獄的概念。 監獄描述了一項服務,其中包括過濾器和操作。 對符合搜索模式的日誌條目進行計數,並在滿足預定義條件時執行相應的操作。

Fail2ban附帶有許多用於不同服務的監獄。 您還可以創建自己的監獄配置。 默認情況下,僅啟用ssh監獄。

要啟用監獄,您需要添加 enabled = true 監獄稱號之後。 以下示例顯示了如何啟用後綴監獄:

/etc/fail2ban/jail.local

[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log

我們在上一節中討論的設置可以針對每個監獄進行設置。 這是一個例子:

/etc/fail2ban/jail.local

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 4w
ignoreip  = 127.0.0.1/8 11.22.33.44

過濾器位於 /etc/fail2ban/filter.d 目錄,存儲在與監獄同名的文件中。 如果您具有自定義設置並且對正則表達式有經驗,則可以對過濾器進行微調。

每次修改配置文件時,都必須重新啟動Fail2ban服務,以使更改生效:

sudo systemctl restart fail2ban

Fail2ban客戶端#

Fail2ban附帶了一個名為的命令行工具 fail2ban-client 您可以用來與Fail2ban服務進行交互。

要查看所有可用選項,請使用 -h 選項:

fail2ban-client -h

此工具可用于禁止/取消禁止IP地址,更改設置,重新啟動服務等等。 這裡有一些例子:

  • 獲取服務器的當前狀態:

    sudo fail2ban-client status
  • 檢查監獄狀態:

    sudo fail2ban-client status sshd
  • 取消IP:

    sudo fail2ban-client set sshd unbanip 11.22.33.44
  • 禁止IP:

    sudo fail2ban-client set sshd banip 11.22.33.44

結論 #

我們已經向您展示了如何在Debian 10上安裝和配置Fail2ban。

有關此主題的更多信息,請訪問Fail2ban文檔。

如有疑問,請在下面發表評論。

fail2ban debian安全性

Sidebar