欢迎光临一站目录!
当前位置:一站目录 » 站长资讯 » seo优化 » 文章详细 订阅RssFeed

Linux服务器安全加固:10项关键配置速查指南

来源:一站目录 浏览:18次 时间:2026-03-10

    在当今高度互联的数字环境中,Linux服务器作为企业核心基础设施,其安全性直接关系到业务连续性和数据资产安全。尽管Linux本身具备良好的安全机制,但默认安装往往未启用最佳安全策略,极易成为攻击者的目标。本文将聚焦于可快速落地、效果显著的10项关键安全加固措施,为系统管理员提供一份简洁高效的配置速查指南,助力构建坚固的服务器防线。

    需要强调的是,安全并非一劳永逸的任务,而是一个持续改进的过程。本指南所列配置适用于主流发行版(如CentOS/RHEL、Ubuntu/Debian),建议结合具体环境灵活调整,并定期复审安全策略。

    1. 禁用或删除不必要的用户与服务

    首先,清理系统中的“冗余入口”。许多Linux发行版默认创建了一些测试账户(如games、lp、news等)或启用非必要服务(如telnet、rsh、ftp)。这些账户和服务不仅占用资源,更可能成为攻击跳板。使用cat /etc/passwd检查所有用户,对长期不用或无明确用途的账户执行userdel username删除;对于系统账户,若非必需,可通过passwd -l username锁定。同时,通过systemctl list-unit-files --type=service | grep enabled列出已启用的服务,禁用如avahi-daemon、cups、postfix(若无需邮件)等非关键服务:systemctl disable servicename。此举可大幅缩小攻击面。

    2. 强化SSH访问控制

    SSH是远程管理Linux服务器的主要通道,也是攻击者重点盯防的目标。必须对其进行严格加固。首要任务是禁止root直接登录:编辑/etc/ssh/sshd_config,设置PermitRootLogin no。其次,禁用密码认证,强制使用密钥登录(PasswordAuthentication no),并确保私钥妥善保管。此外,修改默认端口(如改为22222)可有效减少自动化扫描攻击;限制允许登录的用户组(AllowGroups ssh-users)或IP范围(配合防火墙更佳);启用LoginGraceTime 30缩短认证超时时间。完成配置后务必重启SSH服务(systemctl restart sshd),并提前测试新连接,避免被锁在服务器外。

    3. 配置并启用防火墙(firewalld/ufw/iptables)

    网络边界防护是安全体系的第一道闸门。根据发行版选择合适的防火墙工具:RHEL/CentOS推荐使用firewalld,Ubuntu/Debian则常用ufw(Uncomplicated Firewall),底层均基于iptables。基本原则是“默认拒绝,按需放行”。例如,在firewalld中,先设置默认区域为drop:firewall-cmd --set-default-zone=drop,然后仅开放必要端口(如SSH、Web服务):firewall-cmd --permanent --add-port=22222/tcp。对于ufw,执行ufw default deny incomingufw default allow outgoing,再添加规则ufw allow 22222/tcp。务必定期审查规则列表,移除过期或冗余条目。高级场景可考虑使用fail2ban动态封禁暴力破解IP。

    4. 实施严格的文件权限与所有权管理

    错误的文件权限是导致权限提升漏洞的常见原因。应遵循最小权限原则:系统关键目录(如/etc/bin/sbin)应仅对root可写;用户主目录权限建议设为700(chmod 700 /home/username);敏感配置文件(如/etc/shadow)权限应为600。定期使用find / -perm -4000 -o -perm -2000 2>/dev/null查找SUID/SGID文件,确认其必要性——这些程序以文件所有者身份运行,若被恶意利用后果严重。同时,确保Web目录(如/var/www/html)不被赋予执行权限,防止上传的脚本被执行。

    5. 启用并配置SELinux或AppArmor

    强制访问控制(MAC)机制如SELinux(RHEL系)或AppArmor(Debian系)能有效限制进程行为,即使服务被攻破也能遏制横向移动。许多管理员因兼容性问题将其关闭,实属重大隐患。建议保持启用状态,并采用“宽容模式”(permissive)先行观察日志(/var/log/audit/audit.logdmesg),根据报错逐步调整策略,最终切换至“强制模式”(enforcing)。例如,在SELinux中,可通过semanage fcontextrestorecon正确标记Web内容目录,而非简单禁用SELinux。这虽需一定学习成本,但对提升纵深防御能力至关重要。

    6. 定期更新系统与软件包

    及时修补已知漏洞是基础却常被忽视的环节。建立自动化更新机制:在CentOS/RHEL中配置yum-crondnf-automatic;在Ubuntu中使用unattended-upgrades。至少每周手动执行一次全量更新(yum updateapt upgrade)。特别关注内核、OpenSSH、OpenSSL、Apache/Nginx等高危组件。订阅CVE公告(如NVD、厂商安全通告),对无法立即更新的关键系统,应评估临时缓解措施(如WAF规则、网络隔离)。

    7. 配置全面的日志记录与集中审计

    日志是事后追溯与实时监控的眼睛。确保rsyslog或systemd-journald正常运行,并增加关键日志级别。编辑/etc/rsyslog.conf,记录认证日志(auth,authpriv.* /var/log/auth.log)、内核消息(kern.* /var/log/kern.log)等。启用auditd进行细粒度审计:监控敏感文件访问(auditctl -w /etc/passwd -p wa -k passwd_changes)、特权命令执行等。更重要的是,将日志实时同步至独立的日志服务器(通过rsyslog的TCP转发或ELK/Splunk架构),防止攻击者篡改本地日志掩盖痕迹。设置日志轮转(logrotate)避免磁盘占满。

    8. 设置强密码策略与账户锁定机制

    即便启用了SSH密钥登录,本地账户密码仍需强策略保护。通过PAM模块实现:在/etc/security/pwquality.conf中设置minlen=12dcredit=-1(需数字)、ucredit=-1(需大写)等;在/etc/pam.d/common-password(Debian)或/etc/pam.d/system-auth(RHEL)中启用pam_pwquality。同时配置账户失败锁定:使用pam_faillock模块,例如在RHEL中添加auth required pam_faillock.so preauth silent deny=5 unlock_time=900,实现5次失败后锁定15分钟。注意排除服务账户,避免误锁。

    9. 禁用IPv6(若非必需)

    许多环境尚未全面部署IPv6,但系统默认启用,可能引入未知攻击面。若确认无需IPv6,应彻底禁用。方法包括:在/etc/sysctl.conf中添加net.ipv6.conf.all.disable_ipv6 = 1net.ipv6.conf.default.disable_ipv6 = 1,执行sysctl -p生效;同时在GRUB配置中加入ipv6.disable=1/etc/default/grub),更新grub后重启。此举可简化网络配置,减少潜在漏洞点。

    10. 部署入侵检测与完整性监控工具

    主动防御的最后一环是实时感知异常。推荐部署AIDE(Advanced Intrusion Detection Environment)或Tripwire,定期扫描关键系统文件(二进制、配置文件)的哈希值变化,及时发现篡改行为。安装后初始化数据库(aide --init),将生成的aide.db.new重命名为aide.db,后续通过cron每日比对(aide --check)。同时,结合Lynis等开源审计工具定期扫描系统配置弱点,生成加固建议报告。这些工具虽不能阻止攻击,但能极大缩短响应时间。

    以上10项配置构成了Linux服务器安全加固的核心骨架。实际应用中,还需结合业务特性补充专项措施,如数据库加固、容器安全、WAF部署等。安全的本质在于“纵深防御”——没有单一银弹,唯有层层设防才能有效抵御日益复杂的威胁。建议将本文清单纳入运维Checklist,在每次新服务器上线或安全评估时逐项核验。记住:最坚固的堡垒,始于每一处细节的严谨。