Score:0

จะป้องกันเมลที่ไม่ได้รับอนุญาตที่ส่งจากเมลเซิร์ฟเวอร์ของฉันได้อย่างไร

ธง bo

ฉันมีเซิร์ฟเวอร์ Postfix ที่ให้บริการชื่อโดเมนหลายชื่อโดยตั้งค่า SPF, DMARC, DKIM อย่างถูกต้องและทดสอบหลายครั้ง ดังนั้นจึงไม่มีการปลอมแปลงเกิดขึ้น อย่างไรก็ตาม แม้ว่าฉันจะพยายามอย่างเต็มที่ในการปรับแต่งการกำหนดค่า Postfix แต่ข้อความสแปมขาออกเช่นด้านล่างมักจะเล็ดลอดผ่านเซิร์ฟเวอร์:

5 ส.ค. 08:37:38 mail postfix/error[9631]: BC96418C10: to=<[email protected]>, relay=none, delay=161913, delays=161238/676/0/0.04, dsn=4.4.2 , สถานะ=เลื่อน (การจัดส่งถูกระงับชั่วคราว: การสนทนากับ mx1.comcast.net[96.114.157.80] หมดเวลาในขณะที่ได้รับการทักทายจากเซิร์ฟเวอร์ครั้งแรก)
5 ส.ค. 10:07:45 mail postfix/error[31924]: BC96418C10: to=<[email protected]>, relay=none, delay=167320, delays=166039/1281/0/0.04, dsn=4.4.3 , สถานะ=รอการตัดบัญชี (ระงับการส่งชั่วคราว: ไม่พบโฮสต์หรือชื่อโดเมน ข้อผิดพลาดของบริการชื่อสำหรับ name=comcast.net type=MX: ไม่พบโฮสต์ โปรดลองอีกครั้ง)
5 ส.ค. 11:23:43 mail postfix/error[18751]: BC96418C10: to=<[email protected]>, relay=none, delay=171878, delays=171438/440/0/0.12, dsn=4.4.1 , สถานะ=รอการตัดบัญชี (ระงับการส่งชั่วคราว: เชื่อมต่อกับ mx2.comcast.net[2001:558:fe21:2a::6]:25: ไม่สามารถเข้าถึงเครือข่ายได้)
5 ส.ค. 12:54:11 mail postfix/error[8920]: BC96418C10: to=<[email protected]>, relay=none, delay=177306, delays=175938/1367/0/0.06, dsn=4.4.1 , สถานะ=รอการตัดบัญชี (ระงับการส่งชั่วคราว: เชื่อมต่อกับ mx1.comcast.net[2001:558:fe16:1b::15]:25: ไม่สามารถเข้าถึงเครือข่ายได้)
5 ส.ค. 14:07:22 mail postfix/error[27186]: BC96418C10: to=<[email protected]>, relay=none, delay=181697, delays=181338/359/0/0.03, dsn=4.4.1 , สถานะ=รอการตัดบัญชี (ระงับการส่งชั่วคราว: เชื่อมต่อกับ mx2.comcast.net[2001:558:fe21:2a::6]:25: ไม่สามารถเข้าถึงเครือข่ายได้)

ต่อไปนี้คือการตั้งค่า Postfix ที่อาจเกี่ยวข้อง:

virtual_alias_maps = แฮช:/etc/postfix/virtual
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
smtpd_sasl_auth_enable = ใช่
smtpd_tls_security_level = เข้ารหัส
smtp_tls_security_level = พฤษภาคม
mailbox_size_limit = 0
smtpd_tls_auth_only = ใช่
smtpd_tls_key_file = /ssl/ssl.key
smtpd_tls_CAfile = /ssl/ssl.ca
smtpd_tls_cert_file = /ssl/ssl.crt
smtp_use_tls = ใช่
smtpd_soft_error_limit = 5
smtpd_hard_error_limit = 10
milter_default_action = ยอมรับ
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
smtpd_helo_required = ใช่
smtpd_sasl_auth_enable = ใช่

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated ปฏิเสธ_unauth_destination

smtpd_recipient_restrictions = permit_sasl_authenticated cancel_unauth_destination check_policy_service unix:/var/spool/postfix/postgrey/socket permit_inet_interfaces

smtpd_sender_restrictions = ปฏิเสธ_unknown_sender_domain
    แฮช check_sender_access:/etc/postfix/access

