
核心要点(TL;DR)
- 基线检查是主机安全加固的第一步,使用自动化工具可快速发现配置弱点。
- 最小权限原则要求账户、文件和服务均按需授权,避免过度授权。
- 补丁管理应建立定期更新机制,优先修复高危漏洞。
- 加固后需持续监控和定期复查,确保安全状态不退化。
为什么你的主机总在“裸奔”?
很多运维人员把服务器上线当作终点,却忽略了安全加固才是起点。默认配置、弱口令、未打补丁的服务,每一个都可能成为入侵入口。本文从实战角度出发,提供一套可立即执行的主机安全加固清单,涵盖基线检查、最小权限和补丁管理,帮你把主机从“裸奔”状态拉回安全线。
基线检查:快速发现配置弱点
基线检查是加固的第一步,目的是识别与安全标准的偏差。推荐使用自动化工具,例如Lynis,执行以下命令安装并运行:
# Debian/Ubuntu
apt install lynis -y
lynis audit systemLynis会输出详细报告,重点关注“Suggestions”部分。手动检查时,务必确认以下关键项:
- SSH配置:禁用root登录(PermitRootLogin no)、禁用密码认证(PasswordAuthentication no)、修改默认端口。
- 账户安全:检查空口令账户:
awk -F: '(=="") {print }' /etc/shadow;锁定不必要的账户:usermod -L username。 - 文件权限:查找全局可写文件:
find / -xdev -type f -perm -0002 -print;检查SUID文件:find / -xdev -perm -4000 -type f -print。
建议每月执行一次全面扫描,并将结果存档对比。
最小权限:账户、文件与服务
最小权限原则要求每个主体只拥有完成其任务所必需的最小权限。落地时从三方面入手:
账户权限
- 禁止共享账户,一人一账号。
- 使用sudo进行权限提升,配置
/etc/sudoers时遵循最小化原则,例如只允许特定命令。 - 设置强密码策略:安装
libpam-pwquality,修改/etc/pam.d/common-password,添加password requisite pam_pwquality.so retry=3 minlen=12 difok=3。
文件权限
- 敏感文件(如
/etc/shadow)权限应为600,属主root。 - 家目录权限建议750,避免其他用户读取。
- 上传目录禁止执行权限:
chmod -x /path/to/upload。
服务隔离
- 使用systemd的沙箱选项,在服务单元文件中添加:
PrivateTmp=true、NoNewPrivileges=true、ProtectSystem=strict。 - 为每个服务创建独立用户,例如:
useradd -r -s /sbin/nologin myservice。
补丁管理:别让漏洞成为后门
未修复的漏洞是攻击者的首选目标。建立补丁管理流程:
- 订阅安全公告:关注CVE和厂商通告,如Red Hat Security Advisories。
- 测试环境验证:先在测试环境应用补丁,确保业务兼容。
- 自动化更新:对于安全更新,配置自动安装。Debian/Ubuntu使用
unattended-upgrades:dpkg-reconfigure -plow unattended-upgrades;RHEL/CentOS使用yum-cron:yum install yum-cron -y && systemctl enable --now yum-cron。 - 紧急补丁流程:高危漏洞(如CVSS≥9.0)应在24小时内修复,并准备回滚方案。
定期使用apt list --upgradable或yum check-update检查待更新包。
加固检查清单与对比
以下清单可用于快速自查:
| 检查项 | 安全标准 | 检查命令 |
|---|---|---|
| SSH root登录 | 禁用 | grep PermitRootLogin /etc/ssh/sshd_config |
| 密码认证 | 禁用 | grep PasswordAuthentication /etc/ssh/sshd_config |
| 空口令账户 | 无 | awk -F: '(=="") {print }' /etc/shadow |
| 全局可写文件 | 无 | find / -xdev -type f -perm -0002 -print |
| 安全更新 | 已安装 | apt list --upgradable | grep -i security |
对于需要集中管理的场景,可考虑使用AegisX的主机安全加固功能,它提供自动化基线检查和合规报告,减少手动工作量。
行动建议:从今天开始加固
安全加固不是一次性的任务,而是持续的过程。建议立即执行以下三步:
- 运行一次基线扫描,根据报告修复高危项。
- 审查所有账户权限,删除或锁定多余账户。
- 配置自动安全更新,并安排每周检查补丁状态。
记住,每修复一个弱点,就少一个被入侵的可能。动手吧,你的服务器值得更安全。
常见问题(FAQ)
如何快速进行Linux主机基线检查?
可以使用开源工具如Lynis或OpenSCAP进行自动化扫描。Lynis通过执行lynis audit system命令,生成详细的安全审计报告,涵盖文件权限、服务配置、内核参数等。OpenSCAP则基于SCAP标准,提供合规性检查。对于手动检查,重点关注SSH配置、账户列表、SUID文件等。建议每月至少执行一次全面扫描,并及时修复发现的问题。
最小权限原则在Linux中如何落地?
落地最小权限需从账户、文件和进程三方面入手。账户方面,禁用不必要的账户,设置强密码策略,使用sudo进行权限提升而非直接使用root。文件方面,确保敏感文件权限为600或更严格,目录权限为750。进程方面,使用systemd的PrivateTmp、NoNewPrivileges等选项限制服务权限。定期使用find命令检查全局可写文件和SUID/SGID文件,及时修正异常权限。
补丁管理有哪些最佳实践?
补丁管理应建立标准化流程:首先,订阅安全公告,关注CVE信息;其次,在测试环境验证补丁兼容性;然后,使用自动化工具如unattended-upgrades(Debian/Ubuntu)或yum-cron(RHEL/CentOS)定期安装安全更新;最后,记录补丁应用情况并审计。对于关键系统,建议每周检查一次更新,高危漏洞应在24小时内修复。同时,确保有回滚方案,避免补丁导致业务中断。
如何检查主机是否存在弱口令?
使用工具如John the Ripper或Hydra进行内部弱口令扫描,但需谨慎避免触发账户锁定。更安全的方法是使用PAM模块pam_pwquality强制密码复杂度,并定期检查/etc/shadow中密码哈希强度。对于SSH,禁用密码登录,改用密钥认证,可从根本上消除弱口令风险。此外,审计所有系统账户,确保无空口令账户,可通过awk -F: '(=="") {print }' /etc/shadow命令检查。
主机加固后如何验证效果?
加固后应进行漏洞扫描和渗透测试验证。使用Nmap扫描开放端口,确认仅必要服务暴露;使用Nessus或OpenVAS进行漏洞评估;检查日志监控是否生效。同时,模拟攻击测试如尝试弱口令登录、提权等,验证防护措施。建议每次变更后重新运行基线检查工具,对比差异。持续监控可通过OSSEC或Wazuh等HIDS实现,确保安全状态持续有效。