VPS 服务器安全设置:禁用root用户登录等

      VPS 服务器安全设置:禁用root用户登录等已关闭评论

Linux 服务器开好以后我通常会先做以下设置,因为安全第一。 VPS 服务器安全设置:禁用root用户登录等 ,步骤如下 :新建用户、给新用户授权、禁用 root 用户 SSH 远程登录、修改 SSH 远程连接端口等等,为什么这么做,后面设置完成以后会说原因,之前是用 Word 进行的记录,现在抄录过来更方便查询

使用我的引荐链接购买特斯拉Tesla产品可获得积分,用于兑换超级充电里程、服饰精品、车辆配件等奖品,点击此处前往官方了解详情。

新建用户

先创建一个用户名为:krisrun 的新用户

[root@localhost ~]# adduser krisrun

为新用户 krisrun 初始化密码,Linux 会判断密码的复杂程度,只要自己有办法记住密码,比如使用密码管理器,越复杂越安全,当然也可以强行忽略系统对简单密码的提示

[root@localhost ~]# passwd krisrun
更改用户 krisrun 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

给新用户授权

Linux 新建的个人用户的权限是只可以在个人的 home 目录下有完整权限,其他目录要看别人授权。经常需要 root 用户的权限才能进行很多操作,这时候用 sudo 命令可以化身为 root 用户来操作。

新建的个人用户缺省是不能使用 sudo 命令的,需要给他添加授权。sudo 命令的授权管理是在 sudoers 文件里的,可以看看 sudoers 文件在哪里:

[root@localhost ~]# sudoers
bash: sudoers: 未找到命令...
[root@localhost ~]# whereis sudoers
sudoers: /etc/sudoers /etc/sudoers.d /usr/libexec/sudoers.so /usr/share/man/man5/sudoers.5.gz

找到这个文件位置之后再查看权限:

[root@localhost ~]# ls -l /etc/sudoers
-r--r----- 1 root root 2048 4月 1日 10:08 /etc/sudoers

可以看到现在 root 用户也只有只读权限,想要修改需要先添加 w 可写权限

[root@localhost ~]# chmod -v u+w /etc/sudoers
mode of "/etc/sudoers" changed from 0440 (r--r-----) to 0640 (rw-r-----)

这样就可以对它进行修改添加内容了,用 vi 或者 vim 编辑器对它进行编辑,在 root 下面增加一行新用户的授权

[root@localhost ~]# vi /etc/sudoers

## Allow root to run any commands anywher 
root ALL=(ALL) ALL 
krisrun ALL=(ALL) ALL #这个是新增的用户

:wq 保存退出,然后收回可写权限,改回之前的权限设置

[root@localhost ~]# chmod -v u-w /etc/sudoers
mode of "/etc/sudoers" changed from 0640 (rw-r-----) to 0440 (r--r-----)

以上操作全部都是用 root 用户进行的,把新用户的以上设置做好以后可以退出 root 的用户登录,用新建用户 krisrun 进行 SSH 登录 VPS ,登录以后新用户就可以使用 sudo 命令了

[krisrun@localhost ~]$ sudo cat /etc/passwd
[sudo] password for krisrun: 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

第一次登录使用这个命令会提示你,大概意思是:你已经化身超级管理员,强大的力量带来巨大的责任。而且需要输入新用户的密码才可以进行下一步。如果使用 sudo 命令的时候不想输入密码,可以将新用户授权的最好一个 ALL 修改为 NOPASSWD:ALL,当然不建议这样做

禁用 root 用户 SSH 远程登录

上面的操作完成以后的目的就是为了禁用 root 用户远程登录服务器,因为很多机器人或者人会用 root 用户不停的尝试各种密码进行登录,而新建用户的用户名他们很难猜到,所以安全性会提高很多

要禁用 root 用户远程登录,需要修改 /etc/ssh 目录下的的 sshd_config 文件,将 PermitRootLogin 的值改成 no ,并保存

[krisrun@localhost ~]$ vi /etc/ssh/sshd_config

PermitRootLogin no

然后重启 sshd 服务

[krisrun@localhost ~]$ service sshd restart

这样 root 用户就不能使用 ssh 登录服务器了,如果要用 root 用户登录的话,在把 PermitRootLogin 的值改成 yes 就可以了

修改 SSH 远程连接端口

修改 ssh 远程连接登录端口,同样需要修改 /etc/ssh 目录下的的 sshd_config 文件

[krisrun@localhost ~]$ vi /etc/ssh/sshd_config

#Port 22        //这行去掉#号,防止配置不好以后不能远程登录,等修改以后的端口能使用以后再注释掉
Port 20000      //在Port 22下面添加这一行,改成自己想要的端口

每次修改 sshd_config 文件以后都需要重启 sshd 服务才能生效,不同的系统命令有所不同,记录一个不一样的方式

[krisrun@localhost ~]$ systemctl restart sshd.service

退出登录,然后用新的端口测试 ssh 连接,22端口登录的时候不需要添加端口号,改用除22以外的其他端口登录的时候就需要把端口号加上,加端口号登录的格式是这样:

> ssh [email protected] -p 20000

如果测试成功就可以把之前设置端口号里面的 Port 22 前面加#号注释掉,因为恶意登录的机器人或者人会从系统缺省的22端口开始尝试登录,22端口登录不了以后他们就很难猜到自己新设的端口号了,进一步增加了安全性, VPS 服务器安全设置:禁用root用户登录等 ,安全设置还可以有很多,慢慢记录

为了增加安全性,下一步设置是:用密钥登录,禁用密码登录,用另外一篇文章记录