2026-10-18 09:29:49
Linux系统防止恶意攻击需构建多层次防御体系,涵盖基础加固、持续防护与动态响应,核心策略如下:
一、基础加固:从安装到初始配置最小化安装
安装时仅选择必要组件和服务,避免安装桌面环境、邮件服务器等非必需模块。例如,Web服务器仅需基础组件+Nginx/Apache,禁用蓝牙、打印服务等无关服务。
通过 systemctl list-unit-files --type=service 查看运行的服务,禁用未使用的服务(如 avahi-daemon、cups)。
SSH服务加固
禁用root登录:修改 /etc/ssh/sshd_config,设置 PermitRootLogin no。
强制密钥认证:禁用密码登录(PasswordAuthentication no),使用SSH密钥对认证。
修改默认端口:将端口从22改为高位端口(如2222),减少自动化扫描攻击。
限制登录用户:通过 AllowUsers 或 AllowGroups 指定允许登录的用户。
示例配置片段:
PermitRootLogin noPasswordAuthentication noPort 2222AllowUsers admin首次系统更新
安装后立即执行全量更新:
Debian/Ubuntu:sudo apt update && sudo apt upgrade -y
CentOS/RHEL:sudo dnf update -y
修复已知漏洞,避免使用过时软件包。
强密码策略
使用 pam_cracklib 或 libpam-pwquality 强制密码复杂度(长度、大小写、特殊字符)。
定期更换密码(如每90天),通过 /etc/login.defs 设置 PASS_MAX_DAYS。
强制访问控制(MAC)
SELinux/AppArmor:限制程序权限,即使程序被利用,攻击者也无法访问系统关键资源。
SELinux状态检查:sestatus,启用命令:setenforce 1。
AppArmor配置文件位于 /etc/apparmor.d/,通过 aa-status 查看状态。
自动化封禁恶意IP
Fail2ban:监控日志(如SSH、Web日志),自动封禁频繁失败登录的IP。
示例配置(封禁SSH暴力破解):
[sshd]enabled = truemaxretry = 3bantime = 3600logpath = /var/log/auth.logRootkit与文件完整性检测
rkhunter/chkrootkit:定期扫描已知Rootkit和后门。
运行命令:sudo rkhunter --check 或 sudo chkrootkit。
AIDE:监控关键文件哈希值,检测未授权修改。
初始化数据库:sudo aide --init,后续对比:sudo aide --check。
防火墙精细化配置
使用 iptables 或 firewalld 仅开放必要端口(如Web服务的80/443)。
firewalld示例:
sudo firewall-cmd --permanent --add-service={http,https}sudo firewall-cmd --permanent --remove-service=ssh # 若SSH已改端口sudo firewall-cmd --reload持续补丁管理
订阅安全公告(如CVE数据库、厂商邮件列表),及时更新所有软件(包括第三方应用如Nginx、Docker)。
使用自动化工具(如 unattended-upgrades)实现无人值守更新。
日志分析与异常监控
ELK Stack/Splunk:聚合日志,设置规则检测异常行为(如非工作时间登录、高频失败请求)。
简单脚本报警:通过 grep 过滤日志并发送邮件,例如检测SSH暴力破解:
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | awk '$1 > 5 {print $2}' | mail -s "SSH攻击警报" admin@example.com定期安全审计与漏洞扫描
Nessus/OpenVAS:扫描系统漏洞,生成报告并修复高风险项。
Nmap端口审计:定期检查开放端口,关闭非必要服务:
sudo nmap -sS -p 1-65535 localhost事件响应计划
制定应急流程:隔离受感染系统、取证分析(如 lsof -i 查看异常进程)、清除恶意软件、恢复备份。
定期演练,确保团队熟悉流程(如模拟勒索软件攻击响应)。
总结:Linux安全需结合基础加固(最小化安装、SSH加固、强密码)、工具增强(SELinux、Fail2ban、AIDE)和动态防护(持续更新、日志监控、事件响应),形成“预防-检测-响应-恢复”的闭环体系。