Linux

如何停止/防止 SSH 暴力破解

  • February 8, 2018

我對網路管理非常陌生,所以請認為我還沒有那麼有經驗。

我有一個帶有 plesk 面板的 Ubuntu 根伺服器。

昨天我和我的朋友注意到我們的 TS3 的語音質量很差。我向伺服器發送了一些 ping,並且丟包率非常高。之後我用Google搜尋了一下,發現有一個auth.log. 我下載了它並滾動了一下,然後我發現了這個:

May 13 10:01:27 rs204941 sshd[9351]: input_userauth_request: invalid user student [preauth]
May 13 10:01:27 rs204941 sshd[9351]: pam_unix(sshd:auth): check pass; user unknown
May 13 10:01:27 rs204941 sshd[9351]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=112.220.198.102 
May 13 10:01:29 rs204941 sshd[9351]: Failed password for invalid user student from 112.220.198.102 port 39806 ssh2
May 13 10:01:29 rs204941 sshd[9351]: Received disconnect from 112.220.198.102: 11: Bye Bye [preauth]
May 13 10:01:31 rs204941 sshd[9353]: Invalid user student from 112.220.198.102

似乎有人多次嘗試通過 SSH 登錄。我滾動了一下,發現有人嘗試使用許多不同的使用者名:student, tech, psi, news,...

文件中顯示了數百個這樣的登錄。

我在我的數據中心的網站上查找了流量統計數據。它只有每小時 17MB。我有一個 100Mbit 的骨幹網,所以數據傳輸本身似乎不是問題。

目前我無法以任何方式訪問伺服器。

我的問題是:我怎樣才能再次獲得訪問權限,我怎樣才能抑制這種攻擊並防止後續攻擊?

如何獲得訪問權限?

目前尚不清楚為什麼您無法訪問您的帳戶。

如果您的機器受到攻擊或高負載,您應該與您的提供商討論限制訪問(IP 限制)或使伺服器離線(斷開與 Internet 的連接)。

您可能還需要您的提供者可以提供幫助的帶外訪問。

如果有人破壞了您的伺服器,您可能需要從備份中恢復或使用恢復映像。

如何防止對您的伺服器的攻擊,尤其是 SSH

防止暴力登錄的最佳方法?

首先不要讓他們進入您的機器!有很多方法可以在暴力嘗試到達您的主機之前阻止它們,甚至在 SSH 級別。

話雖如此,使用類似 fail2ban 的東西保護您的作業系統是一個好主意。http://en.wikipedia.org/wiki/Fail2ban

Fail2ban 類似於 DenyHosts …但與專注於 SSH 的 DenyHosts 不同,fail2ban 可以配置為監視將登錄嘗試寫入日誌文件的任何服務,而不是僅使用 /etc/hosts.deny 來阻止 IP 地址/主機, fail2ban 可以使用 Netfilter/iptables 和 TCP Wrappers /etc/hosts.deny。

您應該考慮一些重要的安全技術來幫助防止暴力登錄:

SSH:

  • 不允許root登錄
  • 不允許 ssh 密碼(使用私鑰認證)
  • 不要在每個界面上都聽
  • 為 SSH 創建一個網路介面(例如 eth1),它不同於您提供請求的介面(例如 eth0)
  • 不要使用常見的使用者名
  • 使用允許列表,並且只允許需要 SSH 訪問的使用者
  • 如果您需要 Internet 訪問…限制對有限 IP 集的訪問。一個靜態 IP 是理想的,但是將其鎖定為 xx0.0/16 比 0.0.0.0/0 更好
  • 如果可能的話,找到一種無需 Internet 訪問即可連接的方法,這樣您就可以拒絕 SSH 的所有 Internet 流量(例如,使用 AWS,您可以獲得繞過 Internet 的直接連接,稱為 Direct Connect)
  • 使用fail2ban之類的軟體來擷取任何暴力攻擊
  • 確保作業系統始終是最新的,尤其是安全和 ssh 包

應用:

  • 確保您的應用程序始終是最新的,尤其是安全包
  • 鎖定您的應用程序“管理”頁面。上面的許多建議也適用於您的應用程序的管理區域。
  • 密碼保護您的管理區域,例如用於 Web 控制台的 htpasswd 將投射任何底層應用程序漏洞並創建額外的進入障礙
  • 鎖定文件權限。“上傳文件夾”因成為各種令人討厭的東西的入口點而臭名昭著。
  • 考慮將您的應用程序放在私有網路後面,並且隻公開您的前端負載均衡器和跳轉盒(這是 AWS 中使用 VPC 的典型設置)

引用自:https://serverfault.com/questions/594746