TencentOS Server 账户与口令安全

如何在 TencentOS Server 中配置账户和口令安全策略,包括 su/sudo 权限管理、密码策略配置、root 远程登录限制等,以提高系统安全性。

相关产品
TencentOS Server 产品页,含版本规格、价格与购买入口。

一、配置 su

在 TencentOS Server 系统中,正确配置 su 对于提高系统安全性同样重要。通过限制 su 命令的使用范围,可以降低权限滥用风险。

二、禁止普通用户直接使用 su 命令

只允许 wheel 组的用户切换到 root 用户。编辑 /etc/pam.d/su 文件,找到如下行:

#auth required pam_wheel.so use_uid

取消注释并保存:

auth required pam_wheel.so use_uid

三、添加用户到 wheel 组

将需要使用 su 命令的用户添加到 wheel 组中:

sudo usermod -aG wheel <username>

四、设置强制密码策略

为了增强系统安全性,可以通过 PAM(Pluggable Authentication Modules)配置强制密码策略。

五、密码复杂度

编辑 /etc/pam.d/system-auth 文件,添加或修改以下行以设置密码复杂度策略:

password requisite pam_pwquality.so try_first_pass local_users_only retry=3 minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok

各参数含义:

参数 说明
minlen=8 密码最少 8 个字符
dcredit=-1 至少包含 1 个数字
ucredit=-1 至少包含 1 个大写字母
lcredit=-1 至少包含 1 个小写字母
ocredit=-1 至少包含 1 个特殊字符
retry=3 最多允许 3 次尝试

六、密码过期策略

通过 chage 命令或修改 /etc/login.defs 文件来设置密码过期策略:

编辑 /etc/login.defs,修改以下参数:

PASS_MAX_DAYS 90 # 密码最大使用天数PASS_MIN_DAYS 1 # 密码最小使用天数(防止短时间内修改密码)PASS_WARN_AGE 7 # 密码过期前 7 天警告

对已有用户设置密码过期策略:

# 设置用户密码 90 天过期sudo chage –maxdays 90 <username># 查看用户密码过期信息sudo chage -l <username>

七、密码历史限制

防止用户重复使用近期用过的密码。编辑 /etc/pam.d/system-auth,在 pam_unix.so 行之前添加:

password required pam_pwhistory.so remember=5 use_authtok

该配置将记住最近 5 次密码,用户不能重复设置。

八、限制 root 用户远程登录

禁止 root 用户通过 SSH 远程登录,可以降低暴力破解攻击风险。

编辑 SSH 配置文件:

sudo vi /etc/ssh/sshd_config

找到以下行:

#PermitRootLogin prohibit-password

修改为:

PermitRootLogin no

注意:若 sshd 配置存在错误,重启服务后可能无法建立新的 SSH 连接。请你在重启前执行 sudo sshd -t 验证配置语法,并保持当前会话不断开,重启后先确认新的 SSH 连接可正常建立,再断开当前会话。

重启 sshd 服务:

sudo systemctl restart sshd

九、配置 sudo

sudo 允许普通用户以其他用户身份(通常是 root)执行命令,相比 su 更灵活且可审计。建议使用 sudo 替代 su 进行日常管理操作。

十、安装 sudo

TencentOS Server 默认安装 sudo。如未安装,可切换至 root 用户后执行以下命令安装:

dnf install sudo

十一、编辑 sudoers 文件

使用 visudo 命令安全地编辑 sudoers 文件:

sudo visudo

注意:警告:始终使用 visudo 而非直接编辑 /etc/sudoers,因为 visudo 会在保存前检查语法,避免配置错误导致 sudo 不可用。

十二、常用 sudo 配置示例

允许用户执行所有命令:

<username> ALL=(ALL) ALL

允许用户组执行所有命令且无需密码:

%wheel ALL=(ALL) NOPASSWD: ALL

限制用户只能执行特定命令:

<username> ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx

十三、sudo 别名配置

为提高可维护性,可以为用户、主机和命令设置别名:

# 用户别名User_Alias ADMINS = alice, bob# 命令别名Cmnd_Alias NETWORKING = /usr/sbin/ifconfig, /usr/sbin/route, /usr/sbin/dnf# 授权ADMINS ALL=(ALL) NETWORKING

十四、sudo 日志审计

通过查看 sudo 日志,可以监控用户在系统上执行的命令。确保 sudoers 文件中启用了日志记录:

Defaults logfile=/var/log/sudo.log

默认情况下,sudo 的使用记录也会写入系统日志(/var/log/secure),定期检查这些日志以检测异常活动:

# 查看 sudo 日志sudo grep sudo /var/log/secure

十五、sudo 超时设置

为降低安全风险,可以设置 sudo 密码缓存超时时间。在 sudoers 文件中添加:

Defaults timestamp_timeout=5

该设置使 sudo 密码缓存 5 分钟后过期,用户需重新输入密码。

十六、定期更新系统和软件包

确保系统和软件包始终保持最新状态,有助于防止潜在的安全漏洞。定期运行以下命令更新系统和软件包:

sudo dnf update

赞 (0)
上一篇 5天前
下一篇 5天前