電子商務(wù)網(wǎng)站建設(shè)案例教程今日特大軍事新聞
開始講故事
Long long ago, Linux遠程訪問方式有telnet、ssh兩種協(xié)議;有人可能還會說vnc和rdp協(xié)議方式,后面這兩種主要是可視化桌面場景下的,并非主流。
時過境遷,telnet因安全性低逐漸被禁用淘汰,最后就剩下獨苗一棵ssh。使用ssh管控設(shè)備總該安全了吧!No~你不能直接使用root遠程登錄設(shè)備。
基于上面故事情節(jié),我們只對sshd服務(wù)禁用root遠程訪問展開聊聊。禁用root遠程登錄的方法很多,總體而言兩類:1、sshd自身提供能力;2、基于PAM模塊能力。
sshd自身提供能力(最簡單)
確保PermitRootLogin no被配置
~]# grep -i Root /etc/ssh/sshd_config ??
PermitRootLogin yes
基于PAM(Pluggable Authentication Modules)模塊能力
基于PAM可以使用Modules實現(xiàn)相關(guān)功能,例如:pam_securetty.so或pam_listfile.so。相對簡單的是pam_securetty,pam_listfile不太常用(后面我們再出一篇展開講講)。
centos7
1、在centos7中pam_securetty默認在/etc/pam.d/login (對telnet或控制臺登錄有效)中配置
~]# grep -i pam_securetty /etc/pam.d/login?
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
2、由/etc/securetty起到白名單作用,該文件不存在,則上述配置失效。
~]# ll /etc/securetty?
-rw-------. 1 root root 221 Apr ?1 ?2020 /etc/securetty
國產(chǎn)Linux(Anolis8)
1、默認pam包中包含pam_securetty,但,不再默認定義到/etc/pam.d/login ;/etc/securetty文件也不存在。
配置禁止root遠程訪問sshd
1、確保/etc/pam.d/sshd首行配置了pam_securetty.so
~]# grep -i pam_securetty /etc/pam.d/sshd
auth [user_unknown=ignore success=ok ignore=ignore default=bad]?pam_securetty.so
2、確保/etc/securetty文件存在且為空。
總結(jié)
如果PermitRootLogin no和securetty都配置了,肯定也沒毛病。如果要臨時放開root遠程訪問就要一一拆除。securetty文件本身是登錄設(shè)備白名單,不同版本操作系統(tǒng)下對ssh管控設(shè)備名不太一樣:
~]# who
root ? ? pts/0 ? ? ? ?2024-12-04 13:48 (192.168.xx.xxx)
如上回顯中pts/0就是一種終端設(shè)備:/etc/securetty值類型:①tty:終端 ②pts:偽終端 ③console:當前的控制臺 ④vc:visual console虛擬控制臺 ⑤vt:虛擬終端 ⑥hvc ⑦hvsi ⑧xvc等。
但是,經(jīng)我測試,在Anolis8中,如果要臨時允許root遠程ssh,則需要配置ssh到/etc/securetty,而不是pts偽終端。