為了防止 CentOS 上的 SFTP 服務被暴力破解,您可以采取以下措施:
使用強密碼策略:確保所有用戶的密碼都足夠復雜,包括大小寫字母、數字和特殊字符。避免使用常見密碼或容易猜到的密碼。
限制登錄嘗試次數:通過修改 SSH 配置文件(/etc/ssh/sshd_config),限制用戶在一定時間內的登錄嘗試次數。例如,您可以設置以下選項:
MaxAuthTries 3
LoginGraceTime 10
這將限制每個用戶在 10 秒內最多嘗試 3 次登錄。超過限制的用戶將被暫時鎖定。
啟用公鑰認證:使用 SSH 密鑰對進行身份驗證,而不是依賴密碼。這可以大大提高安全性,因為攻擊者需要破解私鑰才能登錄。要設置公鑰認證,請按照以下步驟操作:
a. 在客戶端生成 SSH 密鑰對(如果尚未生成)。 b. 將客戶端的公鑰添加到服務器上用戶的 authorized_keys 文件中。 c. 確保服務器上的 authorized_keys 文件權限設置正確(通常為 600)。 d. 在服務器的 SSH 配置文件(/etc/ssh/sshd_config)中啟用公鑰認證:
PubkeyAuthentication yes
Port 2222
然后重啟 SSH 服務以應用更改。
使用 Fail2ban:Fail2ban 是一個用于監控日志文件并根據特定規則阻止惡意 IP 地址的工具。您可以配置 Fail2ban 以監視 SFTP 登錄嘗試,并在檢測到多次失敗嘗試后阻止攻擊者的 IP 地址。要安裝和配置 Fail2ban,請按照以下步驟操作:
a. 安裝 Fail2ban:
sudo yum install fail2ban
b. 創建一個新的 Fail2ban 配置文件,例如 /etc/fail2ban/jail.local,并添加以下內容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
這將設置 Fail2ban 在 10 分鐘內檢測到 3 次失敗嘗試后,阻止攻擊者的 IP 地址 10 分鐘。
c. 啟動 Fail2ban 服務并設置為開機啟動:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
通過采取這些措施,您可以大大提高 CentOS 上 SFTP 服務的安全性,降低被暴力破解的風險。