如何强制 vsftpd 在连接尝试时记录数字 IP 地址?

如何强制 vsftpd 在连接尝试时记录数字 IP 地址?

扫描我的日志文件,我发现多次未经授权的尝试登录我的 FTP 服务器。系统使用 rDNS 为我提供远程用户的主机名,如果 rDNS 给出答案 — 甚至是不存在的 TLD 中的主机名! — 那么它不会记录数字 IP 地址。我正在尝试设置fail2ban以监禁 IP,但我无法监禁(例如),hn.kd.ny.adsl因为它不存在。 (此外,如果有人将其 rDNS 指向确实存在的某个不相关的 FQDN 主机名,则很明显可能会造成恶作剧。)理想情况下,我想同时记录 IP 和名称,但如果我必须选择,我必须原始IP。

我使用的是 CentOS 6(正在升级到 CentOS 7 的过程中)。这是我的vsftpd.conf,省略评论:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

答案1

这很烦人,我找不到简单的解决方案。我认为 xferlog 格式是为了向后兼容 wu_ftp。

根据禁止失败维基,这就是你需要做的:

将 VSFTP 配置为“dual_log_enable=YES”,并让fail2ban 监视 /var/log/vsftpd.log。此日志文件显示传入的 IP 地址而不是 DNS 名称。

但仍然让我恼火的是查找反向指针的延迟,这依赖于 DNS 查找超时。如果传输数千个文件并且您没有反向指针,或者没有为 in-addr 块设置 DNS 服务器,则每次传输都会等待 DNS 超时吗?

相关内容