奇怪的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 

它是centos 5.2 x86_64与OpenSSH_4.3p2,sshd端口没有设置为默认,我使用不同的端口,我想它是一些不好的程序做了一些蛮力ssh attck从内部(低)。 我曾尝试将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. 

有没有人有过这个问题? 我怎么分析这个东西

这里的关键是“地址已经在使用”。 另一个进程已经绑定到该端口。 你是否试图运行服务的两个实例? 有时候,控制脚本会放松他们的想法(不是真的,pid文件被删除,但不是进程),他们将尝试启动服务,当它已经运行。 首先,停止服务一次,看看是否出现消息。

 service sshd stop 

然后做一个检查,看看是否已经有一个sshd躺在…

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

如果在服务停止之后看到一个,那就是问题的原因。 杀死它,然后再次启动服务

 service sshd start 

PS是的,我知道我的shell脚本很烂,但有时清晰度比简洁快。

你有什么样的系统监控工具(monit / collectd)可以检查你的ssh服务器是否存在并接受连接?

 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是无法检测到它运行的过程,并重复重新启动。

连接显然来自本地机器(127.0.0.1) – 所以你不必看得很远。

而且日志消息是由sshd生成的(所以sshd正在检测尝试的连接) – 所以你知道无论什么进程导致这些,要么知道非标准的端口,要么你有第二个sshd实例运行在标准端口(使用netstat来检查)。

你可以临时删除hosts.deny项,然后使用lsof来确定哪个进程试图访问非标准的sshd端口(lsof -i: port )?

如果什么都没有显示出来,我会使用chkrootkit或者rkhunter来确保你的系统没有被入侵。