c

c

世上本没有路
tg_channel
mastodon
pleroma

Linux 阻止 SSH 密碼爆破

讀取 linux 的日誌,發現遭到密碼爆破。SSH 密碼爆破是指攻擊者使用暴力破解技術,嘗試猜測 SSH 使用者名稱和密碼的過程。這通常涉及使用專門的工具或腳本,嘗試從一個字典文件中的可能密碼列表中猜測 SSH 帳戶的密碼。

攻擊者可能使用這種技術來獲取未經授權的訪問權限,並獲得敏感數據或在系統中執行惡意活動。

由於配置了強密碼,攻擊者暫時沒能得逞。

為了應對 SSH 密碼爆破攻擊,可以採取以下措施:

  1. 使用入侵檢測系統 fail2ban,檢測到暴力破解行為,在防火牆中禁止攻擊者的 IP 地址
  2. ssh 換用公鑰身份驗證,禁用密碼

fail2ban#

簡介#

fail2ban 是一種開源的入侵防禦工具,主要用於檢測和響應針對計算機系統的惡意攻擊。它通過監視日誌文件來查找可能的攻擊行為,並根據預定義的規則阻止攻擊者的 IP 地址或主機名的訪問。

fail2ban 的主要作用包括:

  1. 防止暴力破解:fail2ban 可以監視 SSH、FTP、SMTP、POP3 等服務的日誌文件,並檢測到暴力破解行為。一旦檢測到此類行為,它將嘗試在防火牆中禁止攻擊者的 IP 地址。
  2. 防止拒絕服務攻擊:fail2ban 可以監視網絡流量並檢測到 DDoS 攻擊。一旦檢測到此類攻擊,它將嘗試在防火牆中阻止攻擊者的 IP 地址。
  3. 實時監控:fail2ban 可以實時監視系統日誌文件,並根據規則觸發警報和阻止行動。這有助於及時發現和應對新的攻擊行為。
  4. 日誌分析:fail2ban 可以幫助管理員分析系統日誌文件,找出潛在的安全威脅,並採取相應的措施。

總的來說,fail2ban 可以幫助管理員保護他們的系統免受惡意攻擊和未經授權的訪問。

操作#

所以可以使用 fail2ban 來實現。以下是實現步驟:

  1. 安裝 fail2ban,以 CentOS 為例:
sudo yum install epel-release -y
sudo yum install fail2ban -y
  1. 編輯 fail2ban 配置文件:
sudo vi /etc/fail2ban/jail.local

添加以下內容:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 86400

此配置將啟用 fail2ban 監視 SSH 登錄嘗試,如果同一 IP 地址在 3 次登錄嘗試中輸錯密碼,則會被 ban 掉 1*24 小時。

  1. 啟動 fail2ban 服務:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

現在,如果同一 IP 地址在 3 次登錄嘗試中輸錯密碼,則會被 ban 掉 1*24 小時。如果您希望修改最大尝試次數或 ban 時間等設置,請修改上述配置文件並重新啟動 fail2ban 服務。

ssh 公鑰身份驗證#

將 SSH 身份驗證從基於口令的身份驗證改為基於公鑰的身份驗證,有以下幾個好處:

  1. 更安全:基於口令的身份驗證存在被暴力破解的風險,因為攻擊者可以使用暴力破解技術嘗試猜測使用者的密碼。而基於公鑰的身份驗證使用了非對稱加密技術,比密碼更難猜測,因此更安全。
  2. 更方便:一旦設置了 SSH 公鑰,您就無需在每次登錄時輸入密碼,這使得登錄更快、更方便。此外,當需要在多台遠程伺服器之間進行訪問時,無需記住多個密碼,也可以更輕鬆地進行身份驗證。

將 SSH 驗證方式從密碼更改為公鑰身份驗證#

在 CentOS 中,將 SSH 驗證方式從密碼更改為公鑰身份驗證需要完成以下步驟:

  1. 生成公鑰 / 私鑰對

