新聞中心
Linux 如何限制 ssh 登錄?

創(chuàng)新互聯(lián)公司聯(lián)系熱線:028-86922220,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁制作領(lǐng)域十載,包括成都砂巖浮雕等多個(gè)領(lǐng)域擁有豐富設(shè)計(jì)經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為網(wǎng)站錦上添花!
SSH(Secure Shell)是一種常用的網(wǎng)絡(luò)協(xié)議,它為用戶提供了安全的遠(yuǎn)程管理 UNIX 或 Linux 系統(tǒng)的方式。然而,在某些情況下,你可能需要限制 SSH 登錄的訪問,以加強(qiáng)系統(tǒng)的安全性。本文將介紹如何使用不同的方法限制 SSH 登錄。
1. 禁止 Root 用戶通過 SSH 登錄
默認(rèn)情況下,Linux 允許以 root 用戶身份通過 SSH 登錄。這種設(shè)置可能會(huì)導(dǎo)致某些安全問題,因?yàn)楣粽呖梢允褂迷撚脩裘麌L試暴力破解密碼等攻擊。為了避免這種情況,我們可以在 SSH 配置文件中禁止 root 用戶使用 SSH。
編輯 /etc/ssh/sshd_config 文件并找到 PermitRootLogin 參數(shù),將其設(shè)置為 no。
“`
PermitRootLogin no
“`
重啟 SSH 服務(wù),即可生效。
“`
systemctl restart sshd
“`
2. 限制 SSH 訪問 IP
讓 SSH 訪問的 IP 變得更加安全,可以通過修改 /etc/ssh/sshd_config 文件來實(shí)現(xiàn)。您可以限制來自特定 IP 地址或地址段的 SSH 連接。這對于防止攻擊者使用暴力方法來破解密碼非常有幫助。
找到 ListenAddress 參數(shù),并在其下方添加以下內(nèi)容:
“`
AllowUsers yourusername@youripaddress
“`
請將 “yourusername” 替換為您的用戶名,并將 “youripaddress” 替換為允許 SSH 訪問的 IP 地址。
您還可以限制整個(gè) IP 地址段的訪問權(quán)限,如下所示:
“`
AllowUsers yourusername@192.168.1.*
“`
這將允許來自 192.168.1.0 到 192.168.1.255 的所有 IP 地址訪問 SSH。
3. 禁用密碼驗(yàn)證,啟用密鑰驗(yàn)證
密碼驗(yàn)證不夠安全,并且容易受到暴力破解的攻擊。為了保證 SSH 的安全性,可以禁用密碼驗(yàn)證并啟用密鑰驗(yàn)證。
您需要生成一對公鑰和私鑰,公鑰將用于登錄遠(yuǎn)程服務(wù)器。將公鑰添加到目標(biāo)服務(wù)器上,以確保您能夠使用公鑰連接服務(wù)器。
“`
ssh-keygen
“`
接下來,將您的公鑰復(fù)制到目標(biāo)服務(wù)器上。更好將公鑰放置到 ~/.ssh/authorized_keys 文件中。
在完成此步驟后,將以下內(nèi)容添加到 /etc/ssh/sshd_config 文件末尾:
“`
PasswordAuthentication no
PubkeyAuthentication yes
“`
然后,重啟 SSH 服務(wù),這樣您就可以使用密鑰連接到遠(yuǎn)程服務(wù)器。
“`
systemctl restart sshd
“`
通過上面的方法,您可以增加 Linux 系統(tǒng)的安全性,防止攻擊者使用暴力手段和其他攻擊方式破解密碼,訪問您的服務(wù)器和系統(tǒng)。這樣幫助您更好的維護(hù)系統(tǒng),讓您的數(shù)據(jù)和服務(wù)器更安全。
相關(guān)問題拓展閱讀:
- linux ssh如何限制用戶只能在特定的時(shí)間內(nèi)可以連接?
- linux下ssh連接限制的問題
linux ssh如何限制用戶只能在特定的時(shí)間內(nèi)可以連接?
高級SSH安全技巧 在這篇文章中我將為你展示一些簡單的技巧,幫助你提高你的SSH服務(wù)的安全。SSH服務(wù)器配置文件是/etc/ssh/sshd_conf。在你對它進(jìn)行每一次改動(dòng)后都需要重新啟動(dòng)SSH服務(wù),以便讓改動(dòng)生效。 1、修改SSH監(jiān)聽端口 默認(rèn)情況下,SSH監(jiān)聽連接端口22,攻擊者使用端口掃描軟件就可以看到主機(jī)是否運(yùn)行有SSH服務(wù),將SSH端口修改為大于1024的端口是一個(gè)明智的選擇,因?yàn)榇蠖鄶?shù)端口掃描軟件(包括nmap)默認(rèn)情況都不掃描高位端口。 打開/etc/ssh/sshd_config文件并查找下面這樣的行: Port 22 修改端口號(hào)并重新啟動(dòng)SSH服務(wù): /etc/init.d/ssh restart 2、僅允許SSH協(xié)議版本2 有兩個(gè)SSH協(xié)議版本,僅使用SSH協(xié)議版本2會(huì)更安全,SSH協(xié)議版本1有安全問題,包括中間人攻擊(man-in-the-middle)和注入(insertion)攻擊。編輯/etc/ssh/sshd_config文件并查找下面這樣的行: Protocol 2,1 修改為 Protocol 2 3、僅允許特定的用戶通過SSH登陸 你不一個(gè)允許root用戶通過SSH登陸,因?yàn)檫@是一個(gè)巨大的不必要的安全風(fēng)險(xiǎn),如果一個(gè)攻擊者獲得root權(quán)限登陸到你的系統(tǒng),相對他獲得一個(gè)普通用戶權(quán)限能造成更大的破壞,配置SSH服務(wù)器不允許root用戶通過SSH登陸,查找下面這樣的行: PermitRootLogin yes 將yes修改為no,然后重新啟動(dòng)服務(wù)。現(xiàn)在,如果你想使用特權(quán)用戶,你可以先以其他用戶登陸,然后再轉(zhuǎn)換到root。 創(chuàng)建一個(gè)沒有實(shí)際權(quán)限的虛擬用戶是一個(gè)明智的選擇,用這個(gè)用戶登陸SSH,即使這個(gè)用戶遭到破解也不會(huì)引起什么破壞,當(dāng)創(chuàng)建這個(gè)用戶時(shí),確保它屬于wheel組,因?yàn)槟菢幽悴拍芮袚Q到特權(quán)用戶。 如果你想讓一列用戶都能通過SSH登陸,你可以在sshd_config文件中指定它們,例如:我想讓用戶anze、dasa、kimy能通過SSH登陸,在sshd_config文件的末尾我添加下面這樣一行: AllowUsers anze dasa kimy 4、創(chuàng)建一個(gè)自定義SSH banner 如果你想讓任何連接到你SSH服務(wù)的用戶看到一條特殊的消息,你可以創(chuàng)建一個(gè)自定義SSH banner,只需要?jiǎng)?chuàng)建一個(gè)文本文件(我的是/etc/ssh-banner.txt),然后輸入你想的任何文本消息,如: *This is a private SSH service. You are not supposed to be here.* *Please leave immediately. * 編輯好后,保存這個(gè)文件,在sshd_config中查找下面這樣一行: #Banner /etc/issue.net 取消掉注釋【將#去掉】,然后將路徑修改為你自定義的SSH banner文本文件。 5、使用DSA公鑰認(rèn)證 代替使用用戶名和密碼對SSH進(jìn)行認(rèn)證,你可以使用DSA公鑰進(jìn)行認(rèn)證,注意你既可以使用登陸名,也可以使用DSA公鑰進(jìn)行認(rèn)證,使用DSA公鑰認(rèn)證可以預(yù)防你的系統(tǒng)遭受字典攻擊,因?yàn)槟悴恍枰玫顷懨兔艽a登陸SSH服務(wù),而是需要一對DSA密鑰,一個(gè)公鑰和一個(gè)私鑰,在你本地機(jī)器上保存私鑰,將公鑰放在服務(wù)器上。當(dāng)你發(fā)起一個(gè)SSH登陸會(huì)話時(shí),服務(wù)器檢查密鑰,如果它們匹配的話,你就可以直接進(jìn)入shell,如果它們不匹配,你的連接將被自動(dòng)斷開。 在本例中的私人計(jì)算機(jī)叫‘工作站1’,服務(wù)器叫‘服務(wù)器1’。在兩個(gè)機(jī)器上我有相同的home目錄,如果服務(wù)器和客戶端上的home目錄不同將不能工作,實(shí)現(xiàn),你需要在你的私人計(jì)算機(jī)上創(chuàng)建一對密鑰,命令:~$ ssh-keygen -t dsa,它將要求你為私鑰輸入一個(gè)密語,但是你可以保留為空,因?yàn)檫@不是一個(gè)推薦的做法。密鑰對創(chuàng)建好了:你的私鑰在~/.ssh/id_dsa,你的公鑰在.ssh/id_dsa.pub。 接下來,拷貝~/.ssh/id_dsa.pub中的內(nèi)容到‘服務(wù)器1’的~/.ssh/authorized_keys文件中,~/.ssh/id_dsa.pub的內(nèi)容看起來象下面這樣: ~$ cat .ssh/id_dsa.pub ssh-dss AAAAB3NzaC1kc3MAAACBAM7K7vkK5C90RsvOhiHDUROvYbNgr7YEqtrdfFCUVwMWc JYDusNGAIC0oZkBWLnmDu+y6ZOjNPOTtPnpEX0kRoH79maX8NZbBD4aUV91lbG7z604ZTdr LZVSFhCI/Fm4yROHGe0FO7FV4lGCUIlqa55+QP9Vvco7qyBdIpDuNV0LAAAAFQC/9ILjqII7n M7aKxIBPDrQwKNyPQAAAIEAq+OJC8+OYIOeXcW8qcB6LDIBXJV0UT0rrUtFVo1BN39cAWz5pu Fe7eplmr6t7Ljl7JdkfEA5De0k3WDs 9/rD1tJ6UfqSRc2qPzbn0p0j89LPIjdMMSISQqaKO4m2fO2VJcgCWvsghIoD0AMRC7ngIe6bta NIhBbqri10RGL5gh4AAACAJj1/rV7iktOYuVyqV3BAz3JHoaf+H/dUDtX+wuTuJpl+tfDf61rb WOqrARuHFRF0Tu/Rx4oOZzadLQovafqrDnU/No0Zge+WVXdd4ol1YmUlRkqp8vc20ws5mLVP 34fST1amc0YNeBp28EQi0xPEFUD0IXzZtXtHVLziA1/NuzY= 如果文件~/.ssh/authorized_keys已經(jīng)存在,請將上面的內(nèi)容附加在該文件的后面。剩下的只是給該文件設(shè)置正確的權(quán)限了: ~$ chmod 600 ~/.ssh/authorized_keys 現(xiàn)在,配置sshd_config文件使用DSA密鑰認(rèn)證,確保你將下面三行前的注釋去掉了: RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys 重新啟動(dòng)服務(wù),如果你的配置沒有錯(cuò)誤,現(xiàn)在你就可以SSH到你的服務(wù)器,而且無需任何交互動(dòng)作(如輸入用戶名和密碼)就直接進(jìn)入你的home目錄了。 如果你只想使用DSA認(rèn)證登陸,確保你在sshd_config中取消掉注釋并修改PasswordAuthentication這一行,將yes改為no: PasswordAuthentication no 任何在服務(wù)器上沒有公鑰的人試圖連接到你的SSH服務(wù),它就被拒絕,給它顯示如下一個(gè)拒絕提示信息: Permission denied (publickey). 6、使用TCP wrappers僅允許指定的主機(jī)連接 如果你想在你的網(wǎng)絡(luò)上只允許特定的主機(jī)才能連接到你的SSH服務(wù),但又不想使用或弄亂你的iptables配置,那這個(gè)方法非常有用,你可以使用 TCP wrappers。在這個(gè)例子中對sshd進(jìn)行TCP包裹,我將創(chuàng)建一條規(guī)則允許本地子網(wǎng)192.168.1.0/24和遠(yuǎn)程 193.180.177.13的自己連接到我的SSH服務(wù)。 默認(rèn)情況下,TCP wrappers首先在/etc/hosts.deny中查找看主機(jī)是否允許訪問該服務(wù),接下來,TCP wrappers查找/etc/hosts.allow看是否有規(guī)則允許該主機(jī)服務(wù)指定的服務(wù),我將在/etc/hosts.deny中創(chuàng)建一個(gè)規(guī)則,如下: sshd: ALL 這意味著默認(rèn)情況下所有主機(jī)被拒絕訪問SSH服務(wù),這是應(yīng)該的,否則所有主機(jī)都能訪問SSH服務(wù),因?yàn)門CP wrappers首先在hosts.deny中查找,如果這里沒有關(guān)于阻止SSH服務(wù)的規(guī)則,任何主機(jī)都可以連接。 接下來,在/etc/hosts.allow中創(chuàng)建一個(gè)規(guī)則允許指定的主機(jī)使用SSH服務(wù): sshd: 192.168.1 193.180.177.13 現(xiàn)在,只有來自192.168.1.0/24和193.180.177.13的主機(jī)能夠訪問SSH服務(wù)了,其他主機(jī)在連接時(shí)還沒有到登陸提示符時(shí)就被斷開了,并收到錯(cuò)誤提示,如下: ssh_exchange_identification: Connection closed by remote host 7、使用iptables允許特定的主機(jī)連接 作為TCP wrappers的一個(gè)代替品,你可以使用iptables來限制SSH訪問(但可以同時(shí)使用這個(gè)兩個(gè)的),這里有一個(gè)簡單的例子,指出了如何允許一個(gè)特定的主機(jī)連接到你的SSH服務(wù): ~# iptables -A INPUT -p tcp -m state –state NEW –source 193.180.177.13 –dport 22 -j ACCEPT 并確保沒有其他的主機(jī)可以訪問SSH服務(wù): ~# iptables -A INPUT -p tcp –dport 22 -j DROP 保存你的新規(guī)則,你的任務(wù)就完成了,規(guī)則是立即生效的 8、SSH時(shí)間鎖定技巧 你可以使用不同的iptables參數(shù)來限制到SSH服務(wù)的連接,讓其在一個(gè)特定的時(shí)間范圍內(nèi)可以連接,其他時(shí)間不能連接。你可以在下面的任何例子中使用/second、/minute、/hour或/day開關(guān)。 之一個(gè)例子,如果一個(gè)用戶輸入了錯(cuò)誤的密碼,鎖定一分鐘內(nèi)不允許在訪問SSH服務(wù),這樣每個(gè)用戶在一分鐘內(nèi)只能嘗試一次登陸: ~# iptables -A INPUT -p tcp -m state –syn –state NEW –dport 22 -m limit –limit 1/minute –limit-burst 1 -j ACCEPT ~# iptables -A INPUT -p tcp -m state –syn –state NEW –dport 22 -j DROP 第二個(gè)例子,設(shè)置iptables只允許主機(jī)193.180.177.13連接到SSH服務(wù),在嘗試三次失敗登陸后,iptables允許該主機(jī)每分鐘嘗試一次登陸: ~# iptables -A INPUT -p tcp -s 193.180.177.13 -m state –syn –state NEW –dport 22 -m limit –limit 1/minute –limit-burst 1 -j ACCEPT ~# iptables -A INPUT -p tcp -s 193.180.177.13 -m state –syn –state NEW –dport 22 -j DROP 9、結(jié)論 這些技巧都不是很難掌握,但是它們對于保護(hù)你的SSH服務(wù)卻是很強(qiáng)勁的手段,花一點(diǎn)代價(jià)換來的是睡一個(gè)好覺。
linux下ssh連接限制的問題
問題1:如果你開通的ssh權(quán)限是針對用戶而不是針對組開通的,那默認(rèn)就是一個(gè)賬號(hào)一個(gè)人登陸啦!問題2:據(jù)我所知,ssh目前好像還沒有限速的功能,只是用于給用戶遠(yuǎn)程操控的,安全方面可以通過服務(wù)本身和系統(tǒng)內(nèi)部的定義來控制。限速度方面,一般都是用ftp來做的。
首先你看下 /etc/pam.d/login 中有沒有下面類似的代碼:
session required pam_limits.so
就是有沒有包含pam_limits.so 這個(gè)東西。
然后在 /etc/security/limits.conf 加入要限制的用戶名或用戶組,例如:
root hard maxlogins 1
參數(shù)含義:
core – 限制內(nèi)核文件的大小
date – 更大數(shù)據(jù)大小
fsize – 更大文件大小
memlock – 更大鎖定內(nèi)存地址空間
nofile – 打開文件的更大數(shù)目
rss – 更大持久設(shè)置大小
stack – 更大棧大小
cpu – 以分鐘為單位的最多 CPU 時(shí)間
noproc – 進(jìn)程的更大數(shù)目
as – 地址空間限制
maxlogins – 此用戶允許登錄的更大數(shù)目
用處就是,由于訪問不僅僅是用的口令,還用了數(shù)字證書,所以一般不會(huì)泄露??梢栽O(shè)置連接后無終端,那么只能連接了。可以針對ssh設(shè)置速度。由于ssh可以tunnels,所以可以在外面訪問“自己”的資源。
ssh應(yīng)該沒有
可以考錄使用虛擬機(jī),控制每個(gè)虛擬機(jī)自身的帶寬
關(guān)于linux限制ssh登錄的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
網(wǎng)站名稱:Linux如何限制ssh登錄?(linux限制ssh登錄)
鏈接地址:http://www.5511xx.com/article/djehdse.html


咨詢
建站咨詢