บัญชีอีเมลที่ถูกต้องทั้งหมดอยู่ในรายการ /etc/postfix/virtual และตามหลักการแล้วมีเพียงพวกเขาเท่านั้นที่จะสามารถส่งได้และไม่มีใครอื่น นอกจากนี้ ฉันได้เพิ่มที่อยู่ IP ทั้งหมดที่โฮสต์โดเมนเหล่านั้นจริง ๆ ดังนั้นควรจะสามารถส่งจดหมายผ่านเซิร์ฟเวอร์จดหมายนี้ด้วย เครือข่ายของฉัน = การตั้งค่า

ดังนั้นถ้าฉันใส่:

smtpd_relay_restrictions = permit_mynetworks ปฏิเสธ

จากนั้นจึงป้องกันสแปมได้อย่างมีประสิทธิภาพ อย่างไรก็ตาม ในกรณีดังกล่าว ผู้ใช้ที่ถูกต้องตามกฎหมายจะไม่สามารถเชื่อมต่อกับบัญชีอีเมลของตนจากโปรแกรมอีเมลไคลเอ็นต์ เช่น โทรศัพท์มือถือ เลยต้องคลายกฎข้างต้นสักหน่อยดังนี้

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated ปฏิเสธ_unauth_destination

ใครช่วยบอกทิศทางที่ถูกต้องแก่ฉันถึงวิธีอนุญาตให้ผู้ใช้ที่ถูกต้องสามารถใช้เซิร์ฟเวอร์เมลนี้ ในขณะเดียวกันก็ป้องกันไม่ให้บุคคลอื่นทั้งหมดส่งอะไรจากเซิร์ฟเวอร์เมลนี้

แก้ไข #1:

ขอบคุณตัวชี้ anx' ฉันทำตามขั้นตอนเพิ่มเติมและนี่คือข้อมูลเมตาที่แยกด้วย postcat -vq 3825218E12 สั่งการ. ID ของข้อความแตกต่างกัน แต่ปัญหาเหมือนกัน:

postcat: name_mask: ทั้งหมด
postcat: inet_addr_local: กำหนดค่าที่อยู่ IPv4 2 รายการ
postcat: inet_addr_local: กำหนดค่าที่อยู่ IPv6 2 รายการ
*** ซองบันทึกรอการตัดบัญชี/3/3825218E12 ***
ขนาดข้อความ: 8340 682 1 0 8340
message_arrival_time: พฤ. ส.ค. 12 18:31:08 น. 2564
create_time: พฤ. 12 ส.ค. 18:31:08 น. 2021
ชื่อ_attribute: log_ident=3825218E12
name_attribute: rewrite_context=remote
name_attribute: sasl_method=เข้าสู่ระบบ
name_attribute: sasl_username=root
ผู้ส่ง: [email protected]
Name_attribute: log_client_name=unknown
Name_attribute: log_client_address=93.122.252.5
ชื่อ_attribute: log_client_port=8529
Name_attribute: log_message_origin=unknown[93.122.252.5]
name_attribute: log_helo_name=213.233.88.90
name_attribute: log_protocol_name=ESMTP
name_attribute: client_name=unknown
Name_attribute: reverse_client_name=unknown
ชื่อ_attribute: client_address=93.122.252.5
ชื่อ_attribute: client_port=8529
Name_attribute: helo_name=213.233.88.90
name_attribute: protocol_name=ESMTP
ชื่อ_attribute: client_address_type=2
ชื่อ_attribute: dsn_orig_rcpt=rfc822;[email protected]
ผู้รับเดิม: [email protected]
ผู้รับ: [email protected]
pointer_record: 0
*** เนื้อหาข้อความเลื่อน/3/3825218E12 ***
Regular_text: ได้รับ: จาก 213.233.88.90 (ไม่ทราบ [93.122.252.5])
Regular_text: โดย mail.mydomain.tld (Postfix) พร้อม ESMTPSA id 3825218E12
Regular_text: สำหรับ <[email protected]>; พฤ. 12 ส.ค. 2564 18:31:08 น. +0000 (UTC)
pointer_record: 9682
Regular_text: ตัวกรอง DKIM: ตัวกรอง OpenDKIM v2.11.0 mail.mydomain.tld 3825218E12
pointer_record: 9043
Regular_text: ลายเซ็น DKIM: v=1; a=rsa-sha256; c=ผ่อนคลาย/ผ่อนคลาย; d=thebriefguy.com;
Regular_text: s=default; t=1628793068;
Regular_text: bh=2YMB5PSTO3RHAXFabkN43xdUCrxjEQOw0Xw/uLJ1zX8=;
Regular_text: h=จาก:ถึง:เรื่อง:วันที่:จาก;
Regular_text: b=edi8WNplYs2gx/aYmKl9vbY1OE3jfVZ284faDviyICbDTm51y5CgBXg3QzcSHuaL6
Regular_text: PsxGqHaqqXnF32EsA0UnqQ2q71Z8DVeEnQVp1njnqA3ECE3hiWj8UUeobRClZw7eEP
Regular_text: z2PK95dI6kfHlCcBnEgJph2pr5ilxDv4Brl9s02s7Q/2ikwHHGWh+8Gwr24CQfnBJK
Regular_text: lXrkBZVgmi65/6b6kVxmto+3oqV9avsd/9ja+CcMRs7+CsKjeHz7GA/9P3yB24/fNT
Regular_text: sAjWFvQA14zkcEjFpPmZFm/6ZjLkf0pi53vx+JamwdB5C4KzhDSKkgX6rXNYYwMu+o
Regular_text: jcADLvrnBCDtQ==
Regular_text: รหัสข้อความ: <[email protected]>
pointer_record: 936
Regular_text: จาก: Xfinity <[email protected]>
Regular_text: ถึง: [email protected]
Regular_text: หัวเรื่อง: การอัปเดตที่สำคัญ
Regular_text: วันที่: พฤ. 12 ส.ค. 2564 11:31:06 -0700
Regular_text: องค์กร: Xfinity
Regular_text: เวอร์ชัน MIME: 1.0
Regular_text: ประเภทเนื้อหา: text/html; ชุดอักขระ = "utf-8"
Regular_text: การเข้ารหัสการถ่ายโอนเนื้อหา: ยกมา-พิมพ์ได้
pointer_record: 0
Regular_text:

ฉันกังวลเกี่ยวกับบรรทัดเฉพาะเหล่านี้:

name_attribute: sasl_method=เข้าสู่ระบบ
name_attribute: sasl_username=root

ฉันได้เปลี่ยนรหัสผ่านของรูทด้วย:

รูต saslpasswd2

อย่างไรก็ตาม ฉันไม่แน่ใจว่าจะตีความโค้ดด้านบนอย่างไร และพวกเขาสามารถเข้าสู่ระบบในฐานะรูทได้อย่างไร เซิร์ฟเวอร์อีเมลได้รับการกำหนดค่าใหม่และฉันไม่เคยแตะต้องผู้ใช้ sasl ราก ก่อนหน้านี้ ฉันสงสัยว่ามันมาพร้อมกับรหัสผ่านเริ่มต้นบางประเภทหรือไม่ และจำเป็นต้องเปลี่ยนตลอดเวลาหรือไม่ นอกจากนี้ ฉันสงสัยว่ามีการดำเนินการตามขั้นตอนเพียงพอที่จะแก้ไขปัญหาหรือมีขั้นตอนเพิ่มเติมที่แนะนำหรือไม่

แก้ไข #2:

นี่คือผลลัพธ์ของ โพสต์คอนเฟอเรนซ์ -n สั่งการ:

alias_database = แฮช:/etc/aliases
alias_maps = แฮช:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
default_destination_concurrency_limit = 1
home_mailbox = จดหมาย/
html_directory = ไม่
inet_interfaces = ทั้งหมด
inet_protocols = ทั้งหมด
initial_destination_concurrency = 1
mail_owner = โปรแกรมแก้ไขภายหลัง
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
milter_default_action = ยอมรับ
mydestination = mail.mydomain.tld, เมล, localhost
มายโดเมน = mydomain.tld
ชื่อโฮสต์ของฉัน = mail.mydomain.tld
mynetworks = บล็อคที่อยู่ IP ที่ถูกปกปิด
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = inet:localhost:8891
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sender_bcc_maps = แฮช:/etc/postfix/bcc
sender_dependent_default_transport_maps = hash:/etc/postfix/dependent
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = เลื่อนลง
smtp_tls_security_level = พฤษภาคม
smtp_use_tls = ใช่
smtpd_hard_error_limit = 10
smtpd_helo_required = ใช่
smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated ปฏิเสธ_invalid_helo_hostname ปฏิเสธ_non_fqdn_helo_hostname ปฏิเสธ_unknown_helo_hostname check_helo_access hash:/etc/postfix/helo_access
smtpd_milters = inet:localhost:8891
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_non_fqdn_hostname reject_non_fqdn_sender reject_non_fqdn_recipient reject_unauth_destination reject_unauth_pipelining reject_invalid_hostname reject_unknown_reverse_client_hostname reject_rbl_client bl.spamcop.net reject_rhsbl_helo dbl.spamhaus.org reject_rhsbl_reverse_client dbl.spamhaus.org reject_rhsbl_sender dbl.spamhaus.org reject_rbl_client zen.spamhaus.org permit_dnswl_client swl.spamhaus.org
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated ปฏิเสธ_unauth_destination ปฏิเสธ_rbl_client sbl.spamhaus.org ใบอนุญาต
smtpd_sasl_auth_enable = ใช่
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated ปฏิเสธ_unknown_sender_domain, แฮช check_sender_access:/etc/postfix/การเข้าถึง ปฏิเสธ_unknown_reverse_client_hostname ปฏิเสธ_unknown_client_ชื่อโฮสต์
smtpd_soft_error_limit = 5
smtpd_tls_CAfile = /ssl/ssl.ca
smtpd_tls_auth_only = ใช่
smtpd_tls_cert_file = /ssl/ssl.crt
smtpd_tls_key_file = /ssl/ssl.key
smtpd_tls_security_level = เข้ารหัส
known_local_recipient_reject_code = 550
virtual_alias_maps = แฮช:/etc/postfix/virtual

