วิธีหยุด Sendmail ส่งเมลจาก IPv6 แทน IPv4


11

วันนี้ฉันสังเกตเห็นว่า Gmail ส่งข้อความทั้งหมดที่ได้รับจากเซิร์ฟเวอร์ของฉันไปยังโฟลเดอร์สแปม ฉันตรวจสอบส่วนหัวของข้อความและพบสิ่งต่อไปนี้:

Authentication-Results: mx.google.com;
       spf=neutral (google.com: 2001:4ba0:cafe:........ is neither permitted nor denied by best guess record for domain of root@myserver.com) smtp.mail=root@myserver.com

ดังนั้นดูเหมือนว่า Sendmail จะส่งจดหมายจาก IPv6 adress insrtead ของ IPv4 และไม่มีระเบียน SPF และ PTR สำหรับ IPv6 ฉันจะบังคับให้ Sendmail ส่งจดหมายจาก IPv4 ได้อย่างไร

ขอบคุณ


4
เนื่องจากคุณมีการเชื่อมต่อ v6 จะดีกว่าถ้าคุณสามารถเพิ่มการค้นหาแบบย้อนกลับและบันทึก MX สำหรับจดหมายที่เข้ากันได้ v6 ของคุณ แต่นั่นไม่ใช่สิ่งที่คุณถาม
sysadmin1138

คำตอบ:


10

อย่าปิดการใช้งาน IPv6 มันไม่ได้เป็นตัวเลือกอีกต่อไปและคุณจะไม่สามารถสื่อสารกับบางคนได้หากไม่มีมัน

ให้แก้ไขระเบียน SPF ของคุณเพื่อให้ส่งผ่านอีเมลที่มาจากที่อยู่ IPv6 ของคุณแทน


