博士云

Linux服务器安全加固怎么做?

2026-07-21 11:00 技术服务 23 阅读

Linux服务器安全加固怎么做?——一份实用、可落地的操作指南

在当今数字化环境中,Linux服务器作为企业核心基础设施的承载平台,承担着网站托管、数据库服务、API网关、容器编排等关键任务。然而,开放性与灵活性也意味着更高的暴露面——未及时更新的内核、弱密码策略、冗余服务端口、权限配置不当等问题,都可能成为黑客入侵的突破口。据CVE统计,2023年披露的高危漏洞中,约41%涉及Linux发行版相关组件;而Verizon《2024数据泄露调查报告》指出,配置错误(Misconfiguration)仍是服务器被攻陷的首要原因,占比达27.3%。

一、加固前的必要准备:风险评估与基线扫描

安全加固不是盲目执行命令,而是以风险为导向的系统工程。建议在操作前完成三项基础工作:

  • 资产清点:使用hostnamectl、lsb_release -a确认OS版本与内核;通过systemctl list-unit-files --type=service --state=enabled梳理所有开机自启服务;运行ss -tuln或netstat -tuln识别监听端口及对应进程。
  • 漏洞扫描:部署开源工具如Trivy(支持OS包与容器镜像扫描)或OpenSCAP,结合CIS Linux Benchmarks(如CIS Ubuntu 22.04 Level 1)生成合规差距报告。
  • 备份与快照:对/etc、/boot、/var/log等关键目录执行tar -czf backup-$(date +%Y%m%d).tar.gz /etc /boot /var/log;若为云主机,务必创建系统盘快照——博士云建议将快照保留周期设为7天,便于回滚验证。

二、账户与认证层加固

90%以上的暴力破解攻击始于SSH登录环节。必须从身份认证源头堵住漏洞:

1. 禁用root远程登录

编辑/etc/ssh/sshd_config,设置:
PermitRootLogin no
AllowUsers deploy admin(显式授权可信用户)
重启服务:sudo systemctl restart sshd

2. 强制密钥认证 + 密码失效

生成ED25519密钥对:ssh-keygen -t ed25519 -C "admin@company.com";将公钥追加至~/.ssh/authorized_keys;配置PasswordAuthentication no并禁用PAM密码模块(注释@include common-auth行)。

3. 登录失败锁定机制

安装faillock(RHEL/CentOS)或libpam-faillock(Debian/Ubuntu),在/etc/pam.d/common-auth中添加:
auth [default=ignore] pam_faillock.so preauth silent audit deny=5 unlock_time=900
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=900

三、网络与服务层最小化原则

遵循“默认拒绝”原则,关闭一切非必要服务:

  • 停用IPv6若无需支持:sysctl -w net.ipv6.conf.all.disable_ipv6=1,并在/etc/sysctl.conf中持久化。
  • 限制SSH访问源IP:iptables -A INPUT -p tcp --dport 22 -s 192.168.10.0/24 -j ACCEPT(替换为运维网段),再追加iptables -A INPUT -p tcp --dport 22 -j DROP。
  • 禁用废弃服务:sudo systemctl disable avahi-daemon cups bluetooth rpcbind(根据实际环境裁剪)。

四、文件系统与权限精细化管控

利用Linux原生机制实现纵深防御:

• 使用ACL细化权限

例如为Web日志目录授予审计组读写权:setfacl -m g:audit:rwx /var/log/nginx,避免全局chmod 777。

• 启用Immutable属性防篡改

对关键配置文件(如/etc/passwd、/etc/shadow)执行:chattr +i /etc/passwd(需先卸载SELinux或调整策略)。

• 配置审计规则监控敏感操作

在/etc/audit/rules.d/custom.rules中添加:
-w /etc/shadow -p wa -k identity
-w /usr/bin/sudo -p x -k sudo_exec
加载规则:sudo augenrules --load。

五、持续监控与应急响应

加固不是一次性动作。推荐部署:

  • 日志集中化:使用rsyslog或Fluent Bit将/var/log/auth.log、/var/log/secure推送至ELK或Loki集群,设置SSH失败告警阈值(如5分钟内10次失败)。
  • 进程行为白名单:部署OSSEC HIDS,定义合法进程路径与启动参数,自动阻断异常子进程。
  • 定期红蓝对抗:每季度执行一次模拟渗透测试(如使用Metasploit验证SSH密钥强度、Nmap扫描开放端口是否合规),更新加固策略。

六、进阶建议:容器化与云环境适配

若服务器运行Docker/Kubernetes,需叠加以下措施:

  • 禁用--privileged模式;为容器指定非root用户(USER 1001);挂载/proc为只读。
  • 云平台启用VPC流日志、安全组动态策略(如博士云控制台支持基于标签的自动策略更新)。
  • 使用USEGVP0202A等硬件级可信执行环境(TEE)模块,保护密钥与敏感计算逻辑。

最后强调:安全加固需平衡可用性与防护强度。切忌为追求“满分评分”而禁用必要服务,应以业务连续性为底线,建立版本化加固脚本(Ansible Playbook)、定期复盘变更影响。真正的安全,始于每一次严谨的sudo确认,成于每一处细节的敬畏之心。

Linux服务器安全加固 SSH安全配置 防火墙iptables设置 系统权限最小化 安全基线扫描 CIS Linux标准 服务器漏洞防护 日志审计监控