每分钟都有奇怪的 sshd 日志消息

每分钟都有奇怪的 sshd 日志消息

我的 Linux 机器每隔几分钟就会在 /var/log/secure 中收到此错误消息

Jun 14 04:24:28 mybox sshd[19741]: Connection closed by 127.0.0.1
Jun 14 04:25:28 mybox sshd[19764]: Connection closed by 127.0.0.1
Jun 14 04:26:28 mybox sshd[19770]: Connection closed by 127.0.0.1
Jun 14 04:27:28 mybox sshd[19776]: Connection closed by 127.0.0.1
Jun 14 04:28:28 mybox sshd[19782]: Connection closed by 127.0.0.1
Jun 14 04:29:28 mybox sshd[19789]: Connection closed by 127.0.0.1

它是带有 OpenSSH_4.3p2 的 centos 5.2 x86_64,sshd 端口未设置为默认端口,我使用了不同的端口,我认为是一些恶意程序从内部进行了一些暴力 ssh 攻击 (lo)。我曾尝试将 sshd:127.0.0.1 放入 /etc/hosts.deny,然后消息现在发生了变化,

Jun 14 12:45:54 mybox sshd[25736]: refused connect from ::ffff:127.0.0.1 (::ffff:127.0.0.1)
Jun 14 12:45:59 mybox sshd[25701]: Received signal 15; terminating.
Jun 14 12:46:00 mybox sshd[25761]: Server listening on :: port 5522.
Jun 14 12:46:00 mybox sshd[25761]: error: Bind to port 5522 on 0.0.0.0 failed: Address already in use.
Jun 14 12:47:01 mybox sshd[25767]: refused connect from ::ffff:127.0.0.1 (::ffff:127.0.0.1)
Jun 14 12:47:06 mybox sshd[25761]: Received signal 15; terminating.
Jun 14 12:47:07 mybox sshd[25792]: Server listening on :: port 5522.
Jun 14 12:47:07 mybox sshd[25792]: error: Bind to port 5522 on 0.0.0.0 failed: Address already in use.
Jun 14 12:54:19 mybox sshd[25881]: error: Bind to port 5522 on 0.0.0.0 failed: Address already in use.
Jun 14 12:54:19 mybox sshd[25881]: fatal: Cannot bind any address.

有人遇到过这个问题吗?我该如何分析这个问题?

答案1

这里的关键是“地址已在使用中”。另一个进程已绑定到该端口。您是否尝试运行该服务的两个实例?有时,控制脚本会失去理智(实际上并非如此,实际发生的是删除了 pid 文件,但没有删除进程),并且它们会尝试在服务已运行时启动该服务。首先,停止服务一次,看看是否出现该消息。

service sshd stop

然后检查是否已经有一个 sshd......

ps ax | grep "ssh" | grep -v "grep"

如果在服务停止后看到一个,则这就是问题的原因。将其终止,然后重新启动服务

service sshd start

PS:是的,我知道我的 shell 脚本很糟糕,但有时清晰比简洁更重要。

答案2

您是否有某种系统监控工具(monit/collectd)可以检查您的 ssh 服务器是否处于活动状态并接受连接?

答案3

Jun 14 12:46:00 mybox sshd[25761]: Server listening on :: port 5522.
Jun 14 12:46:00 mybox sshd[25761]: error: Bind to port 5522 on 0.0.0.0 failed: Address already in use.

我认为无论启动什么脚本sshd都无法检测到它正在运行的进程并反复重新启动它。

答案4

这些连接显然来自本地机器(127.0.0.1)——因此您不必看得很远。

并且日志消息是由 sshd 生成的(因此 sshd 正在检测尝试的连接) - 所以您知道无论是哪​​个进程导致了这些事件,要么它知道非标准端口,要么您有在标准端口上运行的第二个 sshd 实例(使用 netstat 进行检查)。

您能否暂时删除 hosts.deny 条目,然后使用 lsof 确定哪个进程正在尝试访问您的非标准 sshd 端口(lsof -i:港口)?

如果没有任何结果,我会使用 chkrootkit 或 rkhunter 来确保您的系统没有受到损害。

相关内容