禁用root直接登录并启用sudo机制提升Linux安全性。创建管理用户,设置强密码并授予sudo权限,通过visudo精细控制命令权限。禁止root远程SSH登录,编辑sshd_config将PermitRootLogin设为no并重启服务。结合密钥认证、修改SSH默认端口、启用防火墙及定期系统更新,构建纵深防御体系,实现安全可控的系统运维。
限制root权限是提升Linux系统安全的核心措施。直接使用root账户风险极高,一旦泄露或被利用,整个系统将完全暴露。正确做法是禁用root的直接登录,并通过sudo机制让普通管理员用户在需要时临时获取特定权限,实现操作可追溯且降低长期风险。
创建管理用户并配置sudo权限
日常运维绝不应使用root账户。应创建独立的管理用户,并通过sudo精确控制其能执行的命令。
- 创建新用户:使用adduser adminuser(Debian/Ubuntu)或useradd -m adminuser(CentOS/RHEL)创建一个标准用户。
- 设置密码:运行passwd adminuser为该用户设置强密码。
- 授予sudo权限:将用户加入sudo组(Ubuntu)或wheel组(CentOS)。执行usermod -aG sudo adminuser或usermod -aG wheel adminuser即可。
- 精细权限控制(可选):如需更细粒度控制,可编辑/etc/sudoers文件(务必使用visudo命令)。例如,允许用户无需密码重启nginx:
adminuser ALL=(ALL) NOPASSWD: /usr/sbin/service nginx restart
禁止root用户远程SSH登录
这是最基本也是最重要的安全步骤,能有效阻止自动化脚本对root账户的暴力破解。
- 编辑SSH服务配置文件:sudo vi /etc/ssh/sshd_config。
- 找到PermitRootLogin这一行。如果前面有#号注释,请先去掉。将其值从yes改为no。
- 保存文件后,重启SSH服务使配置生效:sudo systemctl restart sshd。
- 此后,只能用普通管理用户通过SSH登录,再通过sudo执行高权限命令,或用su -切换到root(需知道root密码)。
强化基础安全配置
限制root权限只是起点,还需结合其他措施构建纵深防御。
- 强制使用密钥认证:在/etc/ssh/sshd_config中设置PasswordAuthentication no,仅允许SSH密钥登录,极大提升远程访问安全性。
- 修改SSH默认端口:将Port 22改为一个非常用端口(如2222),可减少大量针对22端口的扫描和攻击。
- 启用防火墙:使用ufw或firewalld,只开放必要的服务端口(如修改后的SSH端口、HTTP/HTTPS等),关闭所有无关端口。
- 保持系统更新:定期运行sudo apt update && sudo apt upgrade(Debian/Ubuntu)或sudo yum update(CentOS),及时修补已知漏洞。
基本上就这些。核心思路就是“禁用root直登,善用sudo提权”。不复杂但容易忽略。
linux word centos nginx 防火墙 端口 ubuntu 配置文件 linux系统 nginx http https linux ubuntu centos ssh debian 自动化