SSH 是一種廣泛使用的協(xié)議,用于安全地訪(fǎng)問(wèn) Linux 服務(wù)器。大多數(shù)用戶(hù)使用默認(rèn)設(shè)置的 SSH 連接來(lái)連接到遠(yuǎn)程服務(wù)器。但是,不安全的默認(rèn)配置也會(huì)帶來(lái)各種安全風(fēng)險(xiǎn)。 具有開(kāi)放 SSH 訪(fǎng)問(wèn)權(quán)限的服務(wù)器的 root 帳戶(hù)可能存在風(fēng)險(xiǎn)。尤其是如果你使用的是公共 IP 地址,則破解 root 密碼要容易得多。因此,有必要了解 SSH 安全性。 這是在 Linux 上保護(hù) SSH 服務(wù)器連接的方法。
1. 禁用 root 用戶(hù)登錄
為此,首先,禁用 root 用戶(hù)的 SSH 訪(fǎng)問(wèn)并創(chuàng)建一個(gè)具有 root 權(quán)限的新用戶(hù)。關(guān)閉 root 用戶(hù)的服務(wù)器訪(fǎng)問(wèn)是一種防御策略,可以防止攻擊者實(shí)現(xiàn)入侵系統(tǒng)的目標(biāo)。例如,你可以創(chuàng)建一個(gè)名為 exampleroot 的用戶(hù),如下所示:
useradd-mexampleroot passwdexampleroot usermod-aGsudoexampleroot 以下是上述命令的簡(jiǎn)要說(shuō)明:
useradd 創(chuàng)建一個(gè)新用戶(hù),并且 - m 參數(shù)在你創(chuàng)建的用戶(hù)的主目錄下創(chuàng)建一個(gè)文件夾。
passwd 命令用于為新用戶(hù)分配密碼。請(qǐng)記住,你分配給用戶(hù)的密碼應(yīng)該很復(fù)雜且難以猜測(cè)。
usermod -aG sudo 將新創(chuàng)建的用戶(hù)添加到管理員組。
在用戶(hù)創(chuàng)建過(guò)程之后,需要對(duì) sshd_config 文件進(jìn)行一些更改。你可以在 / etc/ssh/sshd_config 找到此文件。使用任何文本編輯器打開(kāi)文件并對(duì)其進(jìn)行以下更改:
#Authentication:#LoginGraceTime2mPermitRootLoginno AllowUsersexampleroot PermitRootLogin 行將阻止 root 用戶(hù)使用 SSH 獲得遠(yuǎn)程訪(fǎng)問(wèn)。在 AllowUsers 列表中包含 exampleroot 會(huì)向用戶(hù)授予必要的權(quán)限。 最后,使用以下命令重啟 SSH 服務(wù):
>rumenz@rumenz/home/rumenz/www.rumenz.com >sudosystemctlrestartssh 如果失敗并且你收到錯(cuò)誤消息,請(qǐng)嘗試以下命令。這可能因你使用的 Linux 發(fā)行版而異。
>rumenz@rumenz/home/rumenz/www.rumenz.com >sudosystemctlrestartsshd
2. 更改默認(rèn)端口
默認(rèn)的 SSH 連接端口是 22。當(dāng)然,所有的攻擊者都知道這一點(diǎn),因此需要更改默認(rèn)端口號(hào)以確保 SSH 安全。盡管攻擊者可以通過(guò) Nmap 掃描輕松找到新的端口號(hào),但這里的目標(biāo)是讓攻擊者的工作更加困難。 要更改端口號(hào),請(qǐng)打開(kāi) / etc/ssh/sshd_config 并對(duì)文件進(jìn)行以下更改:
Include/etc/ssh/sshd_config.d/*.confPort22099 在這一步之后,使用 sudo systemctl restart ssh 再次重啟 SSH 服務(wù)。現(xiàn)在你可以使用剛剛定義的端口訪(fǎng)問(wèn)你的服務(wù)器。如果你使用的是防火墻,則還必須在此處進(jìn)行必要的規(guī)則更改。在運(yùn)行 netstat -tlpn 命令時(shí),你可以看到你的 SSH 端口號(hào)已更改。
3. 禁止使用空白密碼的用戶(hù)訪(fǎng)問(wèn)
在你的系統(tǒng)上可能有你不小心創(chuàng)建的沒(méi)有密碼的用戶(hù)。要防止此類(lèi)用戶(hù)訪(fǎng)問(wèn)服務(wù)器,你可以將 sshd_config 文件中的 PermitEmptyPasswords 行值設(shè)置為 no。
PermitEmptyPasswordsno
4. 限制登錄 / 訪(fǎng)問(wèn)嘗試
默認(rèn)情況下,你可以根據(jù)需要嘗試多次輸入密碼來(lái)訪(fǎng)問(wèn)服務(wù)器。但是,攻擊者可以利用此漏洞對(duì)服務(wù)器進(jìn)行暴力破解。通過(guò)指定允許的密碼嘗試次數(shù),你可以在嘗試一定次數(shù)后自動(dòng)終止 SSH 連接。 為此,請(qǐng)更改 sshd_config 文件中的 MaxAuthTries 值。
MaxAuthTries3
5. 使用 SSH 版本 2
SSH 的第二個(gè)版本發(fā)布是因?yàn)榈谝粋€(gè)版本中存在許多漏洞。默認(rèn)情況下,你可以通過(guò)將 Protocol 參數(shù)添加到 sshd_config 文件來(lái)啟用服務(wù)器使用第二個(gè)版本。這樣,你未來(lái)的所有連接都將使用第二個(gè)版本的 SSH。
Include/etc/ssh/sshd_config.d/*.confProtocol2
6. 關(guān)閉 TCP 端口轉(zhuǎn)發(fā)和 X11 轉(zhuǎn)發(fā)
攻擊者可以嘗試通過(guò) SSH 連接的端口轉(zhuǎn)發(fā)來(lái)訪(fǎng)問(wèn)你的其他系統(tǒng)。為了防止這種情況,你可以在 sshd_config 文件中關(guān)閉 AllowTcpForwarding 和 X11Forwarding 功能。
X11Forwardingno AllowTcpForwardingno
7. 使用 SSH 密鑰連接
連接到服務(wù)器的最安全方法之一是使用 SSH 密鑰。使用 SSH 密鑰時(shí),無(wú)需密碼即可訪(fǎng)問(wèn)服務(wù)器。另外,你可以通過(guò)更改 sshd_config 文件中與密碼相關(guān)的參數(shù)來(lái)完全關(guān)閉對(duì)服務(wù)器的密碼訪(fǎng)問(wèn)。 創(chuàng)建 SSH 密鑰時(shí),有兩個(gè)密鑰:Public 和 Private。公鑰將上傳到你要連接的服務(wù)器,而私鑰則存儲(chǔ)在你將用來(lái)建立連接的計(jì)算機(jī)上。 在你的計(jì)算機(jī)上使用 ssh-keygen 命令創(chuàng)建 SSH 密鑰。不要將密碼短語(yǔ)字段留空并記住你在此處輸入的密碼。如果將其留空,你將只能使用 SSH 密鑰文件訪(fǎng)問(wèn)它。但是,如果你設(shè)置了密碼,則可以防止擁有密鑰文件的攻擊者訪(fǎng)問(wèn)它。例如,你可以使用以下命令創(chuàng)建 SSH 密鑰:
ssh-keygen
8. SSH 連接的 IP 限制
大多數(shù)情況下,防火墻使用自己的標(biāo)準(zhǔn)框架阻止訪(fǎng)問(wèn),旨在保護(hù)服務(wù)器。但是,這并不總是足夠的,你需要增加這種安全潛力。 為此,請(qǐng)打開(kāi) / etc/hosts.allow 文件。通過(guò)對(duì)該文件進(jìn)行的添加,你可以限制 SSH 權(quán)限,允許特定 IP 塊,或輸入單個(gè) IP 并使用拒絕命令阻止所有剩余的 IP 地址。 下面你將看到一些示例設(shè)置。完成這些之后,像往常一樣重新啟動(dòng) SSH 服務(wù)以保存更改。
-
Linux
+關(guān)注
關(guān)注
87文章
11392瀏覽量
211934 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9527瀏覽量
86778 -
SSH
+關(guān)注
關(guān)注
0文章
191瀏覽量
16626
原文標(biāo)題:Linux 怎么防止 ssh 被暴力破解
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
在Linux系統(tǒng)上搭建 Web 服務(wù)器
window的linux服務(wù)器連接
mobaxterm不能連接linux服務(wù)器
如何實(shí)現(xiàn)SSH服務(wù)器?
VScode終端ssh連接不到Linux服務(wù)器問(wèn)題
嵌入式Linux添加ssh服務(wù)

如何提高Linux ssh安全性
在Linux上保護(hù)SSH服務(wù)器連接的8種方法
Linux服務(wù)器常見(jiàn)的網(wǎng)絡(luò)故障排查方法
Linux中常用的6種SSH身份驗(yàn)證方法
Linux上建立SSH安全連接的10種方法
為什么Xshell連接不上服務(wù)器?

評(píng)論