Linux系統(tǒng)默認情況下骨坑,是可以通過ssh以root權限登錄的撼嗓。但出于安全考慮,這樣的權限是不合適的欢唾,黑客可以通過密碼暴利破解進入你的系統(tǒng)且警;另外也防止一些開發(fā)或者對系統(tǒng)不熟悉的人員進入系統(tǒng)橫沖直撞,進行一些危險操作礁遣。
禁止root用戶通過ssh登錄斑芜,是通過操作sshd_config配置文件來實現(xiàn)。
1祟霍、打開ssh配置文件
$ vim /etc/ssh/sshd_config
2杏头、找到文件中下面一行文字
#PermitRootLogin no也有可能是#PermitRootLogin yes
3、去掉該行前面的#號沸呐,使其成為下面這樣:
PermitRootLogin no
4醇王、添加用戶admin
useradd admin
5、設置admin用戶密碼
passwd admin **********
6崭添、查看用戶是否添加成功
cat /etc/passwd |cut -f 1 -d :
7寓娩、打開sshd_config文件,然后在文件的末尾加上下面一行文字呼渣,admin即為允許通過ssh登錄的用戶
vim /etc/ssh/sshd_config
AllowUsers admin
8棘伴、修改ssh登錄端口號:
vim /etc/ssh/sshd_config
/Port 找到端口配置
修改為
Port 22
Port 7777
注:先別把22端口關閉,要不7777登不上去,就只能登陸阿里云的web端進行遠程連接了
9屁置、重啟ssh服務
Ubuntu: $ /etc/init.d/sshd restart
Centos:? service sshd restart
接下來試著用root賬號再登陸發(fā)現(xiàn)拒絕登陸焊夸,然后在用普通用戶登錄即可。如果通過普通用戶登錄了需要root權限進行相關操作缰犁,可以通過su -命令切換到root賬號淳地。
如果機器里有很多普通用戶怖糊,而我們又不希望所有的用戶都能通過shh登錄帅容,也可以通過sshd_config配置來實現(xiàn)。
以下步驟是非必須的伍伤,一般生產環(huán)境會開防火墻
10并徘、查看默認防火墻狀態(tài)
firewall-cmd --state
注:CentOS7之前用來管理防火墻的工具是iptable,7之后使用的是Firewall
11扰魂、檢查防火墻服務的狀態(tài)
systemctl list-unit-files|grep firewalld.service
12麦乞、打開防火墻蕴茴,打開防火墻后,可能會造成ssh連接斷開的情況姐直,此時需要在瀏覽器中登錄阿里云web遠程連接倦淀,在遠程連接中執(zhí)行13步驟,然后即可再次通過ssh連接服務器
systemctl start firewalld.service
13声畏、為防火墻添加開放端口(按需添加)
firewall-cmd --zone=public --add-port=7777/tcp --permanent?
firewall-cmd --zone=public --add-port=9001/tcp --permanent?
firewall-cmd --zone=public --add-port=9742/tcp --permanent?
firewall-cmd --zone=public --add-port=3456/tcp --permanent?
firewall-cmd --zone=public --add-port=9876/tcp --permanent?
firewall-cmd --zone=public --add-port=8081/tcp --permanent?
firewall-cmd --zone=public --add-port=8080/tcp --permanent?
firewall-cmd --zone=public --add-port=8888/tcp --permanent?
firewall-cmd --zone=public --add-port=8889/tcp --permanent?
firewall-cmd --zone=public --add-port=80/tcp --permanent?
firewall-cmd --zone=public --add-port=23/tcp --permanent?
firewall-cmd --zone=public --add-port=6379/tcp --permanent?
firewall-cmd --zone=public --add-port=22/tcp --permanent?
firewall-cmd --zone=public --add-port=3306/tcp --permanent?
firewall-cmd --zone=public --add-port=1433/tcp --permanent?
firewall-cmd --zone=public --add-port=443/tcp --permanent?
firewall-cmd --zone=public --add-port=5432/tcp --permanent?
firewall-cmd --zone=public --add-port=1521/tcp --permanent?
14撞叽、查看開放的端口和服務
firewall-cmd --permanent --zone=public --list-services
firewall-cmd --permanent --zone=public --list-ports
注:一個服務對應一個端口,這里的服務是底層服務(例如http 插龄、ssh愿棋、ftp)打開了端口后需要打開服務才能訪問服務
15、查看可以打開的服務
firewall-cmd --get-services
16均牢、添加服務到防火墻
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --permanent --add-service=dhcpv6
firewall-cmd --permanent --add-service=dhcpv6-client
firewall-cmd --permanent --add-service=dns
firewall-cmd --permanent --add-service=docker-registry
firewall-cmd --permanent --add-service=elasticsearch
firewall-cmd --permanent --add-service=privoxy
firewall-cmd --permanent --add-service=proxy-dhcp?
firewall-cmd --permanent --add-service=smtp
firewall-cmd --permanent --add-service=smtp-submission
firewall-cmd --permanent --add-service=telnet
17糠雨、查看已經打開的服務
firewall-cmd --permanent --zone=public --list-services
18、加載防火墻新策略
?firewall-cmd --reload??
19徘跪、開啟防火墻
systemctl start firewalld.service
20甘邀、重啟防火墻
systemctl restart firewalld.service
21、開機啟動防火墻
systemctl enable firewalld.service
22真椿、如果防火墻有配置問題鹃答,可以先關掉防火墻
systemctl stop firewalld.service