最近,我们看到很多从 IP 连接到我们的公共git
服务器的连接。发生这种情况时,我们的开发人员无法通过 SSH 提交,因为服务器非常非常慢,我无法通过 SSH 远程登录,必须从控制台登录才能解决问题。发生这种情况时, HTTPsgitlab
仍然有效。系统资源很丰富,我已经编辑sshd_config
阻止所有端口 22 访问,除非他们有密钥。我也有 IPS 设置来阻止多次 SSH 尝试并fail2ban
在服务器上进行。
通过所有这些设置,我不确定这是如何为服务器造成这样的问题。我可以通过重新启动sshd
服务并阻止有问题的子网来解决问题,但为什么它会如此混乱 SSH 以致服务器无法通过 SSH 使用?所有这些尝试是否以某种方式使用所有端口并因此阻止合法访问尝试?secure
下面是一个尝试的日志文件的副本。请注意,从 14:30:18 到 14:30:50 有很大的时间间隔。
Sep 4 14:30:17 somegitserver sshd[5924]: Connection from 11.11.11.11 port 62290
Sep 4 14:30:17 somegitserver sshd[5924]: debug1: Client protocol version 2.0; client software version libssh-0.11
Sep 4 14:30:17 somegitserver sshd[5924]: debug1: no match: libssh-0.11
Sep 4 14:30:17 somegitserver sshd[5924]: debug1: Enabling compatibility mode for protocol 2.0
Sep 4 14:30:17 somegitserver sshd[5924]: debug1: Local version string SSH-2.0-OpenSSH_5.3
Sep 4 14:30:17 somegitserver sshd[5941]: debug1: permanently_set_uid: 74/74
Sep 4 14:30:17 somegitserver sshd[5941]: debug1: list_hostkey_types: ssh-rsa,ssh-dss
Sep 4 14:30:17 somegitserver sshd[5941]: debug1: SSH2_MSG_KEXINIT sent
Sep 4 14:30:17 somegitserver sshd[5941]: debug1: SSH2_MSG_KEXINIT received
Sep 4 14:30:17 somegitserver sshd[5941]: debug1: kex: client->server aes128-cbc hmac-sha1 none
Sep 4 14:30:17 somegitserver sshd[5941]: debug1: kex: server->client aes128-cbc hmac-sha1 none
Sep 4 14:30:17 somegitserver sshd[5941]: debug1: expecting SSH2_MSG_KEXDH_INIT
Sep 4 14:30:18 somegitserver sshd[5941]: debug1: SSH2_MSG_NEWKEYS sent
Sep 4 14:30:18 somegitserver sshd[5941]: debug1: expecting SSH2_MSG_NEWKEYS
Sep 4 14:30:18 somegitserver sshd[5941]: debug1: SSH2_MSG_NEWKEYS received
Sep 4 14:30:18 somegitserver sshd[5941]: debug1: KEX done
Sep 4 14:30:18 somegitserver sshd[5941]: debug1: userauth-request for user root service ssh-connection method keyboard-interactive
Sep 4 14:30:50 somegitserver sshd[5944]: debug1: Enabling compatibility mode for protocol 2.0
Sep 4 14:30:51 somegitserver sshd[5941]: debug1: do_cleanup
Sep 4 14:30:51 somegitserver sshd[5945]: debug1: rexec start in 5 out 5 newsock 5 pipe 10 sock 11
Sep 4 14:30:51 somegitserver sshd[5944]: debug1: Local version string SSH-2.0-OpenSSH_5.3
Sep 4 14:30:51 somegitserver sshd[5924]: debug1: do_cleanup
Sep 4 14:30:51 somegitserver sshd[5945]: debug1: inetd sockets after dupping: 3, 3
Sep 4 14:30:51 somegitserver sshd[5961]: debug1: permanently_set_uid: 74/74
Sep 4 14:30:51 somegitserver sshd[5924]: debug1: PAM: cleanup
我错过了什么?
问题在于我的
fail2ban
配置没有读取正确的日志文件。一旦我更新了我的jail.local
文件并指定/var/log/secure
而不是/var/log/sshd.log
,我开始看到 IP 进入监狱。这fail2ban
有效,但它仍然没有阻止某些日志条目。我想阻止包含11: Bye Bye
但我的自定义过滤器fail2ban
不起作用的特定条目:^%(__prefix_line)sReceived disconnect from <HOST>: 11: \S+: *$
为了彻底解决我的问题,我发现默认情况下,该版本
0.10.5.dev1
可以fail2ban
捕获日志文件中的特定条目。我升级并重新配置了配置,现在它按我希望的那样工作。