结果

结果

我的网站遭受了垃圾邮件攻击。有人使用我的电子邮件向所有人发送垃圾邮件。

所以现在我打算找到一种方法来阻止它。

我看到有人用正则表达式拒绝邮件。但我有无数不同的电子邮件(50,000 个用户)。

我想看看数据库中是否有电子邮件,然后允许它发送。否则就隔离。不想让它们滞留在邮件队列中。

我有这个 greylist.pl

#main.cf 
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service unix:/private/greylist

#master.cf
greylist unix - n n - - spawn user=nobody argv=/usr/bin/perl  /tmp/mailrejct.

但是当我使用它时,我在邮件日志中收到这些错误:

Dec 25 09:24:58 intelligent-mahavira postfix/spawn[107258]: warning: command /usr/bin/perl exit status 2
Dec 25 09:24:58 intelligent-mahavira postfix/smtpd[107253]: warning: premature end-of-input on /private/greylist while reading input attribute name
Dec 25 09:24:59 intelligent-mahavira postfix/spawn[107258]: warning: command /usr/bin/perl exit status 2
Dec 25 09:24:59 intelligent-mahavira postfix/smtpd[107253]: warning: premature end-of-input on /private/greylist while reading input attribute name
Dec 25 09:24:59 intelligent-mahavira postfix/smtpd[107253]: warning: problem talking to server /private/greylist: Connection reset by peer

smtpd_access_policy用我的替换了。这是区别之一。有没有人是这方面的专家。

谁在发送属性值?后缀?它是如何传递的?

未解决。这仅适用于接收电子邮件。仅适用于传入垃圾邮件。

对于外发电子邮件仅存在模式检查。

1 #!/bin/sh
 2 
 3 # Simple shell-based filter. It is meant to be invoked as follows:
 4 #       /path/to/script -f sender recipients...
 5 
 6 # Localize these. The -G option does nothing before Postfix 2.3.
 7 INSPECT_DIR=/var/spool/filter
 8 SENDMAIL="/usr/sbin/sendmail -G -i" # NEVER NEVER NEVER use "-t" here.
 9 
