auth.log指示JSchException错误?


14

我有一台相当小的设置服务器,它不允许密码验证,只能使用密钥。而且它肯定没有安装Java。通常我不支付任何注意数千尝试脚本小子猜我的密码的一天-我的身影,他们在我的系统上浪费时间为时间他们没有对系统浪费允许密码验证。但我在/var/log/auth.log中看到此消息:

Dec 7 13:43:43 hostname sshd[7412]: Received disconnect from 189.203.240.57: 3: com.jcraft.jsch.JSchException: Auth fail [preauth]

是提到攻击者发出的看起来像Java异常的消息,还是我这边的消息?


1
我也很惊讶在EC2的Ubuntu 14.04实例上的sshd日志中找到Java类名。那和你的环境相似吗?
Alex Nauda 2015年

@AlexNauda Mine是Linode VPS。
Paul Tomblin 2015年

Answers:


20

看起来openssh服务器在其“接收的断开连接”错误消息中通过了来自客户端的最后一条消息,因此看来这是来自Java编写的僵尸网络的僵尸登录尝试。

请参见openssh的代码示例packet.c

            case SSH2_MSG_DISCONNECT:
                if ((r = sshpkt_get_u32(ssh, &reason)) != 0 ||
                    (r = sshpkt_get_string(ssh, &msg, NULL)) != 0)
                    return r;
                /* Ignore normal client exit notifications */
                do_log2(ssh->state->server_side &&
                    reason == SSH2_DISCONNECT_BY_APPLICATION ?
                    SYSLOG_LEVEL_INFO : SYSLOG_LEVEL_ERROR,
                    "Received disconnect from %s: %u: %.400s",
                    ssh_remote_ipaddr(ssh), reason, msg);
                free(msg);
                return SSH_ERR_DISCONNECTED;

“服务器通过客户端字符串传递”-这是“安全”的事情吗?还是从安全角度来看这可能是一个问题?
ckujau

如果您认为packet.c中的代码容易受到某种形式的利用,则可以考虑将其报告给openssh维护者。但总的来说,我认为以这种方式将字符串传递到日志不会带来安全问题。
Alex Nauda

我考虑过,但是我想先在这里问一下,也许从代码片段中可以明显看出它确实是“安全的”。但是,是的,我在openssh-unix-dev上询问了此问题,并且OpenSSH维护者认为这不是问题。
ckujau
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.