Linux服务器加固实战:内核参数、文件权限与SELinux调优 核心要点图解,内核参数调优可缓解SYN Flood等网络攻击,需修改sysctl.conf并生效。;文件权限应遵循最小权限原则,关键目录设置750或700,定期审计。;SELinux策略调优需理解上下文,使用semanage和audit2allow定制规则。;加固后需进行漏洞扫描和渗透测试,验证防护效果。
Linux服务器加固实战:内核参数、文件权限与SELinux调优 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 内核参数调优可缓解SYN Flood等网络攻击,需修改sysctl.conf并生效。
  • 文件权限应遵循最小权限原则,关键目录设置750或700,定期审计。
  • SELinux策略调优需理解上下文,使用semanage和audit2allow定制规则。
  • 加固后需进行漏洞扫描和渗透测试,验证防护效果。

刚装好的Linux服务器默认配置往往为了兼容性而牺牲了安全性,直接暴露在公网极易成为攻击目标。本文从内核参数、文件权限和SELinux策略三个维度,提供可立即落地的加固操作步骤与检查清单,帮助运维人员快速提升系统防御能力。

内核参数调优:抵御网络层攻击

内核参数调优是Linux服务器加固的第一道防线,尤其针对SYN Flood、IP欺骗等网络攻击。通过调整/etc/sysctl.conf中的关键参数,可显著提升系统抗攻击能力。

关键参数配置

编辑/etc/sysctl.conf,添加或修改以下参数:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.log_martians = 1

执行sysctl -p使配置生效。使用sysctl -a | grep syncookies验证。

参数说明与检查清单

参数作用建议值
tcp_syncookies防御SYN Flood1
rp_filter防IP欺骗1
accept_redirects防路由重定向攻击0

检查清单:1. 确认所有参数已写入配置文件;2. 执行sysctl -p无报错;3. 使用sysctl命令核对运行时值。

文件权限配置:最小权限原则

文件权限配置不当是提权攻击的常见入口。遵循最小权限原则,确保敏感文件和目录仅对必要用户开放。

关键目录与文件权限

使用chmod和chown设置权限:

chmod 750 /etc/sudoers.d
chmod 644 /etc/passwd
chmod 000 /etc/shadow
chmod 700 /root
chmod 750 /home/*

对于Web目录,设置chmod 750 /var/www/html,并确保属主为Web服务用户。

权限审计与修复

使用find命令查找权限过宽的文件:

find / -perm -o+w -type f -exec ls -l {} \;

对于发现的全局可写文件,使用chmod o-w移除写权限。定期运行lynis audit system进行安全审计。

SELinux策略调优:精细化访问控制

SELinux提供强制访问控制,但默认策略可能阻碍正常服务。正确调优策略而非禁用SELinux,是Linux服务器加固的关键。

查看与修改文件上下文

使用ls -Z查看文件上下文。若需修改,使用semanage fcontext -a -t httpd_sys_content_t '/web(/.*)?',然后执行restorecon -Rv /web应用。

处理AVC拒绝

当服务被拒绝时,查看/var/log/audit/audit.log,使用audit2why分析原因。生成允许策略:audit2allow -a -M mypolicy,然后semodule -i mypolicy.pp。避免使用setenforce 0永久禁用。

SELinux布尔值调整

使用getsebool -a列出所有布尔值,通过setsebool -P httpd_can_network_connect on开启所需功能,无需编写复杂策略。

加固效果验证与持续维护

完成上述配置后,需验证加固效果并建立持续维护机制。

验证步骤

  • 使用nmap扫描本机开放端口,确认无多余服务。
  • 检查/var/log/secure和/var/log/audit/audit.log,确认无异常拒绝记录。
  • 运行lynis audit system获取安全评分。

持续维护建议

定期更新系统补丁,使用yum update或apt upgrade。监控SELinux日志,及时调整策略。在防护建议方面,可考虑集成AegisX的实时监控与告警能力,自动检测异常权限变更和策略违规。

行动建议:立即备份当前配置,然后按上述步骤逐项实施。每完成一项,记录变更并测试服务可用性。加固非一劳永逸,需结合定期审计与监控,持续优化安全基线。

常见问题(FAQ)

如何检查Linux内核参数是否已优化?

使用sysctl -a命令查看当前所有内核参数,或针对特定参数使用sysctl net.ipv4.tcp_syncookies等。对比优化建议值,确认是否生效。也可检查/etc/sysctl.conf或/etc/sysctl.d/下的配置文件。

文件权限设置错误会导致哪些安全问题?

权限过宽(如777)可能导致敏感文件被任意用户读取或修改,增加数据泄露和篡改风险。例如,/etc/passwd应设为644,/etc/shadow应为000或400。定期使用find命令审计权限异常文件。

SELinux导致服务无法访问资源怎么办?

首先查看/var/log/audit/audit.log中的AVC拒绝记录,使用audit2why分析原因。可通过semanage fcontext修改文件上下文,或使用audit2allow生成允许策略。避免直接禁用SELinux。

如何永久生效内核参数修改?

将参数写入/etc/sysctl.conf或/etc/sysctl.d/99-custom.conf文件,然后执行sysctl -p加载。确保文件权限为644,避免未授权修改。

加固后如何验证效果?

使用lynis、chkrootkit等工具进行安全扫描,或进行渗透测试。检查日志中是否有异常拒绝记录,确认关键服务正常运行且权限策略生效。