首先,在您的本地計算機上生成公鑰 / 私鑰對。您可以使用以下命令來生成公鑰 / 私鑰對:

ssh-keygen

該命令將提示您輸入生成的密鑰文件的名稱和位置,並為您的密鑰對生成隨機的加密密碼。默認情況下,這將在 ~/.ssh/ 目錄下創建一個名為 id_rsa.pubid_rsa 的文件。確保將公鑰文件(id_rsa.pub)拷貝到目標 CentOS 伺服器上。

  1. 確認目標伺服器已啟用公鑰身份驗證

接下來,您需要確保目標伺服器上已啟用公鑰身份驗證。打開 /etc/ssh/sshd_config 文件,找到並確保以下行未被註釋:

PubkeyAuthentication yes

如果該行未被註釋,請跳過此步驟。

  1. 將公鑰添加到目標伺服器上的授權金鑰文件中

將您的公鑰文件添加到目標伺服器上的授權金鑰文件中。打開 ~/.ssh/authorized_keys 文件,並將您的公鑰文件內容(即 id_rsa.pub 文件中的所有文本)複製到該文件中。

如果 ~/.ssh/authorized_keys 文件不存在,請創建它。

  1. 重啟 SSH 服務

完成以上步驟後,重啟 SSH 服務以使更改生效。可以使用以下命令來重啟 SSH 服務:

sudo systemctl restart sshd

現在,您應該能夠使用公鑰身份驗證連接到目標 CentOS 伺服器,而不需要密碼。

禁用 SSH 密碼身份驗證,只允許使用公鑰身份驗證#

  1. 確保公鑰身份驗證已啟用

首先,確保已啟用公鑰身份驗證。打開 /etc/ssh/sshd_config 文件,找到並確保以下行未被註釋:

PubkeyAuthentication yes

如果該行未被註釋,請跳過此步驟。

  1. 禁用密碼身份驗證

要禁用密碼身份驗證,請將以下行添加到 /etc/ssh/sshd_config 文件中:

PasswordAuthentication no

這將禁用通過密碼進行身份驗證。請注意,如果您不使用公鑰身份驗證,則將無法連接到 SSH 伺服器。

  1. 重啟 SSH 服務

完成以上步驟後,重啟 SSH 服務以使更改生效。可以使用以下命令來重啟 SSH 服務:

sudo systemctl restart sshd

現在,SSH 伺服器只允許使用公鑰身份驗證進行連接,而不允許使用密碼進行連接。

其他 sshd_config#

ChallengeResponseAuthentication#

禁用 SSH 密碼身份驗證時,如果嘗試通過密碼進行連接,系統將顯示一個提示,指示使用者使用其他身份驗證方法。如果您不想看到此提示,可以按照以下步驟操作:

ChallengeResponseAuthentication no

MaxAuthTries#

MaxAuthTries 是一個 sshd_config 文件中的參數,指定了在認證過程中允許的最大嘗試次數。默認情況下,這個值為 6,也就是說,如果一個使用者在登錄過程中超過 6 次失敗,那麼連接將被中斷。

這個參數的主要目的是為了增加系統安全性,避免惡意攻擊者通過暴力破解密碼等手段入侵系統。如果您將這個值設置得過小,使用者可能會因為輸入錯誤而被鎖定,如果設置得過大,系統可能會更容易受到攻擊。

您可以根據實際需要更改 MaxAuthTries 的值。例如,如果您擔心有人會對系統進行暴力攻擊,則可以將其降低,例如將其設置為 3 或 4。如果您有一個強大的密碼策略,並且不希望使用者因為輸入錯誤而被鎖定,則可以將其增加到 10 或更多。

請注意,修改了 MaxAuthTries 的值之後,您需要重新啟動 ssh 服務才能生效,可以使用以下命令:

sudo systemctl restart sshd
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。