如何使用fail2ban保護您的linux伺服器

使用fail2ban,您的Linux計算機會自動阻止連線失敗過多的IP地址。這是自我調節的安全!我們會教你怎麼使用它。...

使用fail2ban,您的Linux計算機會自動阻止連線失敗過多的IP地址。這是自我調節的安全!我們會教你怎麼使用它。

安全

溫莎公爵夫人沃利斯·辛普森(Wallis Simpson)曾說過一句名言:“你永遠不能太富有或太瘦。”我們為我們這個相互聯絡的現代世界更新了這句話:你永遠不能太小心或太安全。

如果您的計算機接受傳入的連線請求,例如Secure Shell(SSH)連線,或者充當web或電子郵件伺服器,則需要保護它免受暴力攻擊和密碼猜測。

為此,您需要監視無法進入帳戶的連線請求。如果他們在短時間內多次未能透過身份驗證,則應禁止他們進一步嘗試。

唯一可行的方法是實現整個過程的自動化。透過一點簡單的配置,fail2ban將為您管理監視、禁止和取消禁止。

fail2ban與Linux防火牆iptables整合。它透過在防火牆中新增規則來執行對可疑IP地址的禁令。為了保持這個解釋的清晰,我們使用iptables和一個空的規則集。

當然,如果您擔心安全性,那麼您可能有一個配置了良好填充規則集的防火牆。fail2ban只新增和刪除自己的規則您的常規防火牆功能將保持不變。

我們可以使用以下命令檢視空規則集:

sudo iptables -L

如何使用fail2ban保護您的linux伺服器

相關內容:iptables初學者指南,Linux防火牆

安裝fail2ban

在我們用來研究本文的所有發行版上安裝fail2ban都很簡單。在Ubuntu 20.04上,命令如下:

sudo apt-get install fail2ban

如何使用fail2ban保護您的linux伺服器

在Fedora 32上,鍵入:

sudo dnf install fail2ban

如何使用fail2ban保護您的linux伺服器

在Manjaro 20.0.1上,我們使用了pacman:

sudo pacman -Sy fail2ban

如何使用fail2ban保護您的linux伺服器

配置fail2ban

fail2ban安裝包含一個名為監獄.conf。升級fail2ban時會覆蓋此檔案,因此如果對此檔案進行自定義,則會丟失所做的更改。

相反,我們將複製監獄.conf檔案到一個呼叫監獄.本地. 將我們的配置更改監獄.本地,它們將在升級過程中保持不變。fail2ban會自動讀取這兩個檔案。

以下是複製檔案的方法:

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

如何使用fail2ban保護您的linux伺服器

現在在你最喜歡的編輯器中開啟這個檔案。我們將使用gedit:

sudo gedit /etc/fail2ban/jail.local

我們將在檔案中查詢兩個部分:[DEFAULT]和[sshd]。不過,要注意找到實際的部分。這些標籤也出現在描述它們的部分的頂部附近,但這不是我們想要的。

如何使用fail2ban保護您的linux伺服器

您將在第40行附近找到[DEFAULT]部分。這是一個很長的章節,有很多評論和解釋。

如何使用fail2ban保護您的linux伺服器

向下滾動到第90行左右,您會發現需要了解以下四個設定:

  • ignoreip:永遠不會被禁止的IP地址的白名單。他們有永久的免出獄卡。預設情況下,本地主機IP地址(127.0.0.1)及其IPv6等效地址(::1)都在列表中。如果您知道還有其他IP地址永遠不應該被禁止,請將它們新增到此列表中,並在每個IP地址之間留一個空格。
  • bantime:IP地址被禁止的持續時間(“m”代表分鐘)。如果您鍵入的值沒有“m”或“h”(表示小時),它將被視為秒。值為-1將永久禁止IP地址。小心別把自己永遠鎖在外面。
  • findtime:太多失敗的連線嘗試將導致IP地址被禁止的時間量。
  • maxretry:“失敗嘗試次數過多”的值

如果來自同一IP地址的連線在findtime期間進行maxretry失敗的連線嘗試,則在bantime期間將禁止這些嘗試。唯一的例外是ignoreip列表中的IP地址。

