服务器受到 smtp 登录攻击,但防火墙无法禁止它们,因为日志中没有 IP...就像这样var/日志/消息:
Mar 13 16:00:05 sunucu saslauthd[1484]: do_auth : auth failure: [user=admin] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]
Mar 13 16:00:07 sunucu saslauthd[1483]: do_auth : auth failure: [user=admin] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]
Mar 13 16:00:09 sunucu saslauthd[1485]: do_auth : auth failure: [user=admin] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]
Mar 13 16:00:11 sunucu saslauthd[1482]: do_auth : auth failure: [user=admin] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]
Mar 13 16:00:12 sunucu saslauthd[1484]: do_auth : auth failure: [user=admin] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]
Mar 13 16:00:15 sunucu saslauthd[1482]: do_auth : auth failure: [user=admin] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]
...
...
软件版本:
Operating system CentOS Linux 7.4.1708
Perl version 5.016003
Path to Perl /usr/bin/perl
BIND version 9.9
Postfix version 2.10.1
Mail injection command /usr/lib/sendmail -t
Apache version 2.4.6
PHP versions 5.4.16, 7.0.10, 7.1.8
Logrotate version 3.8.6
MySQL version 10.1.31-MariaDB
Dovecot IMAP/POP3 Server Version 2.2.10.
有办法解决这个问题吗?
答案1
这个问题是一个长期存在的错误在 cyrus-sasl 中,这是由于 auth-pam 代码并未真正提供将主机(或用户)信息传递给 saslauthd 的方法造成的。理论上,修复该问题的补丁应该会纳入 2.2 版本,但我在 2.2.X 发行说明中没有看到任何相关内容。虽然这可能会在 2.1 版本中向后移植(可能在每个发行版的基础上),但我找不到任何证据表明这实际上发生在 RedHat 或 Ubuntu 上。
如果缺乏任何实际解决方案,您可以查看中提出的解决方案https://unix.stackexchange.com/a/480005和https://unix.stackexchange.com/a/511997,特别是增加 sendmail 中的日志级别以显示登录失败的 IP,或者使用“连接期间未发出 MAIL/EXPN/VRFY/ETRN”错误作为失败尝试的代理。
答案2
普通 SMTP 服务本身不提供身份验证。经过身份验证的 SMTP 是一种委婉说法,因为通常您必须事先通过 IMAP 或 POP 登录才能使用 SMTP 服务。
通常,向 Internet 开放的 IMAP 端口(更常见的是 POP3 端口)会被暴力破解,作为查找弱登录名/密码的简单方法。
然而,在默认的 postfix+dovecot 配置中,saslauthd
出于身份验证目的,通常由dovecot
提供 IMAP/POP3 服务的 调用。
因此,您必须查看dovecot
日志以了解发生的情况,并查看有问题的 IP 地址。
我认为dovecot
日志是 at/var/log/dovecot.log
或类似的东西(我有一段时间没有使用 centOS 了)。
如果日志记录对您来说不够,您可以dovecot
暂时更改配置,如下所示:
编辑/etc/dovecot/conf.d/10-logging.conf
或/etc/dovecot/dovecot.conf
使用:
auth_verbose=yes
auth_debug=yes
verbose_ssl=yes
进而service dovecote restart
另外作为建议,通过 TLS(pop3s 995/tcp 和 imaps 993/tcp )提供这些服务可能更有意义,而不是以普通形式。它将更加安全,并且您受到的攻击也会少得多。
附言。请向我确认您拥有的配置文件和日志文件的名称,以编辑此答案。