Linux Exploit检测与修复全流程指南
使用专业工具快速识别系统已知漏洞,覆盖操作系统、应用程序及网络服务。常见工具包括:
nessus scan --scanner localhost --target <目标IP>命令启动扫描,生成详细报告。trivy fs --security-checks vuln /命令扫描本地文件系统。lynis audit system命令生成安全报告,帮助定位未修复漏洞。分析系统日志识别可疑行为(如暴力破解、未授权访问),及时发现exploit尝试。重点关注以下日志文件:
/var/log/auth.log(Ubuntu/Debian)、/var/log/secure(CentOS/RHEL),使用grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c命令统计失败登录次数,识别暴力破解IP。/var/log/syslog,监控异常进程启动、服务重启或文件修改,使用tail -f /var/log/syslog实时查看最新日志。检测系统关键文件(如/etc/passwd、/etc/shadow、/bin/bash)的未授权更改,识别rootkit或恶意篡改。常用工具:
aideinit初始化数据库,定期运行aide --check对比文件哈希值,生成差异报告。/etc/tripwire/twpol.txt定义监控规则。Bandit针对Python项目)审查代码,检测SQL注入、XSS等漏洞;命令bandit -r /path/to/project生成风险评估报告。Lynis或手动检查配置文件(如/etc/ssh/sshd_config),确保禁用root直接登录(PermitRootLogin no)、限制SSH端口(Port 22改为非标准端口)。及时更新系统和软件包是修复已知漏洞的核心措施。根据发行版选择对应命令:
sudo apt update && sudo apt upgrade -y(更新软件包列表并升级所有可升级包)。sudo yum update -y(更新所有软件包);内核更新后需重启系统:sudo reboot。sudo apt install bash/sudo yum update bash),验证修复:env x='() { :;}; echo vulnerable' bash -c "echo this is a test",修复后应无“vulnerable”输出。sudo apt install linux-image-generic;CentOS:sudo yum update kernel),重启后通过uname -r确认内核版本高于4.8.3-0。/etc/vsftpd/vsftpd.conf,设置anonymous_enable=NO(禁用匿名登录)、chroot_local_user=YES(限制用户目录),重启服务:sudo systemctl restart vsftpd。sudo systemctl stop telnet.socket && sudo systemctl disable telnet.socket,减少攻击面。UFW(Ubuntu)或firewalld(CentOS)限制入站流量,仅允许必要端口(如SSH的22/tcp):sudo ufw enable && sudo ufw allow ssh。/etc/ssh/sshd_config中设置PermitRootLogin no),使用sudo分配精细化权限(sudo visudo添加user1 ALL=(ALL) NOPASSWD: /usr/sbin/service sshd restart)。sudo setenforce 1;AppArmor配置文件位于/etc/apparmor.d/,使用sudo aa-enforce /etc/apparmor.d/usr.sbin.sshd强化SSH。/var/log/sshd日志,自动封禁恶意IP(如5分钟内失败5次),安装后启动服务:sudo systemctl enable --now fail2ban。sudo systemctl enable --now unattended-upgrades),每月手动检查一次更新。/etc、/home),使用rsync或云存储,确保漏洞攻击后可快速恢复。