และนี่คือผลลัพธ์ของ โพสต์คอนเฟอเรนซ์-ม:

smtp inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_security_level=พฤษภาคม
รถกระบะยูนิกซ์ n - n 60 1 รถกระบะ
การล้างข้อมูลยูนิกซ์ n - n - 0 การล้างข้อมูล
qmgr ยูนิกซ์ n - n 300 1 qmgr
tlsmgr ยูนิกซ์ - - n 1,000? 1 tlsmgr
เขียนซ้ำยูนิกซ์ - - n - - เขียนใหม่เล็กน้อย
เด้งยูนิกซ์ - - n - 0 เด้ง
เลื่อนยูนิกซ์ - - n - 0 เด้ง
ติดตามยูนิกซ์ - - n - 0 ตีกลับ
ตรวจสอบยูนิกซ์ - - n - 1 ตรวจสอบ
ล้างยูนิกซ์ n - n 1,000? 0 ล้าง
พร็อกซีแมปยูนิกซ์ - - n - - พร็อกซีแมป
proxywrite unix - - n - 1 พร็อกซีแมป
smtp ยูนิกซ์ - - n - - smtp
รีเลย์ยูนิกซ์ - - n - - smtp
showq ยูนิกซ์ n - n - - showq
ข้อผิดพลาดยูนิกซ์ - - n - - ข้อผิดพลาด
ลองใหม่ยูนิกซ์ - - n - - ข้อผิดพลาด
ทิ้งยูนิกซ์ - - n - - ทิ้ง
ยูนิกซ์ท้องถิ่น - n n - - ท้องถิ่น
ยูนิกซ์เสมือน - n n - - เสมือน
lmtp ยูนิกซ์ - - n - - lmtp
ทั่งยูนิกซ์ - - n - 1 ทั่ง
Scache ยูนิกซ์ - - n - 1 Scache
การส่ง inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_security_level=พฤษภาคม
smtps inet n - n - - smtpd -o smtpd_sasl_auth_enable=ใช่ -o smtpd_tls_security_level=อาจ -o smtpd_tls_wrappermode=ใช่
in flag
รายการบันทึกที่คุณโพสต์ไม่แสดงสัญญาณของจดหมายที่ไม่ได้รับอนุญาต นั่นเป็นเพียงข้อผิดพลาดทั่วไปของเครือข่าย
in flag
"กฎที่คลายออก" ของคุณไม่มีเครื่องหมายจุลภาค
bo flag
ขอบคุณสำหรับการอัพเดท. ฉันเกรงว่ามันจะถูกส่งมาจากเซิร์ฟเวอร์ เพราะคำสั่ง `mailq` มีขนาดใหญ่และฉันต้องเรียกใช้ `postsuper -d ALL` และไม่มีใครในโดเมนที่โฮสต์มีอะไรกับ `[email protected]`
bo flag
คุณสามารถใส่เครื่องหมายจุลภาคได้ แต่อาจไม่ได้เช่นกัน มันใช้งานได้ทั้งสองวิธี
Michael Hampton avatar
cz flag
โปรดโพสต์ _all_ ของรายการบันทึกที่เกี่ยวข้องกับข้อความดังกล่าว ไม่ใช่แค่บรรทัดเดียว
Score:1
ธง fr
anx

เหตุผลที่เซิร์ฟเวอร์ของคุณพยายามส่งต่อข้อความนี้ดูเหมือนจะไม่ชัดเจนจากสิ่งที่คุณโพสต์ แต่ขั้นตอนต่อไปของคุณควรเป็น:

