系统日志:
/var/log/syslog
- 通用系统活动日志/var/log/auth.log
- 认证相关日志/var/log/kern.log
- 内核日志服务日志:
/var/log/apache2/
- Apache Web服务器日志/var/log/nginx/
- Nginx Web服务器日志/var/log/mysql.log
- MySQL数据库日志# 查找失败的登录尝试
grep "Failed password" /var/log/auth.log
# 查找特定IP的活动
grep "192.168.1.100" /var/log/auth.log /var/log/syslog
# 不区分大小写搜索
grep -i "error" /var/log/syslog
# 统计失败登录尝试的用户名
awk '/Failed password/ {print $9}' /var/log/auth.log | sort | uniq -c | sort -nr
# 提取特定时间段的日志
awk '/Jun 15 10:00/,/Jun 15 11:00/' /var/log/syslog
# 提取特定时间后的日志
sed -n '/Jun 15 10:00/,$p' /var/log/syslog
# 替换敏感信息
sed 's/192.168.1.100/[REDACTED]/g' auth.log
# 查看最近的安全相关日志
journalctl -u sshd --since "1 hour ago"
# 跟踪实时日志
journalctl -f
# 安装
sudo apt install logwatch
# 生成日报
logwatch --range yesterday --detail high
# 查找可能的暴力破解尝试
grep -E "Failed password|Invalid user" /var/log/auth.log
# 查找可疑的SSH活动
grep -E "sshd.*(Did not receive identification|Failed|Invalid)" /var/log/auth.log
# 统计每小时登录尝试
cat /var/log/auth.log | grep "Failed password" | awk '{print $3}' | cut -d: -f1 | uniq -c
# 统计最活跃的攻击IP
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head -20
#!/bin/bash
# 监控SSH暴力破解
ALERT_FILE="/tmp/ssh_alert.log"
THRESHOLD=5
# 检查过去10分钟内失败登录
COUNT=$(grep "Failed password" /var/log/auth.log | grep "$(date '+%b %d %H:%M' --date='10 minutes ago')" -A 10000 | wc -l)
if [ "$COUNT" -gt "$THRESHOLD" ]; then
echo "[$(date)] 检测到SSH暴力破解尝试: $COUNT 次失败登录" >> "$ALERT_FILE"
# 可以添加邮件通知或其他警报机制
fi
通过合理组合这些工具和技术,您可以有效监控Linux系统的安全状况,及时发现潜在威胁。