10 # Exit codes from <sysexits.h>
11 EX_TEMPFAIL=75
12 EX_UNAVAILABLE=69
13 
14 # Clean up when done or when aborting.
15 trap "rm -f in.$$" 0 1 2 3 15
16 
17 # Start processing.
18 cd $INSPECT_DIR || {
19     echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
20 
21 cat >in.$$ || { 
22     echo Cannot save mail to file; exit $EX_TEMPFAIL; }
23 
24 # Specify your content filter here.
25 # filter <in.$$ || {
26 #   echo Message content rejected; exit $EX_UNAVAILABLE; }
27 
28 $SENDMAIL "$@" <in.$$
29 
30 exit $?



上面的代码能转换成 php 代码吗?我想知道如果我从 php 发送邮件,它会返回到同一个位置吗?

exec("/usr/sbin/sendmail $email < /etc/postfix/myfilter/email.txt");

我需要将电子邮件内容放入 email.txt。当我将整个测试放入其中时,它会弄乱电子邮件,其中包含显示所有内容和标题的详细信息和内容

我需要清理

From [email protected]  Sun Dec 26 12:31:47 2021
Received: from webmail.test.com (localhost.localdomain [IPv6:::1])
        by intelligent-mahavira.51-163-215-224.plesk.page (Postfix) with ESMTPSA id B9CFD82DA1
        for <[email protected]>; Sun, 26 Dec 2021 12:31:47 +0000 (UTC)
Authentication-Results: intelligent-mahavira.51-163-215-224.plesk.page;
        spf=pass (sender IP is ::1) [email protected] smtp.helo=webmail.test.com
Received-SPF: pass (intelligent-mahavira.51-163-215-224.plesk.page: connection is authenticated)
MIME-Version: 1.0
Date: Sun, 26 Dec 2021 04:31:47 -0800
From: [email protected]
To: alex3 <[email protected]>
Subject: testing filter2
User-Agent: Roundcube Webmail/1.4.11
Message-ID: <[email protected]>
X-Sender: [email protected]
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
X-PPP-Message-ID: <164052190789.24073.12166249882816501264@intelligent-mahavira.51-163-215-224.plesk.page>
X-PPP-Vhost: test.com

sss


我在谷歌的某个地方看到了这个问题,明天会尝试使用正则表达式从内容类型和正文中过滤掉主题。

    To: [email protected]
    Subject: This is an HTML message
    From: [email protected]
    Content-Type: text/html; charset="utf8"

    <html>
    <body>
    <div style="
        background-color: 
        #abcdef; width: 300px; 
        height: 300px;
        ">
    </div>
    You can add any valid email HTML here.
    </body>
    </html>
  1. 灰名单-我们可以以“不知道”、“拒绝可选文本”的形式给出访问反馈。
  2. 简单过滤器没有反馈。过滤器必须处理发送电子邮件。不清楚它是如何完成的。我基本上捕获了所有的 STDIN 并将其作为电子邮件发送,但它有所有的标题。不知道附件是如何处理。需要看看当我发送附件时它显示什么。
  3. 高级过滤看起来令人困惑。我看到 plex 电子邮件安全实现了这一点。当我添加它时,它将其添加到 main.cf 和 master.cf

smtp      inet  n       -       n       -       -       smtpd
  -o content_filter = smtp-amavis:[127.0.0.1]:10024


localhost:10025 inet n  -       n       -       -       smtpd
  -o content_filter=
  -o local_recipient_maps=
  -o relay_recipient_maps=
  -o smtpd_delay_reject=no
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8,[::1]/128
  -o smtpd_authorized_xclient_hosts=127.0.0.0/8,[::1]/128
  -o smtpd_client_restrictions=permit_mynetworks,reject
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=reject_unauth_pipelining
  -o smtpd_end_of_data_restrictions=
  -o smtpd_restriction_classes=
  -o mynetworks=127.0.0.0/8,[::1]/128
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
  -o local_header_rewrite_clients=
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026
pickup    unix  n       -       n       60      1       pickup
  -o content_filter=smtp-amavis:[127.0.0.1]:10026

这是保存在 data.txt 中的电子邮件,如果与系统中的收件人电子邮件匹配,则手动发送

Received: from webmail.test.com (localhost.localdomain [IPv6:::1])
        by intelligent-mahavira.serverip.plesk.page (Postfix) with ESMTPSA id C7E7282E1B;
        Tue, 28 Dec 2021 00:36:31 +0000 (UTC)
Authentication-Results: intelligent-mahavira.serverip.plesk.page;
        spf=pass (sender IP is ::1) [email protected] smtp.helo=webmail.test.com
Received-SPF: pass (intelligent-mahavira.serverip.plesk.page: connection is authenticated)
MIME-Version: 1.0
Date: Mon, 27 Dec 2021 16:36:31 -0800
From: [email protected]
To: alex2 <[email protected]>, alex3 <[email protected]>,
 [email protected]
Subject: Attachment test
User-Agent: Roundcube Webmail/1.4.11
Message-ID: <[email protected]>
X-Sender: [email protected]
Content-Type: multipart/mixed;
 boundary="=_5745fc7d762d12dda4165a3e0be576fc"
X-PPP-Message-ID: <164065179196.8458.1248882909976426707@intelligent-mahavira.serverip.plesk.page>
X-PPP-Vhost: test.com

--=_5745fc7d762d12dda4165a3e0be576fc
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII;
 format=flowed

Attachment succes?
--=_5745fc7d762d12dda4165a3e0be576fc
Content-Transfer-Encoding: base64
Content-Type: image/jpeg;
 name=536_PIA23645_PaleBlueDotRevisited_1600.jpg
Content-Disposition: attachment;
 filename=536_PIA23645_PaleBlueDotRevisited_1600.jpg;
 size=74009

/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMcaHR0cDov

问题是电子邮件中没有主题。它隐藏在标题中。太丑了。

结果

  1. 来自 Gmail 的电子邮件,比如 gmail ..我有干净的反弹测试,来自远程服务器的响应是:554 5.7.1[电子邮件保护]:收件人地址被拒绝:电子邮件仅允许在用户之间使用。电子邮件收件人=[电子邮件保护] 使用策略方法

  2. 外发电子邮件我正在向有效用户发送电子邮件并拒绝/隔离另一封电子邮件..我没有收到退回图像。我需要在外发电子邮件中使用相同的文本使用简单的内容过滤器

答案1

Postfix 支持政策服务。可以通过设计策略服务来实现您的要求。也可能有其他方法;这种方法只是我首先想到的。该页面末尾的示例几乎满足了您的所有需求。

然而,这是死路一条。你没有正确设计和保护 Web 应用程序和服务器,而是允许恶意方进入,然后试图避免不可避免的后果。你弄清楚他们是如何通过你的 Web 应用程序做到这一点的了吗?你修复了那个漏洞吗?这应该是你的首要任务。

除此之外,一般建议:

  1. 您的 Web 应用程序不应按照第三方的意愿发送邮件。它只能在您确定需要发送电子邮件时才发送。
  2. Web 应用程序应该始终进行身份验证mail()到邮件服务器。如果你依赖这样的功能,那就大错特错了。有几个 PHP 库知道如何进行 ESMTP 身份验证,请使用其中一个。
  3. 您的邮件服务器应该限制您的网站可以使用哪些发件人地址。并且,它还可以通过设置一些限制(每小时、每天等)来限制邮件流量;有多种方法可以做到这一点。
  4. 邮件服务器可以在发送邮件之前检查邮件是否为垃圾邮件。这样你就可以减少垃圾邮件的发送。

相关内容