服务器的安全性不言而喻,服务器安全性设置的第一步就是堵住入口.
对于linux而言,堵住入口,就是不让别人能随便进入我们的服务器里面乱搞,不然一个命令 “rm -rf / “,后果不堪设想,所以不能让别人进入我们的服务器,更加不能让别人用root用户进去,所以最好的做法就是.
在linux上面设置禁止root用户远程登录,并且修改ssh端口【因为默认的端口是22,改了设置多一层障碍】,然后我们需要登录进去的时候,就用一个没有权限的用户登录进去,然后再用su命令切换到root或者其他有权限操作的用户.
这样做了之后,别人哪怕知道服务器的ip,但是不知道端口,也不知道是要用什么用户登录,暴力破解也破解不了.
以centos为例,设置linux禁止root用户ssh远程登录,使用其他用户登录:
1、用root用户登录进去
2、使用groupadd命令新建一个login的分组,专门用于登录
# groupadd login
3、去存放组信息文件 /etc/group 里面检查login分组是否添加成功,如果在输出的信息里有 login:x:501:这样的信息,就说明成功了【后面的501并不是每台机子都一样,501是这个组的标识id,会因你服务器已经拥有的组不同而不同,默认是从500开始排序的,所以有login就是成功了】
# cat /etc/group
4、使用useradd命令新建一个 zhoumanhe 用户用于ssh远程登录,属于login分组,该用户目录在 /home/zhoumanhe 下.
# useradd zhoumanhe -g login -G login -d /home/zhoumanhe
5、去存放用户信息文件 /etc/passwd 检查用户是否添加成功,如果输出信息里面有 zhoumanhe:x:501:501::/home/zhoumanhe:/bin/bash 则说明用户添加成功,并且属于login组【因为有501,login组的标识id就是501】
# cat /etc/passwd
6、使用passwd命令给zhoumanhe用户添加一个登陆密码,刚刚添加完是还没有设置密码的.
- #passwdzhoumanhe
- Changingpasswordforuserzhoumanhe.
- Newpassword:--phpfensi.com
- Retypenewpassword:
- passwd:allauthenticationtokensupdatedsuccessfully.
特别严重的提示:其实在使用useradd命令也是可以直接为添加用户设置密码的,后面加上“ -p 要设置的密码 ”为什么独立出来,因为如果直接这样添加,存进密码文件里面的密码就是明文的,就是说你的密码是123,存进去的密码也是123,到那时linux用户的登录密码是要经过加密的,所以可能导致linux新添加的用户登录失败.
而刚刚添加完用户,su切换到新添加用户,输入passwd更改密码的时候也会提示 “Authentication token manipulation error”,因为改密码要先输入旧的密码,你输入123,但是真实的密码确实加密过了的,所以提示出错.
所以出现这个问题的朋友,可以切换到root用户,使用 “passwd 用户名”来改新添加用户的密码。想看一下成功了没有?行,打开存放密码的文件看一下就知道了,使用命令 “ cat /etc/shadow ”查看即可,如果出现了 用户名:一长字符串,那就是成功了,如果出现的是你输入的明文密码,那就重新修改密码吧.
7、这样的话就设置成功了,管理远程登录软件,试用您刚刚添加的zhoumanhe用户登录看一下吧.
8、如果成功了,那我们就可以禁止掉root用户的远程登录了.
9、使用root登录进去,如果是在刚刚添加的zhoumanhe用户,就是用直接输入su,回车,输入密码切换到root用户.
- $
- $su
- Password:
- #
10、这个的配置信息在 /etc/ssh/sshd_config 这个文件里面,所以打开这个文件
# vi /etc/ssh/sshd_config
11、找到 PermitRootLogin yes 这一句,将yes改成no,退出保存;
PermitRootLogin no
12、修改了ssh的配置文件,所以还得重启一下ssh服务才能生效,输入以下命令重启:
# service sshd restart
13、然后就重新使用ssh软件,使用root用户登录看一下吧,在login as:后面输入root,然后回车,让你输入密码,输入密码之后,是不是发现密码是正确的,但是提示”Access denied”,说明root已经被禁止掉ssh远程登录了.
14、我们就更改一下centos使用ssh远程登录的端口,还是打开 /etc/ssh/sshd_config 这个文件.
# vi /etc/ssh/sshd_config
15、找到 #Port 22 这一行,把前面的#去掉,变成 Port 22,然后回车,再下一行输入 Port 8888,然后:wq保存退出,8888就是你要设置的端口,改成你想设置的就行,一般改成一个自己好记的,但是不能是现在已经用着的端口,不然有冲突.
- #Port22
- #改成如下
- Port22
- Port8888
这样是不是就有了两行的Port了?没错,就是要两行,22那一行是用于以防万一的,为了避免,我们设置的另外一个端口万一登录不上,我们还可以使用22端口登录上去改,不然没有预留22端口,自己新添加的那个也登录不上去,那就只有联系客服吧.
16、刚刚我们知道,修改了ssh的配置文件,需要重启ssh服务器。
17、使用刚刚的那个端口登录看一下吧,成功了?,成功了就可以再次打开 /etc/ssh/sshd_config这个文件把 Port 22 这一行删除掉,然后再次保存退出,重启ssh服务。
18、到了这里,我们的“linux禁止root用户ssh远程登录并修改ssh远程登录端口”目的达到了,以后登录,就用新端口,新用户登录吧,登录进去再su切换root或者其他权限用户.