และถ้าคุณผู้ให้บริการ VPS ไม่ต้องการตั้งค่าระเบียน SPF สำหรับ IPv6 :(
brodul

2
@brodul ผู้ให้บริการ VPS ของคุณทำอะไรกับระเบียน DNS ของคุณ
Michael Hampton

การแก้ไขระเบียน SPF ของฉันไม่ได้แก้ปัญหา - เพราะฉันส่งต่อจดหมายไปยัง GMail ดังนั้นเซิร์ฟเวอร์การส่งต่อของฉันจะไม่ผ่านการตรวจสอบ SPF
James Roper

3
Gmail ในขณะนี้ยังต้องการการทำงานย้อนกลับสำหรับผู้ส่ง IPv6 มีอยู่กลับทำงานเป็นแน่นอนออกมาจากมือของคุณและขึ้นไปยังเซิร์ฟเวอร์ของผู้ให้บริการ / เครือข่ายของคุณ
Vladimir Panteleev

คุณแน่ใจไหม? หากฉันไม่เข้าใจผิด gmail ต้องใช้เรคคอร์ด SPF ที่ถูกต้องในปัจจุบันเท่านั้น (และคุณต้องฝึกอบรม AI ของพวกเขาโดยคลิกที่ "ไม่ใช่สแปม" สองสามครั้ง)
autra

11

ใน sendmail.mc ของคุณเพิ่ม:

CLIENT_OPTIONS ( `ครอบครัว = inet) dnl

จากนั้นสร้าง sendmail.cf และเริ่มต้น sendmail ใหม่ ใน Debian คุณทำได้โดยเรียกใช้> sendmailconfig ใน CentOS คุณจะเรียกใช้ / etc / mail / make ตามด้วยบริการ sendmail เริ่มต้นใหม่ อื่น ๆ > ระบบมีวิธีอื่นในการทำเช่นนี้

ขอบคุณสำหรับการโพสต์สิ่งนี้และแน่นอนฉันได้รับในการติดตาม อย่างไรก็ตามฉันลองสิ่งนี้ แต่มันก็ยังไม่ทำงานสำหรับฉัน ในฐานะที่เป็นบันทึกย่อเราได้รับการปฏิเสธจากเซิร์ฟเวอร์อีเมลของ Google เนื่องจากเราไม่มีรายการ DNS ย้อนกลับสำหรับ IPv6 สิ่งนี้เกี่ยวข้องกับการกำหนดค่า VPS ของเราไม่ใช่การกำหนดค่า DNS ของเราเนื่องจากรายการ DNS ย้อนกลับที่เป็นตัวเลขต้องไปที่ใครก็ตามที่เป็นเจ้าของบล็อคของที่อยู่ IP และนั่นคือ VPS ของฉัน

อย่างไรก็ตามเท่าที่ฉันเห็นมีวิธีปิด sendmail โดยใช้ IPv6 เป็นลูกค้าโดยเฉพาะ ความละเอียดที่ยุ่งยากเล็กน้อยที่ฉันได้มาคือการระบุตัวเลือก IPv6 เพื่อใช้รูปแบบความเข้ากันได้ของ IPv6 ของที่อยู่ IPv4

เช่นหากที่อยู่ IPv4 ของคุณคือ 1.2.3.4 ให้ระบุ:

CLIENT_OPTIONS ( `ครอบครัว = inet6, Addr = :: ffff: 1.2.3.4' ) dnl

ใช้เสน่ห์สำหรับฉันและเท่าที่ฉันเห็นนี่ยังไม่ได้บันทึกไว้ที่ใดเลย


ขอบคุณมากสำหรับคำตอบของคุณ! มันเป็นการหลอกลวงสำหรับฉันบนเซิร์ฟเวอร์ที่ฉันไม่สามารถเข้าถึง IPv6 PTR และ sendmail นั้นหัวแข็งที่จะใช้สำหรับ Gmail
Luxian

4

ในการsendmail.mcเพิ่มของคุณ:

CLIENT_OPTIONS(`Family=inet')dnl

จากนั้นสร้างsendmail.cfและรีสตาร์ท sendmail ใน Debian sendmailconfigคุณทำเช่นนี้โดยการเรียกใช้ ใน CentOS คุณเรียกตาม/etc/mail/make service sendmail restartระบบอื่นมีวิธีอื่นในการทำเช่นนี้


0

แค่อยากจะแบ่งปันสิ่งนั้นให้ฉัน (ตอนนี้ในปีพ. ศ. 2561) สิ่งที่ใช้ได้ผลคือการระบุตัวกรอง -aaaa-on-v4 ใช่; ในการผูกท้องถิ่นของฉัน named.conf ต่อhttps://kb.isc.org/docs/aa-00576 (ยกเว้นคำสั่ง filter-aaaa-on-v6 ที่กล่าวถึงไม่มีอยู่ในใจของฉัน) ชื่อที่น่าจะเป็น -4 ก็น่าจะใช้ได้เช่นกัน สิ่งนี้กับ sendmail และผูกไว้บน centos7 [.5.1804]

ทุกสิ่งที่ฉันลองใช้รวมถึงคำตอบที่นี่ gmail ตีกลับอีเมลของฉันด้วยข้อความที่หวั่น "ข้อความนี้ไม่เป็นไปตามแนวทางการส่ง IPv6" เพราะที่จริงแล้วฉันไม่มีที่อยู่ย้อนกลับสำหรับที่อยู่ ipv6 ของฉัน (isp ยาก)

สิ่งอื่น ๆ ที่ไม่ได้ทำงาน: define ( confBIND_OPTS',-use_inet6' ) (aka ResolverOptions) ใน submit.mc และ sendmail.mc ต่อhttps://lists.debian.org/debian-user/2004/09/msg01410.html ฉันไม่รู้ว่าทำไม

การเปลี่ยน /etc/gai.conf (ต่อhttps://centosfaq.org/centos/etcgaiconf-fails-to-prefer-ipv4-over-ipv6-for-nfs/ ), น่าจะเป็นเพราะ sendmail ใช้ gethostbyname / addr ไม่ใช่ getaddrinfo, และ gai.conf จะมีผลกับหลังเท่านั้น

โอ้ฉันมีวิธีแก้ไขปัญหาอื่น: รวบรวม sendmail จากแหล่งที่มาและปิดการใช้งาน v6 ในระดับนั้น น่าเสียดายที่ไม่มีคำสั่งรันไทม์ที่เทียบเท่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.