WARNING: Unable to find a corresponding IP address for xxx

在之前开始使用fail2ban防止vsftpd或ssh暴力破解之后,有一定的效果,但在查看fail2ban.log日志时,发现一个问题:

  1. fail2ban.filter : WARNING Unable to find a corresponding IP address for ns.rs996.com

我们再查看secure日志:

  1. vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=www.centos.bz rhost=ns.rs996.com

fail2ban是根据rhost取得客户端的ip,并使用iptables禁止它,但我们发现ns.rs996.com无法解析出ip地址,那它的ip去哪了呢?
经过分析得出结论:vsftpd默认对客户端ip进行反向解析,如果查询有结果,则把ip解析出来的域名记录secure日志中的rhost中,但是此反向解析出来的域名,本身又没有作A记录的解析,所以fail2ban再进行此域名的解析时,当然就无法获取到IP地址,也就无法禁止此客户端的暴力破解行为。
解决方法:
在vsftpd.conf中添加下面的代码禁止反向解析:

  1. reverse_lookup_enable=NO

之后重启vsftpd即可。生效之后不仅解决了这个问题,也使得登录vsftpd不再停顿几秒了。
但是/var/log/secure里记录ftp登录失败有一个缺点,就是用相同的用户名,不同的密码登录多次,只是记录首次失败的信息,而之后的就只显示:last message repeated x times这样的信息,无法满足登录失败三次的条件,所以就不能阻止此暴力破解,下面是解决这个问题的方法:
1、打开vsftpd.conf,添加如下代码:

  1. dual_log_enable=YES
  2. use_localtime=YES

2、打开/etc/fail2ban/jail.local,修改以下内容:

  1. [vsftpd-iptables]
  2. ...
  3. logpath = /var/log/vsftpd.log
  4. ...
发布于:2019-11-23 13:37:59