Linux系统通过多种日志机制记录系统活动,主要日志来源包括:
系统日志服务:
主要日志文件位置:
/var/log/messages
- 常规系统消息/var/log/auth.log
- 认证相关日志/var/log/kern.log
- 内核日志/var/log/syslog
- 系统日志/var/log/secure
- 安全相关日志(RHEL/CentOS)/var/log/apt/
- 包管理日志(Debian/Ubuntu)/var/log/yum.log
- 包管理日志(RHEL/CentOS)# 查看日志文件
cat /var/log/syslog
less /var/log/auth.log
tail -f /var/log/messages # 实时监控
# 日志过滤
grep "Failed password" /var/log/auth.log
grep -i "error" /var/log/syslog
journalctl -u sshd --since "1 hour ago" # 查看sshd服务最近1小时日志
# 统计工具
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr # 统计IP访问量
Logwatch - 每日日志摘要报告
sudo apt install logwatch # Debian/Ubuntu
sudo yum install logwatch # RHEL/CentOS
GoAccess - 实时Web日志分析
goaccess /var/log/nginx/access.log -a
Lnav - 高级日志文件查看器
lnav /var/log/syslog /var/log/auth.log
# 检查失败的登录尝试
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
# 检查成功登录
grep "Accepted password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
# 检查sudo使用
grep "sudo:" /var/log/auth.log
使用AIDE(Advanced Intrusion Detection Environment):
sudo apt install aide # Debian/Ubuntu
sudo aideinit
sudo aide --check
# 查看异常进程
ps aux | grep -E '(nmap|nikto|sqlmap|hydra|john|medusa)'
# 检查网络连接
netstat -tulnp
ss -tulnp
lsof -i
安装与配置:
# Ubuntu/Debian
sudo apt install ossec-hids
# RHEL/CentOS
sudo yum install ossec-hids
# 基本配置
sudo vi /var/ossec/etc/ossec.conf
# 安装Wazuh管理器
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo apt-key add -
echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list
sudo apt update
sudo apt install wazuh-manager
用于集中式日志管理和分析:
# 安装Elasticsearch
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
# 安装Logstash和Kibana
sudo apt-get install logstash kibana
#!/bin/bash
# 检查可疑的cron作业
echo "=== 检查可疑的cron作业 ==="
sudo grep -r "wget\|curl\|chmod\|sh \|\.\/" /etc/cron* /var/spool/cron/
# 检查SUID/SGID文件变化
echo "=== 检查SUID/SGID文件 ==="
sudo find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \; 2>/dev/null
# 检查最近修改的文件
echo "=== 检查最近24小时内修改的文件 ==="
sudo find / -mtime -1 -type f -exec ls -la {} \; 2>/dev/null | grep -vE "/var/log|/proc|/sys"
# 检查隐藏进程
echo "=== 检查隐藏进程 ==="
ps -ef | awk '{print $2}' | sort -n | uniq > /tmp/ps_all.txt
ls /proc | grep -E '^[0-9]+$' | sort -n | uniq > /tmp/proc_all.txt
diff /tmp/ps_all.txt /tmp/proc_all.txt
# 清理临时文件
rm /tmp/ps_all.txt /tmp/proc_all.txt
通过综合运用这些工具和技术,可以有效提高Linux环境下的安全态势感知能力,及时发现和应对潜在威胁。