Postfix 垃圾邮件(黑客)

Postfix 垃圾邮件(黑客)

我的mailq邮件中充满了有关已发送电子邮件的报告(例如[电子邮件受保护])由非现有本地用户(例如[电子邮件受保护]

mailq例子:

8F979561A3     1440 Thu Aug 25 13:54:32  [email protected]
(delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
                                         [email protected]

我怎样才能阻止它?

我的main.cf是:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = /usr/share/doc/postfix

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = faster2.jbmd.com
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
myorigin = /etc/mailname
mydestination =  localhost, localhost.localdomain
relayhost = 
mynetworks = 127.0.0.0/8 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
virtual_alias_domains = 
virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
inet_protocols = all
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf
smtpd_tls_security_level = may
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unlisted_sender,  reject_unknown_sender_domain,check_sender_access regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, check_sender_access regexp:/etc/postfix/tag_as_foreign.re 
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf reject_rbl_client cbl.abuseat.org,  reject_rbl_client b.barracudacentral.org
smtpd_client_message_rate_limit = 100
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
virtual_transport = dovecot
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
nested_header_checks = regexp:/etc/postfix/nested_header_checks
body_checks = regexp:/etc/postfix/body_checks
owner_request_special = no
smtp_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
message_size_limit = 0
default_process_limit = 150
local_recipient_maps = proxy:unix:passwd.byname $alias_maps

答案1

在最好的情况下,您的一个或多个用户会受到威胁,例如,不良行为者猜测/钓鱼了密码。

由于您允许经过身份验证的用户发送电子邮件,因此他们很可能会伪造“发件人”字段以避免检测。

编辑几条相关消息的完整正文将为您提供有关您受到威胁的用户的提示。

作为起点,我建议将“发件人”字段限制为已知用户,请查看此线程。Postfix:防止用户更改真实电子邮件地址

作为中间场景,您可以利用 Web 服务器中的某些页面/cgi如果 postfix 服务器正在运行 Apache

最坏的情况是,您的盒子可能受到损害。

查看 postfix 和 Apache 访问日志(如果您有 Apache),它会让您更合理地了解正在发生的情况。

编辑:@P.Masher 发布延迟消息的示例后:

需要注意的相关行是:

X-PHP-Originating-Script: 5015:alias.php(1944) : eval()'d code

它说的是你有一个脚本名称alias.php,可能被植入到你的网络服务器(Apache?)可访问的不太安全的目录中,这是发送电子邮件的罪魁祸首。

该脚本必须被删除,并且该目录垃圾邮件发送者用来植入此脚本的任何其他可能方式(旧的 WordPress、SQL 注入、旧的 Webmail 界面)都必须关闭。

临时解决方案可能是完全停止 Web 服务器。

我还会收集访问的 Web 服务器日志alias.php并将其发送到本地 CERT。 (如果您有经常使用的产品)

至于更多的安全考虑,事实上他们通过 eval() 执行代码意味着他们基本上可以访问运行 vhost/Apache 的用户可以访问的任何文件。即它与拥有一个相同偏僻的服务器中的 shell 帐户。

如果服务器很旧/没有更新,在最坏的情况下他们也可能会利用根级别的权限;在最好的情况下,他们只能拥有相当于 Web 服务器非特权用户的访问权限,但可能已经尝试利用 HTML/PHP 文件中的密码,并且可能已经收集了 postfix 用户的散列密码。

我建议:

1)如果服务器太旧或没有安全更新,请重新安装服务器;
2)更改DB/root密码;
3) 建议postfix用户更改密码以防万一。

相关内容