恶意软件活动会在系统日志中留下痕迹,关键日志文件及作用如下:
/wp-admin、/phpmyadmin),可能是恶意软件探测Web漏洞。通过分析日志中的异常模式,可快速定位潜在威胁:
grep 'Failed password' /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
journalctl查看近期进程启动记录,若发现陌生进程名(如kworkerds、syslogd变种)、非系统路径的进程(如/tmp/下的可执行文件),需进一步排查:journalctl -xe | grep 'Started' # 查看近期启动的服务
journalctl -k | grep 'security' # 查看内核安全相关事件
ss -antp查看当前网络连接,若发现异常端口(如高位端口>49152、非标准服务端口)、陌生外部IP(如归属地为国外的IP),需检查对应进程:ss -antp | grep ESTAB # 查看已建立的连接
lsof -i :<端口号> # 查看占用端口的进程
/etc/passwd添加后门账户)、植入Webshell(如/var/www/html下的.php文件)。通过auditd(Linux审计系统)监控关键目录的修改,或定期检查文件修改时间:sudo auditctl -w /etc/passwd -p wa -k passwd_changes # 监控passwd文件修改
find /var/www/html -type f -mtime -7 # 查找7天内修改的Web文件
crontab -l # 当前用户的任务
ls /etc/cron.* -R # 系统级定时任务
若发现陌生脚本(如/tmp/backdoor.sh)、高频执行(如* * * * *每分钟执行),需删除并排查来源。结合工具可提升日志分析效率:
grep 'Failed password')、统计次数(如awk '{print $11}' | sort | uniq -c)。journalctl -f)、按服务过滤(journalctl -u sshd)、按时间范围查询(journalctl --since "2025-10-01" --until "2025-10-02")。sudo apt install logwatch
sudo logwatch --output text --service all # 生成所有服务的报告
auth.log),将结果发送到管理员邮箱:crontab -e
# 添加以下行(每日2点运行logwatch)
0 2 * * * /usr/sbin/logwatch --output mail --mailto admin@example.com --service auth
sudo apt update && sudo apt upgrade),减少恶意软件利用漏洞的机会。/etc/ssh/sshd_config中的PermitRootLogin no),降低SSH爆破风险。chkrootkit(检测Rootkit)、rkhunter(扫描隐藏恶意程序)定期扫描系统:sudo apt install chkrootkit
sudo chkrootkit # 检测Rootkit
sudo rkhunter --check # 扫描隐藏程序
ufw)仅开放必要端口(如SSH的22端口、Web的80/443端口),阻止恶意软件与外部通信:sudo ufw allow 22/tcp # 允许SSH
sudo ufw enable # 启用防火墙