fail2ban將IP地址放入監獄一段時間。fail2ban支援許多不同的jail,每個jail代表應用於單個連線型別的設定。這允許您對各種連線型別進行不同的設定。或者,您可以讓fail2ban監視器只監視一組選定的連線型別。

您可能已經從[DEFAULT]節名稱猜到了,但是我們檢視的設定是預設值。現在,讓我們看看SSH監獄的設定。

相關:如何使用gedit在Linux上以圖形方式編輯文字檔案

配置監獄

監獄可以讓你在fail2ban的監控中進出連線型別。如果預設設定與要應用於監獄的設定不匹配,可以為bantime、findtime和maxretry設定特定值。

向下滾動到第280行,您將看到[sshd]部分。

如何使用fail2ban保護您的linux伺服器

在這裡可以為SSH連線設定值。要將這座監獄納入監控和取締範圍,我們必須鍵入以下行:

enabled = true

我們還鍵入以下行:

maxretry = 3

預設設定是5,但是我們希望對SSH連線更加謹慎。我們把它調到3,然後儲存並關閉了檔案。

我們將這個監獄新增到fail2ban的監控中,並覆蓋了其中一個預設設定。監獄可以使用預設設定和監獄特定設定的組合。

啟用fail2ban

到目前為止,我們已經安裝並配置了fail2ban。現在,我們必須使它能夠作為自動啟動服務執行。然後,我們需要測試它以確保它按預期工作。

要將fail2ban作為服務啟用,我們使用systemctl命令:

sudo systemctl enable fail2ban

我們還使用它來啟動服務:

sudo systemctl start fail2ban

如何使用fail2ban保護您的linux伺服器

我們也可以使用systemctl檢查服務的狀態:

sudo systemctl status fail2ban.service

如何使用fail2ban保護您的linux伺服器

一切看起來都很好,我們開了綠燈,所以一切都很好。

讓我們看看fail2ban是否同意:

sudo fail2ban-client status

如何使用fail2ban保護您的linux伺服器

這反映了我們的設定。我們啟用了一個監獄,名為[sshd]。如果我們在之前的命令中包括監獄的名字,我們可以更深入地瞭解它:

sudo fail2ban-client status sshd

如何使用fail2ban保護您的linux伺服器

它列出了失敗的次數和被禁止的IP地址。當然,目前所有的統計數字都是零。

考驗我們的監獄

在另一臺計算機上,我們將向測試機器發出SSH連線請求,並故意輸入錯誤的密碼。每次連線嘗試都會有三次嘗試來正確獲取密碼。

maxretry值將在三次連線嘗試失敗後觸發,而不是三次密碼嘗試失敗。因此,我們必須輸入三次錯誤的密碼,才能使連線嘗試失敗。

然後,我們將再次嘗試連線並再次錯誤地鍵入密碼三次。第三個連線請求的第一次錯誤密碼嘗試應觸發fail2ban。

如何使用fail2ban保護您的linux伺服器

在第三個連線請求中輸入了第一個不正確的密碼之後,我們沒有從遠端計算機得到響應。我們沒有得到任何解釋,我們只是受到冷遇。

必須按Ctrl+C返回命令提示符。如果我們再試一次,會得到不同的回答:

ssh [email protected]

如何使用fail2ban保護您的linux伺服器

以前,錯誤訊息是“許可權被拒絕”。這次,連線被完全拒絕。我們是不受歡迎的人。我們被禁止了。

讓我們再來看看[sshd]監獄的細節:

sudo fail2ban-client status sshd

如何使用fail2ban保護您的linux伺服器

有三個失敗,一個IP地址(192.168.4.25)被禁止。

正如我們前面提到的,fail2ban透過向防火牆規則集新增規則來執行禁止。讓我們再看一看規則集(它以前是空的):

sudo iptables -L

如何使用fail2ban保護您的linux伺服器

向輸入策略添加了一個規則,將SSH通訊傳送到f2b sshd鏈。f2b sshd鏈中的規則拒絕來自192.168.4.25的SSH連線。我們沒有更改bantime的預設設定,因此,在10分鐘內,該IP地址將被取消繫結,並可以發出新的連線請求。

如果您設定了較長的禁止持續時間(如幾個小時),但希望允許一個IP地址更快地發出另一個連線請求,則可以提前假釋。

