在Ubuntu系统中,SSH(Secure Shell)的日志管理主要依赖于系统日志服务,如rsyslog
或syslog-ng
确保rsyslog
服务已安装并启用:
大多数Ubuntu系统默认已经安装了rsyslog
。如果没有安装,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install rsyslog
安装完成后,确保rsyslog
服务正在运行:
sudo systemctl status rsyslog
如果服务未运行,请使用以下命令启动它:
sudo systemctl start rsyslog
配置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
保存文件并退出编辑器。
重启rsyslog
服务以应用更改:
sudo systemctl restart rsyslog
管理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日志管理。