我需要跟踪SSH
服务器上的所有连接。在我的/etc/hosts.allow
我有这样的东西:
sshd: ALL : spawn ( echo "`date` from %u %a " >> /var/log/ssh/%d.log ) &
其中%a
记录客户端 IP,并且%u
应该记录用户名。但只是%u
记录unknown
。有没有办法来解决这个问题?我需要记录每个连接的 IP 和用户名。
答案1
仅当客户端计算机正在运行并根据请求提供用户名 时,客户%u
端用户名才是已知的。identd
tcp 包装器 ietcpd
执行 identd 查找,如果没有从客户端计算机得到答案,则返回“未知”。
早在 20 世纪 90 年代,运行identd
就已经是很常见的做法,但现在已经非常不常见了,而且许多客户端(例如 Windows 计算机)甚至没有 identd 或类似的程序。
简而言之,您得到“未知”,因为客户端计算机不提供该信息。
无论如何,您的 sshd 应该记录所有连接尝试 - 检查 /var/log/auth.log 或 /var/log/syslog 或 /var/log/messages (取决于您的发行版以及 syslogd 的配置方式)。