為此,我們鍵入以下命令:

sudo fail2ban-client set sshd unbanip 192.168.5.25

如何使用fail2ban保護您的linux伺服器

在遠端計算機上,如果我們發出另一個SSH連線請求並鍵入正確的密碼,我們將被允許連線:

ssh [email protected]

如何使用fail2ban保護您的linux伺服器

簡單有效

簡單通常更好,fail2ban是解決棘手問題的一個優雅的解決方案。它只需要很少的配置,幾乎不會給您或您的計算機帶來任何操作開銷。

  • 發表於 2021-04-02 03:13
  • 閱讀 ( 42 )
  • 分類:網際網路

你可能感興趣的文章

哪些應用程式使用端到端加密來改善線上隱私?

...安全。使用端到端加密,郵件內容在到達郵件應用程式的伺服器或internet提供商之前,會在裝置或帳戶上進行本機加密。重要的是,訊息只有在到達收件人時才被解密。 ...

  • 發佈於 2021-03-11 02:45
  • 閲讀 ( 68 )

5款替代chrome的新瀏覽器

...的所有資料,保護您不受資料竊取。這些資料透過Cocoon的伺服器進行加密。在那裡,公司還運行了一個防病毒,以確保您不下載惡意軟體。而瀏覽器也包括了今天所有其他安全的鐘聲和口哨,比如阻止Facebook跟蹤你。 ...

  • 發佈於 2021-03-12 11:04
  • 閲讀 ( 74 )

如何保護linux上的usb埠

... 你需要讓電腦或伺服器無人看管嗎?如果是這樣,您可以使用一個恰當命名的實用程式USBGuard來防止攻擊。這是為了防止惡意USB裝置也被稱為BadUSB。例如,USB裝置可以模擬鍵盤併發出登入...

  • 發佈於 2021-03-13 04:54
  • 閲讀 ( 59 )

如何使用雙因素身份驗證保護linux-ubuntu

...2FA也超出了文字訊息驗證的範圍。本指南將有助於在Ubuntu伺服器和桌面風格上設定增強的安全性,並與googleauthenticator一起實現雙因素身份驗證。 ...

  • 發佈於 2021-03-13 11:11
  • 閲讀 ( 51 )

完整的指南,以提高您的線上安全和保護您的隱私

...為是最安全的方法。只有您和收件人持有加密金鑰,因此伺服器或任何第三方都無法解密您的郵件。不幸的是,技術和商業原因的混合意味著大多數主流電子郵件提供商不提供E2EE。 ...

  • 發佈於 2021-03-13 15:24
  • 閲讀 ( 60 )

隧道耳朵:最簡單的vpn保護您的隱私

...進一步的設定。只需在20個受支援的國家/地區中選擇一個伺服器,就可以開始了。您甚至可以使用自動連線功能來選擇效能最好的伺服器。 ...

  • 發佈於 2021-03-13 19:58
  • 閲讀 ( 45 )

如何為您的網站建立登入保護區

... 今天我將向您展示如何使用您的web伺服器對您的網站進行密碼保護。 ...

  • 發佈於 2021-03-14 14:27
  • 閲讀 ( 55 )

旅行時保護資料的10種簡單方法

...。VPN提供了一個加密隧道,以連線到位於不同國家的私有伺服器到您的主機。當HTTPS無處不在加密瀏覽器中的所有internet流量時,VPN將加密您的所有internet流量,期間。 ...

  • 發佈於 2021-03-14 21:42
  • 閲讀 ( 48 )

4您應該注意的linux安全問題

... 傳統的殭屍網路依賴於命令和控制伺服器(可以被執法機關關閉),Linux.Rex版本.1被設計為獨立存在。這使得它能夠在野外生存和繁殖。 ...

  • 發佈於 2021-03-15 15:54
  • 閲讀 ( 48 )

8個完全免費的vpn服務,保護您的隱私

... 它的大部分伺服器都在歐洲,但也有很多美國的伺服器。有趣的是,該應用程式執行在以太坊區塊鏈上。它保護隱私免受侵犯、審查、欺詐和第三方干涉。 ...

  • 發佈於 2021-03-18 01:44
  • 閲讀 ( 49 )