游乐游手机版
首页/系统平台/文章详情

Linux系统安全基线配置指南与关键步骤详解

时间:2026-05-10 09:57
Linux系统安全基线是围绕账户、认证、服务和日志的动态校准过程。配置错误可能比不配置更危险。需排查UID为0的非root账户并妥善处理。pam_cracklib so配置中参数含义易误解,如minlen和带负号的credit参数,且配置位置必须正确。关闭SSH的root登录前,需确保普通用户具备密钥登录等条件。设置命令历史时,HISTSIZE与HISTTI

开门见山,直接说核心:Linux系统的安全基线,从来就不是一个可以“一键执行”的加固脚本。它更像是一套围绕账户、认证、服务和日志这四个核心维度,持续进行校准和优化的动态过程。这里有个关键认知:配置错误,有时比完全不配置更危险,尤其是在pam_cracklib.so的参数和sshd_config的逻辑顺序上,稍有不慎就可能把自己锁在门外。

Linux如何配置系统安全基线_Linux系统安全基线配置要点

如何检查系统中是否存在UID=0的非root用户

这是最基础,但也最容易被忽略的风险点。在Linux系统中,UID(用户ID)才是权限的“身份证”。只要UID为0,无论这个账户叫admin还是test,它都拥有和root完全等同的至高权限。排查方法其实很简单,一条命令就能现形:

awk -F: '($3 == 0) { print $1 }' /etc/passwd

如果输出结果里除了root还出现了其他用户名,那就必须立刻处理,别抱侥幸心理。通常的应对思路是这样的:

  • 首先确认这个账号是否为业务所必需。说实话,绝大多数情况下都不是。如果不是,最干净利落的做法就是直接删除:userdel -r
  • 如果确实需要保留这个账号(比如某些老旧应用有硬性依赖),那至少要把它的UID改掉:usermod -u 1001 。改完后,记得手动检查一下/etc/passwd文件,确保对应行的UID字段已经更新,同时注意别改乱了其他字段的顺序。
  • 最后,一定要做验证。执行id 确认UID已变更,再试试su - ,确保无法通过它获得root shell。

为什么pam_cracklib.so配置错误会导致密码设置失败

这个模块的配置堪称“陷阱之王”,很多文档照搬过来的参数,实际效果可能南辕北辙。举个例子,minlen=8并不等于“密码至少8位”——在默认规则下,它实际要求的是minlen-1,也就是7位。而dcredit=-1才真正表示“至少包含1个数字”。

最常见的错误就是漏掉了那个负号,写成dcredit=1。这下意思全反了,变成了“最多允许1个数字”,反而让密码策略变得更弱。

对于生产环境,一个兼顾安全与兼容性(适用于RHEL/CentOS 7+及Debian/Ubuntu)的最小可行配置可以参考下面这行:

password requisite pam_cracklib.so \
  retry=3 minlen=13 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 difok=3

这里有三个要点需要特别注意:

  • minlen设为13,才能确保实际生效的密码长度不低于12位(因为默认会减1)。
  • 所有credit参数(dcredit, ucredit, lcredit, ocredit)必须带负号,正数的含义是完全相反的。
  • 这行配置必须放在/etc/pam.d/system-auth文件中password [success=1 default=ignore]那一段之前,否则会被直接跳过,等于白配。

PermitRootLogin no之后普通用户连不上怎么办

很多朋友在修改/etc/ssh/sshd_config,将PermitRootLogin设为no并重启sshd服务后,发现自己也被拒之门外了。这通常不是配置本身失败了,而是前置条件没准备好。

在关闭root的SSH登录之前,必须确保以下几点:

  • 至少存在一个可用的普通用户账户。
  • 该用户的~/.ssh/authorized_keys文件中已经放置了你的公钥(优先使用密钥登录,远比密码安全)。
  • 检查/etc/shadow,确认该用户的密码哈希是有效的(不是以*!开头),否则即使PasswordAuthentication yes,你也无法用密码登录。
  • 确认sshd_config中没有AllowUsersAllowGroups等配置意外屏蔽了你准备使用的这个普通用户(比如只写了AllowUsers root)。
  • 重启服务前,务必先用sshd -t命令测试一下配置文件语法,避免因配置错误导致服务直接无法启动。

如果真的不幸被锁在外面,又没有控制台权限怎么办?这时候只能依赖云服务商提供的VNC功能,或者物理服务器的本地控制台(Console)强行登录进去,临时注释掉PermitRootLogin那行,重启sshd服务后再做调整。

历史命令时间戳和最大条数要一起设置才有效

只设置HISTSIZE=100000是没用的——因为默认HISTTIMEFORMAT为空,所有命令在history里都会挤在一起,显示同一个时间。反过来,只设置HISTTIMEFORMAT也不行——如果HISTSIZE太小(默认1000条),早期的、带有精确时间的记录很快就会被新命令挤掉。

正确的做法是在/etc/profile文件末尾统一添加以下三行:

HISTSIZE=100000
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
export HISTSIZE HISTTIMEFORMAT

添加后,执行source /etc/profile让配置在当前shell生效,然后随便运行一条命令,再用history | tail -3查看,确认时间戳已经正确显示。需要注意的是,这个设置对已经登录的会话不会立即生效,需要新开一个终端窗口才能看到效果。

来源:https://www.php.cn/faq/2448559.html
上一篇苹果电脑如何清理网盘同步冲突文件与整理Mac文件 下一篇Win10开机自动修复循环关闭与禁用方法详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送