ฉันมีสแปมโจมตีบนเว็บไซต์ของฉัน บางคนใช้อีเมลของฉันเพื่อส่งอีเมลขยะให้ทุกคน
ตอนนี้ฉันวางแผนที่จะหาทางหยุดมัน
ฉันเห็นคนปฏิเสธอีเมลด้วย regex แต่ฉันมีอีเมลที่แตกต่างกันมากมาย (ผู้ใช้ 50,000 คน)
ฉันต้องการดูว่ามีอีเมลในฐานข้อมูลหรือไม่ ฉันจึงอนุญาต มิฉะนั้นกักกัน ไม่ต้องการให้ติดอยู่ในคิวส่งจดหมาย
ฉันมี greylist.pl นี้:
#หลัก.cf
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, cancel_unauth_destination, check_policy_service unix:/private/greylist
#มาสเตอร์.cf
greylist unix - n n - - วางไข่ user=nobody argv=/usr/bin/perl /tmp/mailrejct.
แต่เมื่อฉันใช้งาน ฉันได้รับข้อผิดพลาดเหล่านี้ในเมลล็อก:
25 ธันวาคม 09:24:58 smart-mahavira postfix/spawn[107258]: คำเตือน: command /usr/bin/perl exit status 2
25 ธันวาคม 09:24:58 smart-mahavira postfix/smtpd[107253]: คำเตือน: การสิ้นสุดอินพุตก่อนเวลาอันควรบน /private/greylist ขณะอ่านชื่อแอตทริบิวต์อินพุต
25 ธันวาคม 09:24:59 smart-mahavira postfix/spawn[107258]: คำเตือน: command /usr/bin/perl exit status 2
25 ธันวาคม 09:24:59 smart-mahavira postfix/smtpd[107253]: คำเตือน: การสิ้นสุดอินพุตก่อนกำหนดบน /private/greylist ขณะอ่านชื่อแอตทริบิวต์อินพุต
25 ธันวาคม 09:24:59 smart-mahavira postfix/smtpd[107253]: คำเตือน: ปัญหาในการพูดคุยกับเซิร์ฟเวอร์ /private/greylist: การเชื่อมต่อถูกรีเซ็ตโดยเพียร์
ฉันแทนที่ smtpd_access_policy
กับฉัน นั่นคือความแตกต่างอย่างหนึ่ง ใครเชี่ยวชาญด้านนี้.
ใครเป็นผู้ส่งค่าแอตทริบิวต์ โพสต์ฟิกซ์? มันผ่านไปได้อย่างไร?
ไม่ได้รับการแก้ไข ใช้สำหรับรับอีเมล์เท่านั้น สำหรับสแปมที่เข้ามาเท่านั้น
สำหรับอีเมลขาออกจะมีการตรวจสอบรูปแบบเท่านั้น
1 #!/bin/sh
2
3 # ตัวกรองที่ใช้เปลือกอย่างง่าย มีความหมายที่จะเรียกใช้ดังนี้:
4 # /path/to/script -f ผู้รับผู้ส่ง...
5
6 # แปลภาษาเหล่านี้ ตัวเลือก -G ไม่ได้ทำอะไรเลยก่อน Postfix 2.3
7 INSPECT_DIR=/var/spool/filter
8 SENDMAIL="/usr/sbin/sendmail -G -i" # ไม่เคย ไม่เคย ไม่เคยใช้ "-t" ที่นี่
9
10 # รหัสออกจาก <sysexits.h>
11 EX_TEMPFAIL=75
12 EX_UNAVAILABLE=69
13
14 # ทำความสะอาดเมื่อทำเสร็จแล้วหรือเมื่อทำแท้ง
15 กับดัก "rm -f in.$$" 0 1 2 3 15
16
17 # เริ่มการประมวลผล
18 ซีดี $INSPECT_DIR || {
19 echo $INSPECT_DIR ไม่มีอยู่; ออกจาก $EX_TEMPFAIL; }
20
21 แมว >in.$$ || {
22 echo ไม่สามารถบันทึกเมลไปยังไฟล์ได้ ออกจาก $EX_TEMPFAIL; }
23
24 # ระบุตัวกรองเนื้อหาของคุณที่นี่
25 # ตัวกรอง <in.$$ || {
26 # echo เนื้อหาข้อความถูกปฏิเสธ; ออกจาก $EX_UNAVAILABLE; }
27
28 $SENDMAIL "$@" <ใน.$$
29
30 ทางออก $?
ด้านบนสามารถแปลงเป็นรหัส php ได้หรือไม่ ฉันสงสัยว่าถ้าฉันส่งเมลจาก php มันจะกลับมาที่เดิมหรือไม่
ผู้บริหาร ("/usr/sbin/sendmail $email < /etc/postfix/myfilter/email.txt");
ฉันต้องใส่เนื้อหาอีเมลลงใน email.txt เมื่อฉันทำการทดสอบทั้งหมด มันทำให้อีเมลยุ่งเหยิงพร้อมรายละเอียดและเนื้อหาที่แสดงเนื้อหาและส่วนหัวทั้งหมด
ฉันต้องทำความสะอาด
จาก [email protected] อา. 26 ธ.ค. 12:31:47 น. 2021
ได้รับ: จาก webmail.test.com (localhost.localdomain [IPv6:::1])
โดย smart-mahavira.51-163-215-224.plesk.page (Postfix) พร้อม ESMTPSA id B9CFD82DA1
สำหรับ <[email protected]>; อา. 26 ธ.ค. 2021 12:31:47 +0000 (UTC)
ผลการพิสูจน์ตัวตน: smart-mahavira.51-163-215-224.plesk.page;
spf=pass (IP ผู้ส่งคือ ::1) [email protected] smtp.helo=webmail.test.com
ได้รับ-SPF: ผ่าน (อัจฉริยะ-mahavira.51-163-215-224.plesk.page: การเชื่อมต่อได้รับการตรวจสอบความถูกต้อง)
MIME-เวอร์ชัน: 1.0
วันที่: อา. 26 ธ.ค. 2564 04:31:47 -0800 น
จาก: [email protected]
ถึง: alex3 <[email protected]>
หัวเรื่อง: การทดสอบตัวกรอง2
ตัวแทนผู้ใช้: Roundcube Webmail/1.4.11
รหัสข้อความ: <[email protected]>
X-Sender: [email protected]
ประเภทเนื้อหา: ข้อความ/ธรรมดา; ชุดอักขระ = US-ASCII;
รูปแบบ=โฟลว์
การเข้ารหัสการถ่ายโอนเนื้อหา: 7 บิต
X-PPP-Message-ID: <164052190789.24073.12166249882816501264@intelligent-mahavira.51-163-215-224.plesk.page>
X-PPP-Vhost: test.com
สสส
ฉันเห็นสิ่งนี้ใน google จะลองในวันพรุ่งนี้โดยใช้ regex เพื่อกรองหัวเรื่องจากประเภทเนื้อหาและเนื้อหา
ถึง: [email protected]
เรื่อง: นี่คือข้อความ HTML
จาก: [email protected]
ประเภทเนื้อหา: text/html; ชุดอักขระ = "utf8"
<html>
<เนื้อหา>
<รูปแบบ div="
สีพื้นหลัง:
#abcdef; ความกว้าง: 300px;
ความสูง: 300px;
">
</div>
คุณสามารถเพิ่ม HTML ของอีเมลที่ถูกต้องได้ที่นี่
</body>
</html>
- Greylisting - เราสามารถให้ข้อเสนอแนะการเข้าถึงในรูปแบบของ "dunno" , "ปฏิเสธข้อความเพิ่มเติม"
- ตัวกรองธรรมดาไม่มีข้อเสนอแนะ ตัวกรองต้องจัดการกับการส่งอีเมล ไม่ชัดเจนว่าทำอย่างไร โดยทั่วไปฉันจับภาพ STDIN ทั้งหมดและส่งเป็นอีเมล แต่มีส่วนหัวทั้งหมด ไม่ทราบว่าไฟล์แนบจัดการอย่างไร ต้องดูว่ามันแสดงอะไรเมื่อฉันส่งไฟล์แนบ
- การกรองขั้นสูงดูสับสน ฉันเห็นว่าการรักษาความปลอดภัยอีเมลเพล็กซ์ใช้สิ่งนั้น เมื่อฉันเพิ่มมันเพิ่มสิ่งนี้ใน 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=ไม่
-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,ปฏิเสธ
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,ปฏิเสธ
-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=1,000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o รับ_override_options=no_unknown_recipient_checks,no_header_body_checks
-o local_header_rewrite_clients=
การส่ง inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=เข้ารหัส
-o smtpd_sasl_auth_enable=ใช่
-o smtpd_client_restrictions=permit_sasl_authenticated ปฏิเสธ
-o smtpd_relay_restrictions=permit_sasl_authenticated ปฏิเสธ
-o content_filter=smtp-amavis:[127.0.0.1]:10026
รถกระบะยูนิกซ์ n - n 60 1 รถกระบะ
-o content_filter=smtp-amavis:[127.0.0.1]:10026
นี่คืออีเมลที่บันทึกไว้ใน data.txt และส่งด้วยตนเองหากตรงกับอีเมลผู้รับในระบบ
ได้รับ: จาก webmail.test.com (localhost.localdomain [IPv6:::1])
โดย smart-mahavira.serverip.plesk.page (Postfix) พร้อม ESMTPSA id C7E7282E1B;
อ. 28 ธ.ค. 2564 00:36:31 +0000 (UTC)
การรับรองความถูกต้อง-ผลลัพธ์: smart-mahavira.serverip.plesk.page;
spf=pass (IP ผู้ส่งคือ ::1) [email protected] smtp.helo=webmail.test.com
ได้รับ-SPF: ผ่าน (อัจฉริยะ-mahavira.serverip.plesk.page: การเชื่อมต่อได้รับการพิสูจน์ตัวตน)
MIME-เวอร์ชัน: 1.0
วันที่: จันทร์ 27 ธ.ค. 2564 16:36:31 -0800 น
จาก: [email protected]
ถึง: alex2 <[email protected]>, alex3 <[email protected]>,
[email protected]
หัวเรื่อง : สอบติด
ตัวแทนผู้ใช้: Roundcube Webmail/1.4.11
รหัสข้อความ: <[email protected]>
X-Sender: [email protected]
ประเภทเนื้อหา: หลายส่วน/ผสม;
ขอบเขต="=_5745fc7d762d12dda4165a3e0be576fc"
X-PPP-Message-ID: <164065179196.8458.1248882909976426707@intelligent-mahavira.serverip.plesk.page>
X-PPP-Vhost: test.com
--=_5745fc7d762d12dda4165a3e0be576fc
การเข้ารหัสการถ่ายโอนเนื้อหา: 7 บิต
ประเภทเนื้อหา: ข้อความ/ธรรมดา; ชุดอักขระ = US-ASCII;
รูปแบบ=โฟลว์
ไฟล์แนบสำเร็จหรือไม่
--=_5745fc7d762d12dda4165a3e0be576fc
การเข้ารหัสการถ่ายโอนเนื้อหา: base64
ประเภทเนื้อหา: รูปภาพ/jpeg;
name=536_PIA23645_PaleBlueDotRevisited_1600.jpg
การจัดการเนื้อหา: ไฟล์แนบ;
ชื่อไฟล์=536_PIA23645_PaleBlueDotRevisited_1600.jpg;
ขนาด=74009
/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMcaHR0cDov
ปัญหาคือไม่มีหัวเรื่องในอีเมล มันซ่อนอยู่ในส่วนหัว น่าเกลียด.
ผลลัพธ์
อีเมลขาเข้าแจ้งว่า gmail ..i มีการทดสอบการตีกลับทั้งหมด
การตอบสนองจากเซิร์ฟเวอร์ระยะไกลคือ:
554 5.7.1 [email protected]: ที่อยู่ผู้รับถูกปฏิเสธ: อนุญาตให้ใช้อีเมลระหว่างผู้ใช้เท่านั้น อีเมลผู้รับ= [email protected]
ใช้วิธีการนโยบาย
อีเมลขาออก ฉันกำลังส่งอีเมลสำหรับผู้ใช้ที่ถูกต้องและปฏิเสธ / กักกันอีเมลอื่น .. ฉันไม่ได้รับภาพตีกลับ ฉันต้องมีข้อความเดียวกันสำหรับอีเมลขาออก
ใช้ตัวกรองเนื้อหาอย่างง่าย