ค้นหาว่าข้อความนี้มาจากไหน รหัสฐานสิบหกนั้น (BC96418C10) เรียกว่า รหัสคิว เป็นคำหลักที่จะค้นหาในบันทึกของคุณเพื่อดูว่าใครเป็นผู้ส่งข้อความนี้ไปยังเซิร์ฟเวอร์ของคุณ นอกจากนี้คุณควรใช้ แมวหลังแมว เพื่อแสดงข้อความและข้อมูลเมตาที่เกี่ยวข้อง

ทั้งสองสิ่งนี้ควรช่วยชี้แจงว่าข้อความนี้ส่งถึงเซิร์ฟเวอร์ของคุณเมื่อใดและอย่างไร และคุณจะมีผู้ใช้ที่ไม่เหมาะสม ข้อมูลประจำตัวของผู้ใช้ที่ถูกบุกรุก ช่องโหว่ในชุดข้อจำกัดของคุณ หรือเซิร์ฟเวอร์ที่ถูกบุกรุกโดยสิ้นเชิง


ตอนนี้เกี่ยวกับการอัปเดตของคุณ: ราก เป็นชื่อผู้ใช้ที่ค่อนข้างแปลกสำหรับการยืนยันตัวตนกับระบบเมล แต่ถ้าไม่มีใครยุ่งกับเรื่องนั้น นั่นคือข้อมูลรับรอง SASL ที่ใช้ในการส่งข้อความนี้ไปยังเซิร์ฟเวอร์ของคุณ

name_attribute: sasl_method=เข้าสู่ระบบ
name_attribute: sasl_username=root

ด้วยดูที่การกำหนดค่า postfix ของคุณ (ลอง โพสต์คอนเฟอเรนซ์ -n และ โพสต์คอนเฟอเรนซ์-ม) มันอาจจะชัดเจนกว่าโปรแกรมใดที่ยอมรับการเข้าสู่ระบบนั้น (cyrus? dovecot?) และตำแหน่งที่จะปิดการใช้งานผู้ใช้นั้น คุณอาจต้องการรวบรวมข้อมูลในฐานข้อมูลผู้ใช้ sasl ของคุณและโพสต์คำถามใหม่เกี่ยวกับปัญหาในการค้นหาส่วนนั้น

ถ้า ราก ผู้ใช้ระบบมีรหัสผ่านจริง ๆ และใช้ในการส่งจดหมาย. ใช้เพื่อเข้าสู่เซิร์ฟเวอร์. ในหลาย ๆ ระบบจะไม่ให้ผู้ใช้ ราก มี การตั้งค่ารหัสผ่าน และรหัสผ่านไม่ควรเป็นกลไกที่ถูกต้องในการรับเชลล์ระยะไกล ดังนั้นจึงมีโอกาสที่การประนีประนอมนี้จะจำกัดเฉพาะอีเมลเท่านั้น

bo flag
ชื่นชมมากเพราะฉันดูเหมือนจะมาถูกทางแล้วในการแก้ไขปัญหานี้ต่อไป ฉันจะยอมรับนี่เป็นคำตอบที่ถูกต้อง ในขณะเดียวกัน จะดีมากถ้าคุณสามารถอ่านส่วนที่แก้ไขแล้วของโพสต์ที่อัปเดตด้านบน ขอบคุณมากอีกครั้ง!
bo flag
ขอบคุณสำหรับคำตอบที่อัปเดต ฉันเกรงว่าการตั้งคำถามใหม่จะทำให้บริบททั้งหมดของปัญหาหายไป ดังนั้นฉันจึงทำการอัปเดตอีกครั้งด้วยผลลัพธ์ของคำสั่ง `postconf -n` และ `postconf -M` คุณช่วยฉันระบุว่าโปรแกรมใดยอมรับการเข้าสู่ระบบนั้น ฉันไม่คิดว่าเรามี `cyrus` แต่เรามี `dovecot` ขั้นตอนต่อไปของคุณในการแก้ไขปัญหานี้คืออะไร ผู้ใช้รูทของระบบ BTW ถูกตั้งค่าเป็น nologin และไม่มีรหัสผ่าน ดังนั้นผู้ใช้ `รูท' ในบันทึกจึงเป็นคนละอันกัน อาจเป็นเพราะระบบเมล แต่ฉันไม่แน่ใจ
bo flag
ตกลง ตามคำแนะนำของคุณ ฉันได้สร้างคำถามอื่นบน https://serverfault.com/questions/1075116/how-to-prevent-sasl-username-root-from-loggin-in คุณช่วยดูหน่อยได้ไหม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา