我想监控 Linux 系统的 ssh 登录:谁、从哪里(IP 地址)以及何时登录。如何打开相关日志?一份简单的文件值得赞赏。
答案1
请提供有关您使用的 SSH 服务器的更多信息(OpenSSH、dropbear 等)。我正在使用 OpenSSH-6.6。它的配置文件通常位于“/etc/ssh/sshd_config”中,尽管您可以将自己的配置文件作为“-f”选项的参数指定给服务器(例如,“sshd -f /my/config/文件”)。配置文件有两个您感兴趣的选项:
根据文档,“SyslogFacility”:
给出从 sshd(8) 记录消息时使用的设施代码
根据文档,“LogLevel”:
给出从 sshd(8) 记录消息时使用的详细级别
我在“/etc/ssh/sshd_config”中的设置:
SyslogFacility AUTH
LogLevel INFO
您可能还想安装一些日志守护进程(例如 rsyslog 或Metalog)来处理所有日志记录的去向。我已经安装了“rsyslog”,并将其配置为将设施“AUTH”的所有日志记录删除到“/var/log/auth.log”,我可以在其中找到如下行:
May 28 20:54:33 MY-HOSTNAME-HERE sshd[2025]: Accepted password for myuser from 127.0.0.1 port 50984 ssh2
May 28 20:54:34 MY-HOSTNAME-HERE sshd[2025]: pam_unix(sshd:session): session opened for user myuser by (uid=0)
May 28 20:55:12 MY-HOSTNAME-HERE sshd[2107]: Received disconnect from 127.0.0.1: 11: disconnected by user
May 28 20:55:12 MY-HOSTNAME-HERE sshd[2025]: pam_unix(sshd:session): session closed for user myuser
我认为这就是您正在寻找的。使 rsyslog 放入该文件 sshd 日志记录的具体配置是:
auth,authpriv.* /var/log/auth.log
要在 Debian 衍生版本中安装这些软件:
$ sudo apt-get install rsyslog openssh-server
参考:
- SSHD_CONFIG(5):OpenSSH 服务器的配置文件。
- SSHD(8):OpenSSH 服务器的命令行手册。
- SYSLOG(3):Linux 程序员手册,描述设施和日志记录级别。
- RSYSLOG.CONF(5):rsyslog 守护进程的配置文件。
- RSYSLOGD(8):rsyslog 守护进程的命令行手册。
答案2
您可以在 /var/log/messages 中找到您要查找的大部分内容,这是 Linux 通常放置日志的位置。我通常使用 root 权限运行以下三个搜索以获得良好的图片
grep -ir ssh /var/log/*
grep -ir breakin /var/log/*
grep -ir security /var/log/*