如何保護 SSH 並增強 Linux 安全性


要保護 SSH 連接並增強 Linux 系統的安全性,可以使用一些最佳實踐和工具。以下是一些關鍵步驟來加強 SSH 安全性:

1. 更改默認的 SSH 端口

更改默認的 SSH 端口可以減少被自動化攻擊掃描到的風險。

  1. 打開 SSH 配置文件:
   sudo nano /etc/ssh/sshd_config
  1. 更改端口號: 找到 Port 行並更改端口號(例如,從 22 改為 2222):
   Port 2222
  1. 保存並重新啟動 SSH 服務:
   sudo systemctl restart ssh

2. 禁用 root 登錄

禁用 root 用戶通過 SSH 直接登錄可以防止許多暴力攻擊。

  1. 打開 SSH 配置文件:
   sudo nano /etc/ssh/sshd_config
  1. 禁用 root 登錄: 找到 PermitRootLogin 行並設置為 no
   PermitRootLogin no
  1. 保存並重新啟動 SSH 服務:
   sudo systemctl restart ssh

3. 使用密鑰驗證

使用公鑰認證代替密碼認證可以顯著提高安全性。

  1. 生成 SSH 密鑰對: 在客戶端機器上生成密鑰對:
   ssh-keygen -t ed25519 -C "your_email@example.com"
  1. 將公鑰複製到服務器: 使用 ssh-copy-id 命令將公鑰複製到服務器:
   ssh-copy-id user@server-ip
  1. 配置 SSH 使用公鑰認證: 確保 SSH 配置文件中啟用了公鑰認證:
   PubkeyAuthentication yes
  1. 禁用密碼認證: 禁用密碼認證,強制使用密鑰驗證:
   PasswordAuthentication no
  1. 保存並重新啟動 SSH 服務:
   sudo systemctl restart ssh

4. 使用 Fail2ban 保護 SSH

Fail2ban 可以自動阻止可疑的登錄嘗試,防止暴力破解攻擊。

  1. 安裝 Fail2ban:
   sudo apt-get install fail2ban
  1. 配置 Fail2ban: 編輯 Fail2ban 配置文件:
   sudo nano /etc/fail2ban/jail.local

添加或修改以下配置來保護 SSH:

   [sshd]
   enabled = true
   port = 2222  # 這裡應該是你實際使用的 SSH 端口
   filter = sshd
   logpath = /var/log/auth.log
   maxretry = 5
   bantime = 600
  1. 啟動並啟用 Fail2ban 服務:
   sudo systemctl start fail2ban
   sudo systemctl enable fail2ban

5. 設置 SSH 超時

設置 SSH 超時可以防止未活動的會話長時間保持打開狀態。

  1. 打開 SSH 配置文件:
   sudo nano /etc/ssh/sshd_config
  1. 設置超時參數: 添加或修改以下行以設置超時:
   ClientAliveInterval 300
   ClientAliveCountMax 0
  1. 保存並重新啟動 SSH 服務:
   sudo systemctl restart ssh

6. 使用兩因素認證(2FA)

兩因素認證提供了額外的一層安全性。

  1. 安裝 Google Authenticator:
   sudo apt install libpam-google-authenticator
  1. 配置 Google Authenticator: 為用戶設置 Google Authenticator:
   google-authenticator
  1. 配置 SSH 使用 PAM 模塊: 打開 PAM 配置文件:
   sudo nano /etc/pam.d/sshd

添加以下行:

   auth required pam_google_authenticator.so
  1. 修改 SSH 配置文件: 打開 SSH 配置文件:
   sudo nano /etc/ssh/sshd_config

設置 ChallengeResponseAuthenticationyes

   ChallengeResponseAuthentication yes
  1. 保存並重新啟動 SSH 服務:
   sudo systemctl restart ssh

總結

通過上述步驟,你可以顯著提高 SSH 連接的安全性,防止未經授權的訪問和攻擊。這些措施包括更改默認端口、禁用 root 登錄、使用密鑰驗證、設置超時和兩因素認證等。


WordPress Appliance - Powered by TurnKey Linux