首页主机资讯Debian SSH如何进行日志分析

Debian SSH如何进行日志分析

时间2025-11-05 14:56:03发布访客分类主机资讯浏览1482
导读:1. 确认Debian SSH日志文件位置 Debian系统中,SSH服务的认证日志默认存储在/var/log/auth.log(系统认证相关事件,包括SSH登录尝试、密码认证结果、公钥认证等)。若日志文件因轮转(logrotate)产生归...

1. 确认Debian SSH日志文件位置
Debian系统中,SSH服务的认证日志默认存储在/var/log/auth.log(系统认证相关事件,包括SSH登录尝试、密码认证结果、公钥认证等)。若日志文件因轮转(logrotate)产生归档(如auth.log.1auth.log.2.gz),需一并纳入分析,这些归档文件通常位于同一目录下。

2. 实时监控SSH登录活动
使用tail命令结合grep过滤sshd进程的日志,实时查看最新的SSH登录尝试(包括成功、失败及连接关闭事件):

sudo tail -f /var/log/auth.log | grep sshd

该命令会持续输出新写入的SSH日志,帮助管理员即时掌握登录动态(如是否有大量失败尝试)。

3. 常见日志分析场景与命令

  • 统计失败登录次数最多的IP地址
    提取Failed password(密码认证失败)日志中的IP地址(倒数第4列),排序并统计频率,找出最活跃的攻击源:
    grep "Failed password" /var/log/auth.log | awk '{
    print $11}
    ' | sort | uniq -c | sort -nr
    
  • 统计被尝试登录最多的用户名
    同样过滤Failed password日志,提取用户名(第9列),统计尝试次数:
    grep "Failed password" /var/log/auth.log | awk '{
    print $9}
    ' | sort | uniq -c | sort -nr
    
  • 查看成功登录记录
    筛选Accepted password(密码认证成功)或Accepted publickey(公钥认证成功)日志,获取成功登录的用户、IP及时间:
    grep -E "Accepted password|Accepted publickey" /var/log/auth.log
    
  • 统计成功登录次数最多的用户
    提取成功登录日志中的用户名(第9列),统计次数:
    grep -E "Accepted password|Accepted publickey" /var/log/auth.log | awk '{
    print $9}
    ' | sort | uniq -c | sort -nr
    
  • 分析特定时间段的登录行为
    结合awk提取时间戳(第1列),筛选指定时间段(如12:00-18:00)的失败登录记录:
    grep "Failed password" /var/log/auth.log | awk '/sshd.*Failed password/ {
    print $1}
        ' | awk '$1 >
        = "12:00" &
        &
         $1 <
    = "18:00" {
    print}
    '
    

4. 使用工具简化日志分析

  • logwatch
    一款自动化日志分析工具,可生成SSH日志的详细报告(如登录成功/失败次数、攻击源统计)。安装后运行以下命令生成文本报告:
    sudo apt-get install logwatch  # 安装logwatch
    sudo logwatch --output text    # 生成默认报告(包含SSH分析)
    
  • fail2ban
    入侵防御工具,通过分析SSH日志自动封禁恶意IP(如连续5次失败登录)。安装后配置/etc/fail2ban/jail.local启用SSH防护:
    sudo apt-get install fail2ban  # 安装fail2ban
    sudo systemctl start fail2ban  # 启动服务
    sudo systemctl enable fail2ban # 开机自启
    
    配置文件中调整maxretry(最大失败次数)、bantime(封禁时长)等参数,适配实际需求。

5. 日志归档与长期管理
Debian系统默认使用logrotate工具管理SSH日志轮转,避免日志文件过大占用磁盘空间。可通过编辑/etc/logrotate.d/sshd自定义轮转策略(如每天轮转、保留7天、压缩旧日志):

/var/log/auth.log {

    daily                   # 每天轮转
    missingok               # 若日志丢失则忽略
    rotate 7                # 保留最近7份
    compress                # 压缩旧日志(如auth.log.1.gz)
    notifempty              # 若日志为空则不轮转
    create 640 root root    # 新日志权限为640,属主root
}
    

该配置确保SSH日志定期归档,便于后续历史数据分析。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian SSH如何进行日志分析
本文地址: https://pptw.com/jishu/742948.html
Debian系统中SecureCRT插件安装 如何在Ubuntu上定制PostgreSQL配置文件

游客 回复需填写必要信息