CentOS 7创建新用户及ssh安全登录配置

一、新建一个用于ssh登录的用户

adduser clowlido

创建新用户clowlido。

passwd clowlido

为clowlido设置密码。

二、限制可以切换到root的用户
仅允许wheel组的用户切换到root。

vi /etc/pam.d/su
auth required pam_wheel.so use_uid

去掉上面这行前面的#。

vi /etc/login.defs
SU_WHEEL_ONLY yes

在文末添加这行。

gpasswd -a clowlido wheel

把新用户clowlido加入wheel组。

lid -g wheel

查询所有wheel组的用户。

到这里可以从root下,切换到clowlido,然后测试sudo和su -l是否正常。

su clowlido

切换到新建的clowlido用户

sudo ls

测试sudo是否有效,输入root密码后,如果执行了ls,为正常。

su -l

切换到root,输入root密码后,切换root的login shell,为正常。

三、配置ssh使用自定义端口
目标是要禁止root及其他用户远程登录,但是首先要确定使用新建的clowlido用户可以通过ssh登录。
如果你没测试就禁用了root,之后发现所有用户都无法登录,就太欢乐了。
VPS还好,有Console或VNC。实体机只能跑去机房本地操作。

断开现有ssh连接或新建连接,确认clowlido可以通过ssh登录。

su -l

登录后切换到root继续操作。

vi /etc/ssh/sshd_config

修改ssh协议版本和端口号。

Protocol 2

使用sshv2协议。

Port 20001

修改ssh端口为20001。

firewall-cmd --permanent --zone=public --add-port=20001/tcp

防火墙开放新ssh端口20001。

firewall-cmd --reload

防火墙重载,使配置生效。

systemctl restart sshd

重启sshd服务。

确认clowlido可以ssh新端口20001登录。登录后切换到root继续操作。

su -l

关闭原来ssh默认的22端口。

firewall-cmd --list-ports

查看是否开启了22端口。

firewall-cmd --permanent --remove-port=22/tcp

如果看到22的话,移除端口。

如果没有看到22的话,估计是开放的服务。

firewall-cmd --list-services

查看firewall开放的服务。
看到ssh的话,就确认是服务了。

vi /usr/lib/firewalld/services/ssh.xml

修改firewalld的ssh.xml。

<port protocol="tcp" port="20001"/>

将端口改为新端口20001。

firewall-cmd --permanent --zone=public --remove-port=20001/tcp

因为使用服务,所以把之前添加的端口移除。

firewall-cmd --reload

防火墙重载,使配置生效。

接下来对登录用户进行限制。

vi /etc/ssh/sshd_config

增加下面两条。

PermitRootLogin no

禁止root远程登录,VPS控制台或本地可以登录。

AllowUsers clowlido

放最后即可,仅允许clowlido用户登录。

systemctl restart sshd

重启sshD服务。
结束。

发表评论

电子邮件地址不会被公开。 必填项已用*标注