对 vsftp 服务器的暴力攻击在日志中未显示身份验证失败

对 vsftp 服务器的暴力攻击在日志中未显示身份验证失败

我的服务器运行的是 Debian 8,vsftpd 版本为 3.0.2-17。最近我的 vsftpd.log 充满了以下内容:

vsftpd.log

Mon Mar  7 18:13:44 2016 [pid 13499] CONNECT: Client "::ffff:xxx.xxx.xx.xx"
Mon Mar  7 18:13:45 2016 [pid 13501] CONNECT: Client "::ffff:xxx.xxx.xx.xx"
Mon Mar  7 18:13:46 2016 [pid 13503] CONNECT: Client "::ffff:xxx.xxx.xx.xx"
Mon Mar  7 18:13:47 2016 [pid 13505] CONNECT: Client "::ffff:xxx.xxx.xx.xx"
...
...

这种情况持续了 6000 多行,全部来自同一个 IP 地址(我在日志文件片段中混淆了 IP)。我有一个使用默认 vsftpd.conf 文件运行的fail2ban(版本0.8.13-1)监狱,但没有记录任何身份验证失败,因此没有禁止。以下是过滤器供参考:

fail2ban vsftpd.conf 正则表达式

failregex = ^%(__prefix_line)s%(__pam_re)s\s+authentication failure; logname=\S* uid=\S* euid=\S* t$
        ^ \[pid \d+\] \[.+\] FAIL LOGIN: Client "<HOST>"\s*$

这是我的 vsftpd 配置文件:

vsftpd.conf

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=<path to .pem file>
rsa_private_key_file=<path to key file>
ssl_enable=YES
ssl_tlsv1=YES
ssl_ciphers=HIGH
pasv_min_port=XXXX
pasv_max_port=XXXX

有人可以帮助我了解发生了什么事吗?为什么日志中没有失败的登录尝试?我找不到任何其他证据表明有人确实访问了该系统。

顺便说一句,我的意图是仅当我需要自己使用 vsftpd 服务时才启动和停止它,但我未能将其从启动中删除,所以当我重新启动时,它又在我没有意识到的情况下启动了。我已经纠正了这个问题,但我仍然想了解这个问题,以及如何在这种情况下让fail2ban工作。

答案1

连接操作和登录操作不是一回事。

互联网上的一些机器人可以检查您的 FTP 服务器是否处于活动状态并断开连接,甚至无需尝试登录(有时在循环中,就像您的情况一样)。这很正常。这里没有问题。

你可以自己尝试一下。只需执行:

$ telnet whatever-domain.com 21
Trying 999.9.9.9...
Connected to whatever-domain.com.
Escape character is '^]'.
220 (vsFTPd 3.0.2)
^]
telnet> Connection closed.

并检查vsftpd log,应该只出现您想要的行CONNECT,仅此而已。

答案2

我对你的输入进行了一些尝试,fail2ban-regex并且能够将这些行与此相匹配failregex

failregex = ^%(__prefix_line)s\s*\[pid\s*\d*\]:\s*CONNECT:\s*Client\s*\"<HOST>\"

我确信您可以进一步完善它,但关键点是默认值会因具有而不仅仅是 而__prefix_line混淆,因此您必须在本地修改前缀,或者将 pid 部分包含在正则表达式的正文中。[pid 13499][13499]

只要您不设置太低的阈值,这应该会为您提供您正在寻找的行为:阻止任何在短时间内进行重复连接的人。

相关内容