找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1533

积分

0

好友

203

主题
发表于 12 小时前 | 查看: 4| 回复: 0

在日常的服务器管理与运维工作中,安全配置是系统上线前不可或缺的一环。一些基础而关键的安全基线设置,能有效抵御大部分低层次的自动化攻击,为业务系统建立第一道防线。今天,我们就来梳理8个在Linux服务器上必须配置的常见安全项,帮助你从源头加强主机安全防护。

1、禁用root账户远程SSH登录

直接使用root进行远程登录是极大的安全隐患。配置此项前,请确保至少已创建一个具有sudo权限的普通用户,以便后续管理。

vi /etc/ssh/sshd_config

找到 PermitRootLogin 配置项,将其值修改为 no

# 将PermitRootLogin yes改为PermitRootLogin no
PermitRootLogin no

保存文件后,重启SSH服务使配置生效。

systemctl restart sshd

2、设置口令生存周期策略

强制用户定期更换密码,是防止密码被长期破解的有效手段。通常建议密码最大有效期不超过90天。

# 修改前备份原配置文件
cp /etc/login.defs /etc/login.defs.bak

# 编辑配置文件
vim /etc/login.defs

在文件中找到或添加以下参数并进行修改:

PASS_MAX_DAYS   90   # 密码最大使用天数,不大于90则合规
PASS_MIN_DAYS   7    # 密码更改最小间隔天数,应大于等于7
PASS_WARN_AGE   7    # 密码过期前提前警告的天数

Linux登录配置文件/etc/login.defs中的密码策略参数设置

3、配置密码复杂度要求

弱密码是安全崩塌的起点。通过PAM模块强制密码具备一定的复杂度,通常要求包含大小写字母、数字、特殊字符,且长度至少8位。

# 修改前备份
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

# 编辑PAM认证配置文件
vim /etc/pam.d/system-auth

在文件中添加或修改 password 模块的配置行:

password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1

配置参数说明

retry=3        # 密码设置失败前允许重试3次
minlen=8       # 密码最小长度为8个字符
dcredit=-1     # 密码中至少包含1位数字
ucredit=-1     # 密码中至少包含1个大写字母
ocredit=-1     # 密码中至少包含1个特殊字符
lcredit=-1     # 密码中至少包含1个小写字母

4、设置账户连续认证失败锁定策略

防止暴力破解密码,对连续输错密码的账户进行临时锁定。

vim /etc/pam.d/system-auth

在文件中增加以下两行配置。此例表示连续输入错误密码5次后,账户将被锁定180秒。

auth        required      pam_tally2.so deny=5 onerr=fail no_magic_root unlock_time=180
account     required      pam_tally2.so

Linux PAM认证模块配置,包含失败锁定策略

5、限制可使用su命令切换为root的用户

默认情况下,任何知晓root密码的用户都可以使用 su 命令切换到root。为了收紧权限,可以将其限制为仅 wheel 用户组的成员。

# 修改前备份
cp /etc/pam.d/su /etc/pam.d/su_bak
vim /etc/pam.d/su

在配置文件中添加或确保存在如下两行:

auth            sufficient      pam_rootok.so
auth            required        pam_wheel.so use_uid

配置完成后,需要将允许使用 su 切换为root的普通用户加入 wheel 组。

usermod -G wheel $username
# 请将 $username 替换为实际的用户名

PAM su配置文件,限制仅wheel组成员可切换root

6、Shell历史命令记录配置

过长的命令历史可能泄露敏感信息。合理限制历史命令的记录条数,并为其添加时间戳,便于审计。

vim /etc/profile

在文件末尾添加或修改以下配置:

# 设置历史命令带时间戳
export HISTTIMEFORMAT="%F %T "
# 设置内存中保存的历史命令条数
HISTSIZE=50
# 设置历史命令文件(.bash_history)中保存的条数
HISTFILESIZE=5

7、关键系统文件权限加固

/etc/passwd/etc/shadow 等文件记录了核心的用户认证信息,必须严格控制其访问权限。

chmod 644 /etc/passwd
chmod 644 /etc/group
chmod 400 /etc/shadow
chmod 400 /etc/gshadow

8、确保系统日志审计服务启用

完善的日志记录是事后追溯和审计分析的基础。确保 rsyslogsystemd-journald 等服务正常运行。

systemctl enable rsyslog
systemctl start rsyslog

以上列举的8项是Linux系统安全加固中最基础、也最立竿见影的配置。它们共同构成了服务器安全的基线,是抵御自动化脚本和初级攻击者的有效屏障。当然,完整的 系统安全加固 涉及网络、应用、数据等多个层面。

在实际的企业环境中,尤其是需要满足国家信息安全等级保护(等保)二级或三级要求的系统,安全部门会提供更为详尽的 安全基线 检查清单,其条目会精细和严格得多。这些配置是每一个系统管理员和运维工程师都应该掌握的基本功。如果你对更多深入的运维实践和 安全防护 话题感兴趣,欢迎到 云栈社区 与更多同行交流探讨。




上一篇:APT攻击预警:朝鲜拉撒路组织借“梦想工作”钓鱼,瞄准欧洲国防与无人机供应链
下一篇:告别手写SQL:开源工具SQLChat实现AI驱动的自然语言数据库查询
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-25 19:43 , Processed in 0.386877 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表