Linux安全防护需构建多层防御体系:防火墙(nftables默认DROP策略、限频防爆破)、入侵检测(Suricata+fail2ban联动封禁)、系统加固(停非必要服务、禁root远程登录、启用SELinux/AppArmor)及自动化监控闭环(文件校验、auditd审计、日志关联分析)。

Linux系统安全防护的核心在于构建多层防御体系,防火墙是第一道屏障,入侵检测是主动感知威胁的眼睛,系统加固则是夯实底层根基的关键动作。三者协同才能有效抵御常见攻击。
iptables/nftables防火墙策略配置
现代Linux发行版逐步转向nftables替代iptables,但原理相通:基于规则链(input、output、forward)匹配数据包并执行动作(accept、drop、reject)。关键不是堆砌规则,而是遵循最小权限原则。
建议操作:
- 默认策略设为DROP,仅显式放行必要端口(如SSH 22、HTTP 80/HTTPS 443),避免开放高危端口(如23/Telnet、139/445/SMB)
- 限制SSH连接频率,用recent模块防暴力破解:nft add rule ip filter input tcp dport 22 ct state new limit rate 3/minute burst 5 packets counter accept
- 封禁已知恶意IP段或扫描源,可定期从 AbuseIPDB 或 Emerging Threats 获取黑名单并自动加载
基于Snort或Suricata的轻量级入侵检测部署
在服务器资源有限时,不需全功能IDS平台,用Suricata配合社区规则集即可实现基础流量分析。重点不是开启全部规则,而是聚焦高危行为识别。
实用要点:
- 启用HTTP、TLS、SSH协议解析模块,识别SQL注入、目录遍历、暴力登录等特征
- 将alert日志输出到本地文件或rsyslog,配合logrotate防止日志撑爆磁盘
- 结合fail2ban读取Suricata告警日志,自动封禁触发规则的源IP(例如连续5次HTTP异常请求即加入iptables DROP链)
系统服务与账户层面的安全加固
多数入侵并非绕过防火墙,而是利用暴露服务漏洞或弱口令进入。加固要从“减法”开始——关闭不用的服务,收紧权限边界。
必须执行项:
- 用systemctl list-unit-files --type=service | grep enabled检查开机自启服务,停用telnet、ftp、rpcbind等非必要服务
- 禁止root远程SSH登录,改用普通用户+密钥认证;设置PermitEmptyPasswords no和MaxAuthTries 3于/etc/ssh/sshd_config
- 启用SELinux或AppArmor强制访问控制,尤其对Web服务(如nginx/apache)、数据库(mysql/postgresql)限制其只能访问指定路径和端口
自动化监控与响应闭环搭建
安全不是一次配置就一劳永逸。需要建立“检测→告警→响应→验证”的小闭环,让防护具备持续运转能力。
可行方案:
- 用cron+shell脚本每日校验关键文件(/etc/passwd、/etc/shadow、/bin/bash)的md5sum,异常变动即发邮件告警
- 部署auditd监控敏感操作:如-w /etc/shadow -p wa -k shadow_access记录所有对shadow文件的读写
- 将防火墙拒绝日志(/var/log/messages或journalctl -u nftables)与入侵检测日志做时间关联分析,识别扫描→试探→攻击链条










