使用fail2ban,您的Linux計算機會自動阻止連線失敗過多的IP地址。這是自我調節的安全!我們會教你怎麼使用它。
溫莎公爵夫人沃利斯·辛普森(Wallis Simpson)曾說過一句名言:“你永遠不能太富有或太瘦。”我們為我們這個相互聯絡的現代世界更新了這句話:你永遠不能太小心或太安全。
如果您的計算機接受傳入的連線請求,例如Secure Shell(SSH)連線,或者充當web或電子郵件伺服器,則需要保護它免受暴力攻擊和密碼猜測。
為此,您需要監視無法進入帳戶的連線請求。如果他們在短時間內多次未能透過身份驗證,則應禁止他們進一步嘗試。
唯一可行的方法是實現整個過程的自動化。透過一點簡單的配置,fail2ban將為您管理監視、禁止和取消禁止。
fail2ban與Linux防火牆iptables整合。它透過在防火牆中新增規則來執行對可疑IP地址的禁令。為了保持這個解釋的清晰,我們使用iptables和一個空的規則集。
當然,如果您擔心安全性,那麼您可能有一個配置了良好填充規則集的防火牆。fail2ban只新增和刪除自己的規則您的常規防火牆功能將保持不變。
我們可以使用以下命令檢視空規則集:
sudo iptables -L相關內容:iptables初學者指南,Linux防火牆
在我們用來研究本文的所有發行版上安裝fail2ban都很簡單。在Ubuntu 20.04上,命令如下:
sudo apt-get install fail2ban在Fedora 32上,鍵入:
sudo dnf install fail2ban在Manjaro 20.0.1上,我們使用了pacman:
sudo pacman -Sy fail2banfail2ban安裝包含一個名為監獄.conf。升級fail2ban時會覆蓋此檔案,因此如果對此檔案進行自定義,則會丟失所做的更改。
相反,我們將複製監獄.conf檔案到一個呼叫監獄.本地. 將我們的配置更改監獄.本地,它們將在升級過程中保持不變。fail2ban會自動讀取這兩個檔案。
以下是複製檔案的方法:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local現在在你最喜歡的編輯器中開啟這個檔案。我們將使用gedit:
sudo gedit /etc/fail2ban/jail.local我們將在檔案中查詢兩個部分:[DEFAULT]和[sshd]。不過,要注意找到實際的部分。這些標籤也出現在描述它們的部分的頂部附近,但這不是我們想要的。
您將在第40行附近找到[DEFAULT]部分。這是一個很長的章節,有很多評論和解釋。
向下滾動到第90行左右,您會發現需要了解以下四個設定:
如果來自同一IP地址的連線在findtime期間進行maxretry失敗的連線嘗試,則在bantime期間將禁止這些嘗試。唯一的例外是ignoreip列表中的IP地址。
fail2ban將IP地址放入監獄一段時間。fail2ban支援許多不同的jail,每個jail代表應用於單個連線型別的設定。這允許您對各種連線型別進行不同的設定。或者,您可以讓fail2ban監視器只監視一組選定的連線型別。
您可能已經從[DEFAULT]節名稱猜到了,但是我們檢視的設定是預設值。現在,讓我們看看SSH監獄的設定。
相關:如何使用gedit在Linux上以圖形方式編輯文字檔案
監獄可以讓你在fail2ban的監控中進出連線型別。如果預設設定與要應用於監獄的設定不匹配,可以為bantime、findtime和maxretry設定特定值。
向下滾動到第280行,您將看到[sshd]部分。
在這裡可以為SSH連線設定值。要將這座監獄納入監控和取締範圍,我們必須鍵入以下行:
enabled = true我們還鍵入以下行:
maxretry = 3預設設定是5,但是我們希望對SSH連線更加謹慎。我們把它調到3,然後儲存並關閉了檔案。
我們將這個監獄新增到fail2ban的監控中,並覆蓋了其中一個預設設定。監獄可以使用預設設定和監獄特定設定的組合。
到目前為止,我們已經安裝並配置了fail2ban。現在,我們必須使它能夠作為自動啟動服務執行。然後,我們需要測試它以確保它按預期工作。
要將fail2ban作為服務啟用,我們使用systemctl命令:
sudo systemctl enable fail2ban我們還使用它來啟動服務:
sudo systemctl start fail2ban我們也可以使用systemctl檢查服務的狀態:
sudo systemctl status fail2ban.service一切看起來都很好,我們開了綠燈,所以一切都很好。
讓我們看看fail2ban是否同意:
sudo fail2ban-client status這反映了我們的設定。我們啟用了一個監獄,名為[sshd]。如果我們在之前的命令中包括監獄的名字,我們可以更深入地瞭解它:
sudo fail2ban-client status sshd它列出了失敗的次數和被禁止的IP地址。當然,目前所有的統計數字都是零。
在另一臺計算機上,我們將向測試機器發出SSH連線請求,並故意輸入錯誤的密碼。每次連線嘗試都會有三次嘗試來正確獲取密碼。
maxretry值將在三次連線嘗試失敗後觸發,而不是三次密碼嘗試失敗。因此,我們必須輸入三次錯誤的密碼,才能使連線嘗試失敗。
然後,我們將再次嘗試連線並再次錯誤地鍵入密碼三次。第三個連線請求的第一次錯誤密碼嘗試應觸發fail2ban。
在第三個連線請求中輸入了第一個不正確的密碼之後,我們沒有從遠端計算機得到響應。我們沒有得到任何解釋,我們只是受到冷遇。
必須按Ctrl+C返回命令提示符。如果我們再試一次,會得到不同的回答:
ssh [email protected]以前,錯誤訊息是“許可權被拒絕”。這次,連線被完全拒絕。我們是不受歡迎的人。我們被禁止了。
讓我們再來看看[sshd]監獄的細節:
sudo fail2ban-client status sshd有三個失敗,一個IP地址(192.168.4.25)被禁止。
正如我們前面提到的,fail2ban透過向防火牆規則集新增規則來執行禁止。讓我們再看一看規則集(它以前是空的):
sudo iptables -L向輸入策略添加了一個規則,將SSH通訊傳送到f2b sshd鏈。f2b sshd鏈中的規則拒絕來自192.168.4.25的SSH連線。我們沒有更改bantime的預設設定,因此,在10分鐘內,該IP地址將被取消繫結,並可以發出新的連線請求。
如果您設定了較長的禁止持續時間(如幾個小時),但希望允許一個IP地址更快地發出另一個連線請求,則可以提前假釋。
為此,我們鍵入以下命令:
sudo fail2ban-client set sshd unbanip 192.168.5.25在遠端計算機上,如果我們發出另一個SSH連線請求並鍵入正確的密碼,我們將被允許連線:
ssh [email protected]簡單通常更好,fail2ban是解決棘手問題的一個優雅的解決方案。它只需要很少的配置,幾乎不會給您或您的計算機帶來任何操作開銷。
...安全。使用端到端加密,郵件內容在到達郵件應用程式的伺服器或internet提供商之前,會在裝置或帳戶上進行本機加密。重要的是,訊息只有在到達收件人時才被解密。 ...
...的所有資料,保護您不受資料竊取。這些資料透過Cocoon的伺服器進行加密。在那裡,公司還運行了一個防病毒,以確保您不下載惡意軟體。而瀏覽器也包括了今天所有其他安全的鐘聲和口哨,比如阻止Facebook跟蹤你。 ...
... 你需要讓電腦或伺服器無人看管嗎?如果是這樣,您可以使用一個恰當命名的實用程式USBGuard來防止攻擊。這是為了防止惡意USB裝置也被稱為BadUSB。例如,USB裝置可以模擬鍵盤併發出登入...
...2FA也超出了文字訊息驗證的範圍。本指南將有助於在Ubuntu伺服器和桌面風格上設定增強的安全性,並與googleauthenticator一起實現雙因素身份驗證。 ...
...為是最安全的方法。只有您和收件人持有加密金鑰,因此伺服器或任何第三方都無法解密您的郵件。不幸的是,技術和商業原因的混合意味著大多數主流電子郵件提供商不提供E2EE。 ...
...進一步的設定。只需在20個受支援的國家/地區中選擇一個伺服器,就可以開始了。您甚至可以使用自動連線功能來選擇效能最好的伺服器。 ...
...。VPN提供了一個加密隧道,以連線到位於不同國家的私有伺服器到您的主機。當HTTPS無處不在加密瀏覽器中的所有internet流量時,VPN將加密您的所有internet流量,期間。 ...
... 傳統的殭屍網路依賴於命令和控制伺服器(可以被執法機關關閉),Linux.Rex版本.1被設計為獨立存在。這使得它能夠在野外生存和繁殖。 ...
... 它的大部分伺服器都在歐洲,但也有很多美國的伺服器。有趣的是,該應用程式執行在以太坊區塊鏈上。它保護隱私免受侵犯、審查、欺詐和第三方干涉。 ...