跳到主要内容

CentOS 账户安全

介绍

在CentOS系统中,账户安全是系统安全的基础。无论是个人用户还是企业服务器,账户的安全性都至关重要。一个未加固的账户可能成为攻击者的突破口,导致数据泄露、系统崩溃甚至更严重的后果。本文将逐步讲解如何通过账户管理、密码策略和权限控制来加固CentOS系统的账户安全。

1. 账户管理

1.1 创建和删除用户

在CentOS中,用户账户的管理是系统安全的第一步。通过创建和删除用户,可以确保只有授权用户能够访问系统。

创建用户

使用以下命令创建一个新用户:

bash
sudo adduser username

删除用户

使用以下命令删除一个用户:

bash
sudo deluser username
备注

删除用户时,系统会提示是否删除用户的主目录和邮件文件。建议在删除用户时一并删除这些文件,以避免潜在的安全风险。

1.2 禁用和启用用户

在某些情况下,可能需要暂时禁用某个用户账户,而不是永久删除它。

禁用用户

使用以下命令禁用用户:

bash
sudo usermod --expiredate 1 username

启用用户

使用以下命令重新启用用户:

bash
sudo usermod --expiredate "" username

2. 密码策略

2.1 设置密码复杂度

强密码是账户安全的关键。CentOS允许通过PAM(Pluggable Authentication Modules)模块来设置密码复杂度。

编辑PAM配置文件

打开 /etc/pam.d/system-auth 文件,并添加以下行:

bash
password requisite pam_pwquality.so try_first_pass retry=3 minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1
  • minlen=12:密码最小长度为12个字符。
  • dcredit=-1:密码中至少包含一个数字。
  • ucredit=-1:密码中至少包含一个大写字母。
  • ocredit=-1:密码中至少包含一个特殊字符。
  • lcredit=-1:密码中至少包含一个小写字母。

2.2 设置密码过期策略

为了防止用户长期使用同一个密码,可以设置密码过期策略。

编辑 /etc/login.defs 文件

修改以下参数:

bash
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
  • PASS_MAX_DAYS 90:密码最长使用90天。
  • PASS_MIN_DAYS 7:密码最短使用7天。
  • PASS_WARN_AGE 14:密码过期前14天提醒用户。

3. 权限控制

3.1 使用 sudo 提升权限

在CentOS中,sudo 是一个强大的工具,允许普通用户以超级用户的权限执行命令。通过合理配置 sudo,可以限制用户的操作范围,减少系统风险。

编辑 /etc/sudoers 文件

使用 visudo 命令编辑 /etc/sudoers 文件,添加以下行:

bash
username ALL=(ALL) NOPASSWD: /usr/bin/apt-get update
  • username:允许使用 sudo 的用户。
  • NOPASSWD:允许用户在不输入密码的情况下执行特定命令。
警告

谨慎使用 NOPASSWD,因为它会降低系统的安全性。只有在绝对必要时才使用。

3.2 限制用户登录

在某些情况下,可能需要限制特定用户的登录方式或时间。

使用 pam_time 模块

编辑 /etc/security/time.conf 文件,添加以下行:

bash
login; *; username; !Al0000-2400
  • username:要限制的用户。
  • !Al0000-2400:禁止该用户在任意时间登录。

4. 实际案例

案例1:防止暴力破解

假设你发现某个用户账户频繁被尝试登录,可能是暴力破解攻击。你可以通过以下步骤来加固账户安全:

  1. 禁用该用户账户:使用 usermod --expiredate 1 username 命令暂时禁用该账户。
  2. 设置强密码策略:确保所有用户都使用强密码,并定期更换密码。
  3. 启用SSH密钥认证:禁用密码登录,仅允许SSH密钥认证。

案例2:限制管理员权限

假设你有一个开发团队,需要限制他们对生产服务器的操作权限。你可以通过以下步骤来实现:

  1. 创建专用用户组:使用 groupadd developers 创建一个新的用户组。
  2. 分配权限:使用 sudo 配置,仅允许该组用户执行特定命令。
  3. 监控日志:定期检查 /var/log/secure 日志文件,确保没有未授权的操作。

总结

通过合理的账户管理、密码策略和权限控制,可以显著提高CentOS系统的安全性。本文介绍了如何创建和删除用户、设置密码复杂度、配置 sudo 权限以及限制用户登录等关键步骤。希望这些内容能帮助你更好地保护你的CentOS系统。

附加资源

练习

  1. 创建一个新用户,并为其设置强密码。
  2. 配置 sudo,允许该用户在不输入密码的情况下执行 apt-get update 命令。
  3. 设置密码过期策略,要求用户每30天更换一次密码。