CentOS 创建普通用户并禁止 Root 用户远程登录的最佳实践
在服务器管理中,直接使用 root 用户进行远程登录存在较大的安全风险。为了避免潜在的安全威胁,我们可以通过创建普通用户并禁止 root 用户远程登录来增强服务器的安全性。本文将详细介绍如何在 CentOS 系统中实现这一目标。
1. 创建普通用户并设置密码
1.1 创建普通用户
首先,我们需要创建一个普通用户。可以使用以下命令创建一个名为 test
的用户:
useradd test
创建完成后,可以通过以下命令查看用户是否创建成功:
cat /etc/passwd | grep test
1.2 设置用户密码
接下来,为 test
用户设置登录密码:
passwd test
系统会提示你输入两次密码。如果密码过于简单,系统可能会发出警告,但你可以选择继续使用该密码。为了增强安全性,建议设置一个复杂的密码。
1.3 设置密码失效日期
为了进一步管理用户密码的生命周期,可以使用 chage
命令设置密码的失效日期。例如,将密码设置为永不过期:
chage -M 99999 test
你可以通过以下命令查看密码的失效日期:
chage -l test
1.4 测试用户切换
创建用户并设置密码后,可以测试切换到 test
用户:
su - test
切换到普通用户后,你会发现无法直接切换回 root 用户,因为普通用户没有足够的权限。为此,我们需要为 test
用户分配适当的权限。
1.5 为普通用户分配权限
使用 visudo
命令可以为普通用户分配权限。执行以下命令:
visudo
在打开的文件中,找到 root
用户的权限设置(通常在文件的第 100 行左右),并在其下方添加以下内容:
test ALL=(ALL) ALL
保存并退出后,test
用户将拥有执行所有命令的权限。
1.5.1 免密码切换 root 用户(可选)
如果你希望 test
用户在切换回 root 用户时不需要输入密码,可以将权限设置为:
test ALL=(ALL) NOPASSWD:ALL
1.6 测试普通用户权限
完成权限设置后,可以测试 test
用户的功能:
# 切换到普通用户
su - test
# 使用普通用户创建文件
touch a
# 查看文件
ls
# 切换回 root 用户
sudo su -
此时,系统会提示你输入 test
用户的密码,输入正确后即可切换回 root 用户。
2. 禁止 Root 用户远程登录
为了进一步增强服务器的安全性,我们可以禁止 root 用户通过 SSH 远程登录。
2.1 修改 SSH 配置文件
首先,切换到 root 用户,并编辑 SSH 配置文件 /etc/ssh/sshd_config
:
vim /etc/ssh/sshd_config
找到 PermitRootLogin
这一行(通常在文件的第 38 行),去掉前面的注释符号 #
,并将其值改为 no
:
PermitRootLogin no
2.2 修改 SSH 端口(可选)
为了进一步增加安全性,建议修改 SSH 的默认端口(22)。找到 Port
这一行,去掉注释符号 #
,并将端口号改为一个自定义的端口号,例如 1234
:
Port 1234
2.3 重启 SSH 服务
完成上述修改后,保存并退出编辑器,然后重启 SSH 服务以使更改生效:
systemctl restart sshd
2.4 测试远程登录
重启 SSH 服务后,你可以尝试使用 root 用户远程登录服务器。此时,系统会提示你输入密码,但即使密码正确,也无法登录,因为 root 用户的远程登录已被禁止。此时,你可以使用普通用户 test
登录服务器。
3. 总结
通过创建普通用户并禁止 root 用户远程登录,可以显著提高服务器的安全性。普通用户在执行敏感操作时需要输入密码,这有助于防止误操作。同时,禁止 root 用户远程登录可以有效减少服务器被攻击的风险。建议在管理服务器时,始终遵循这些最佳实践,以确保系统的安全性和稳定性。
注意:在进行上述操作时,请确保你已经备份了重要数据,并且在修改 SSH 端口后,确保防火墙规则允许新端口的访问,以免导致无法远程连接服务器。