系统日志是检测攻击的“第一现场”,需重点关注身份验证日志(/var/log/auth.log,Ubuntu特有)、系统日志(/var/log/syslog)及审计日志(/var/log/audit/audit.log,需安装auditd)。
grep "Failed password" /var/log/auth.log查找多次失败的登录尝试(如针对root账户的暴力破解);grep "Accepted password" /var/log/auth.log确认成功登录的来源IP和时间(非正常时间段的登录需警惕)。tail -n 100 /var/log/syslog查看近期系统事件,grep -i "error\|fail\|critical" /var/log/syslog过滤异常信息(如服务崩溃、内核警告),例如SSH服务被异常终止后重启(sshd.service: Main process exited, code=killed)可能暗示攻击者在掩盖行踪。auditd):通过ausearch -m USER_CMD -ts today查看用户执行的命令,ausearch -f /etc/passwd检查对敏感文件(如/etc/passwd、/etc/shadow)的访问,非root用户执行cat /etc/shadow等需要高权限的操作可能是权限提升攻击的迹象。借助专业工具主动检测系统漏洞、恶意软件及异常文件,提升检测效率:
sudo clamscan -r /(递归扫描整个系统),可检测病毒、木马等恶意文件。perl linux-exploit-suggester.pl -k 5.4.0-42-generic(替换为当前内核版本),获取针对性漏洞信息。sudo lynis audit system,生成详细报告(包括未修复的漏洞和建议)。sudo systemctl enable --now fail2ban,它会监控/var/log/auth.log,当检测到多次失败登录时,自动将IP加入防火墙黑名单(默认封禁1小时)。部署IDS实时监控网络流量和系统活动,及时发现并响应攻击:
sudo add-apt-repository ppa:oisf/suricata-stable && sudo apt install suricata),修改配置文件/etc/suricata/suricata.yaml(设置HOME_NET为本地子网,如192.168.1.0/24;启用规则重新加载:detect-engine: - rule-reload: true),更新规则sudo suricata-update,启动服务sudo systemctl enable --now suricata。通过tail -f /var/log/suricata/fast.log查看实时警报(如检测到SQL注入、端口扫描等攻击)。攻击者常通过提升权限或创建非法账户获取系统控制权,需定期审查:
cat /etc/passwd查看所有用户,重点检查是否有未授权的账户(如名为hacker、test的账户),或UID为0的非root账户(如-rwsr-xr-x 1 hacker hacker 1234 Jan 1 10:00 /bin/bash中的s表示SUID权限,可能被滥用)。find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -ld {} \; 2>/dev/null查找具有SUID(-rwsr-xr-x)或SGID(-rwxr-sr-x)权限的文件,异常的SUID文件(如/tmp目录下的SUID二进制文件)可能是攻击者用于权限提升的工具。AIDE(高级入侵检测环境)监控文件系统的变化。安装后运行sudo aideinit初始化数据库,之后定期运行sudo aide --check,对比当前文件状态与初始数据库,检测未经授权的文件修改(如/etc/passwd、/etc/shadow、系统二进制文件)。通过网络流量监控发现异常连接,识别端口扫描、数据外泄等攻击:
netstat -tulnp查看当前活跃的网络连接(ESTABLISHED状态的陌生端口需警惕),lsof -i :80检查特定端口(如80、443)的服务进程;sudo tcpdump -i eth0 -w capture.pcap捕获网络流量(保存为.pcap文件),使用Wireshark分析异常流量(如大量SYN包、异常的DNS请求)。sudo systemctl start ntopng,通过Web界面查看流量统计(如Top Talkers、协议分布),识别异常流量(如某IP地址大量占用带宽)。