ubuntu

Ubuntu SSH如何进行日志管理

小樊
36
2025-04-07 09:30:06
栏目: 智能运维

在Ubuntu系统中,SSH(Secure Shell)的日志管理主要依赖于系统日志服务,如rsyslogsyslog-ng

  1. 确保rsyslog服务已安装并启用:

    大多数Ubuntu系统默认已经安装了rsyslog。如果没有安装,可以使用以下命令安装:

    sudo apt-get update
    sudo apt-get install rsyslog
    

    安装完成后,确保rsyslog服务正在运行:

    sudo systemctl status rsyslog
    

    如果服务未运行,请使用以下命令启动它:

    sudo systemctl start rsyslog
    
  2. 配置rsyslog以记录SSH日志:

    编辑/etc/rsyslog.d/50-default.conf文件,找到以下行:

    #auth,authpriv.*                 /var/log/auth.log
    

    取消注释(删除行首的#符号),以便将SSH日志记录到/var/log/auth.log文件中:

    auth,authpriv.*                 /var/log/auth.log
    

    保存文件并退出编辑器。

  3. 重启rsyslog服务以应用更改:

    sudo systemctl restart rsyslog
    
  4. 管理SSH日志:

    • 查看SSH登录日志:

      cat /var/log/auth.log | grep sshd
      
    • 查看特定时间段的SSH日志,例如2021年10月1日:

      grep 'Oct  1' /var/log/auth.log
      
    • 查看特定IP地址的SSH登录尝试:

      grep '192.168.1.100' /var/log/auth.log
      
    • 限制日志文件大小,以防止日志文件过大。编辑/etc/rsyslog.d/50-default.conf文件,找到以下行:

      $SystemLogRateLimitInterval 0
      $SystemLogRateLimitBurst 0
      

      将其更改为:

      $SystemLogRateLimitInterval 60
      $SystemLogRateLimitBurst 1000
      

      这将限制每分钟记录的日志条目数量,并允许在限制间隔内累积一定数量的日志条目。保存文件并退出编辑器。

    • 定期清理旧的SSH日志。可以使用logrotate工具自动完成此操作。编辑/etc/logrotate.d/rsyslog文件,确保包含以下内容:

      /var/log/auth.log {
          weekly
          rotate 4
          compress
          delaycompress
          missingok
          notifempty
          create 640 root adm
      }
      

      这将每周轮换一次日志文件,保留最近4周的日志,并对旧日志进行压缩。保存文件并退出编辑器。

通过以上步骤,您可以在Ubuntu系统中进行SSH日志管理。

0
看了该问题的人还看了