Score:6

ไม่มีส่วนหัว DKIM ในเมลที่ส่งจาก postfix

ธง pl

ฉันมี postfix สองอัน อันหนึ่งสำหรับรับเมลและอีกอันสำหรับส่งเมล และฉันมีปัญหาในการเซ็นชื่อ dkim บนเมลขาออกของฉัน ฉันทำตามนี้ กวดวิชา.

บันทึกไม่ได้ช่วยให้ฉันชี้ไปที่ปัญหาหลัก OpenDKIM ทำงานได้ดี:

â opendkim.service - เซิร์ฟเวอร์ OpenDKIM DomainKeys Identified Mail (DKIM)
     โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/opendkim.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
     ใช้งานอยู่: ใช้งานอยู่ (ทำงาน) ตั้งแต่วันศุกร์ที่ 2021-06-18 17:39:40 UTC; 4 วินาทีที่แล้ว
       เอกสาร: man:opendkim(8)
             ผู้ชาย:opendkim.conf(5)
             ชาย:opendkim-genkey(8)
             ชาย:opendkim-genzone(8)
             ผู้ชาย:opendkim-testadsp(8)
             ผู้ชาย: opendkim-testkey
             http://www.opendkim.org/docs.html
    กระบวนการ: 246310 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (code=exited, status=0/SUCCESS)
   PID หลัก: 246321 (opendkim)
      งาน: 7 (จำกัด: 4681)
     หน่วยความจำ: 2.8M
     CGroup: /system.slice/opendkim.service
             ââ246321 /usr/sbin/opendkim -x /etc/opendkim.conf
             ââ246322 /usr/sbin/opendkim -x /etc/opendkim.conf

18 มิ.ย. 17:39:40 testmailcdo systemd[1]: การเริ่มต้น OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
18 มิ.ย. 17:39:40 testmailcdo systemd[1]: เริ่มต้น OpenDKIM DomainKeys Identified Mail (DKIM) Milter
18 มิ.ย. 17:39:40 testmailcdo opendkim[246322]: OpenDKIM Filter v2.11.0 เริ่มต้น (args: -x /etc/opendkim.conf)

postfix ของฉัน main.cf:

milter_default_action = ยอมรับ
milter_protocol=6
#smtpd_milters = inet:localhost:8891
smtpd_milters = ท้องถิ่น:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters

มาสเตอร์.cf:

smtp inet n - y - - smtpd
#smtp inet n - y - 1 โพสต์สกรีน
#smtpd ผ่าน - - y - - smtpd
#dnsblog ยูนิกซ์ - - y - 0 dnsblog
#tlsproxy ยูนิกซ์ - - y - 0 tlsproxy
การส่ง inet n - y - - smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=พฤษภาคม
  -o smtpd_sasl_auth_enable=ใช่
# -o smtpd_tls_wrappermode=ไม่
# -o smtpd_tls_auth_only=ใช่
  -o smtpd_enforce_tls=ใช่
# -o smtpd_reject_unlisted_recipient=ไม่
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=$smtpauth_recipient_restrictions
# -o smtpd_relay_restrictions=permit_sasl_authenticated ปฏิเสธ
  -o smtpd_client_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_sasl_tls_security_options=noanonymous

opendkim.conf:

# นี่คือการกำหนดค่าพื้นฐานที่สามารถปรับให้เหมาะกับมาตรฐานได้อย่างง่ายดาย
# การติดตั้ง. สำหรับตัวเลือกขั้นสูง โปรดดู opendkim.conf(5) และ/หรือ
# /usr/share/doc/opendkim/examples/opendkim.conf.sample

# เข้าสู่ syslog
Syslog ใช่
# จำเป็นต้องใช้ซ็อกเก็ตในเครื่องกับ MTA ที่เข้าถึงซ็อกเก็ตที่ไม่ใช่
# ผู้ใช้ที่ได้รับสิทธิพิเศษ (เช่น Postfix)
ยูมาส์ก007

# ลงชื่อเข้าใช้ example.com ด้วยรหัสใน /etc/dkimkeys/dkim.key โดยใช้
# ตัวเลือก '2007' (เช่น 2007._domainkey.example.com)
#โดเมนtestmailcdo.apolloglobal.net
#KeyFile /etc/dkimkeys/dkim.key
#เลือกจดหมาย1

# ตัวเลือกที่ใช้กันทั่วไป; เวอร์ชันที่แสดงความคิดเห็นจะแสดงค่าเริ่มต้น
Canonicalization ผ่อนคลาย / ผ่อนคลาย
โหมด sv
หมายเลขโดเมนย่อย

รีสตาร์ทอัตโนมัติ ใช่
AutoRestartRate 10/1M
พื้นหลังใช่
DNSTimeout 5
อัลกอริทึมลายเซ็น rsa-sha256

# ซ็อกเก็ต smtp://localhost
#
# ## ซ็อกเก็ต socketspec
# ##
# ## ตั้งชื่อซ็อกเก็ตที่ตัวกรองนี้ควรฟังสำหรับการเชื่อมต่อ milter
# ##
# ## ตั้งชื่อซ็อกเก็ตที่ตัวกรองนี้ควรฟังสำหรับการเชื่อมต่อ milter
# ## จาก มท. ที่จำเป็น. ควรอยู่ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้
# ##
# ## inet:port@address เพื่อฟังบนอินเทอร์เฟซเฉพาะ
# ## inet:port เพื่อฟังบนอินเทอร์เฟซทั้งหมด
# ## local:/path/to/socket เพื่อฟังบนซ็อกเก็ตโดเมน UNIX
#
#ซ็อกเก็ต inet:8891@localhost
#Socket ในพื้นที่:/var/spool/postfix/opendkim/opendkim.sock
#Socket ในพื้นที่:/var/spool/postfix/opendkim/opendkim.sock
ซ็อกเก็ตในเครื่อง:/var/spool/postfix/opendkim/opendkim.sock
## ชื่อไฟล์ PidFile
### ค่าเริ่มต้น (ไม่มี)
###
### ชื่อของไฟล์ที่ตัวกรองควรเขียน pid ก่อนเริ่มต้น
###ใช้งานได้ปกติ
#
PidFile /var/run/opendkim/opendkim.pid


# เขียนทับ From เสมอ (ลงชื่อโดยใช้ From จริงและค่า null From เพื่อป้องกัน
# ช่องส่วนหัวของลายเซ็นที่เป็นอันตราย (จากและ/หรืออื่นๆ) ระหว่างผู้ลงนาม
#และผู้ตรวจสอบ From ถูกแทนที่โดยค่าเริ่มต้นในแพ็คเกจ Debian
# เพราะมันมักจะเป็นรหัสประจำตัวที่ใช้โดยระบบชื่อเสียงและด้วยเหตุนี้
#ค่อนข้างไวต่อความปลอดภัย
OversignHeaders จาก

## ชื่อไฟล์ ResolverConfiguration
## ค่าเริ่มต้น (ไม่มี)
##
## ระบุไฟล์คอนฟิกูเรชันที่จะส่งผ่านไปยังไลบรารี Unbound ที่
##
## ระบุไฟล์คอนฟิกูเรชันที่จะส่งผ่านไปยังไลบรารี Unbound ที่
## ทำการสืบค้น DNS โดยใช้โปรโตคอล DNSSEC ดูหลุด
## เอกสารที่ http://unbound.net สำหรับเนื้อหาที่คาดหวังของไฟล์นี้
## ผลลัพธ์ของการใช้สิ่งนี้และการตั้งค่า TrustAnchorFile ในเวลาเดียวกัน
## เวลาไม่ได้กำหนด
## ใน Debian /etc/unbound/unbound.conf จะถูกส่งโดยเป็นส่วนหนึ่งของคำแนะนำ
## แพ็คเกจที่ไม่ถูกผูกไว้

# ResolverConfiguration /etc/unbound/unbound.conf

## ชื่อไฟล์ TrustAnchorFile
## ค่าเริ่มต้น (ไม่มี)
##
## ระบุไฟล์ที่ควรอ่านข้อมูลจุดยึดความน่าเชื่อถือเมื่อดำเนินการ
## แบบสอบถาม DNS และการใช้โปรโตคอล DNSSEC ดูเอกสาร Unbound
## ที่ http://unbound.net สำหรับรูปแบบที่ต้องการของไฟล์นี้

TrustAnchorFile /usr/share/dns/root.key

## รหัสผู้ใช้ userid
### ค่าเริ่มต้น (ไม่มี)
###
### เปลี่ยนเป็น user "userid" ก่อนเริ่มการทำงานปกติ? อาจรวมถึง
### ID กลุ่มเช่นกัน แยกจาก userid ด้วยเครื่องหมายทวิภาค
#
รหัสผู้ใช้ opendkim
# แมปโดเมนในที่อยู่จากไปยังคีย์ที่ใช้ในการเซ็นข้อความ
รีไฟล์ของ KeyTable:/etc/opendkim/key.table
SigningTable refile:/etc/opendkim/signing.table

# โฮสต์ที่จะละเว้นเมื่อตรวจสอบลายเซ็น
ExternalIgnoreList /etc/opendkim/trusted.hosts

# ชุดโฮสต์ภายในที่ควรเซ็นชื่อเมล
InternalHosts /etc/opendkim/trusted.hosts

บันทึกเมื่อส่งจดหมายที่ได้รับผลกระทบโดย เชื่อถือได้โฮสต์

18 มิ.ย. 18:14:08 testmailcdo postfix/submission/smtpd[247218]: เชื่อมต่อจากที่ไม่รู้จัก[202.60.9.10]
18 มิ.ย. 18:14:08 testmailcdo postfix/submission/smtpd[247218]: 6D0D413C124: client=unknown[202.60.9.10]
18 มิ.ย. 18:14:08 testmailcdo postfix/cleanup[247221]: 6D0D413C124: message-id=<[email protected]>
18 มิ.ย. 18:14:08 testmailcdo postfix/qmgr[246787]: 6D0D413C124: from=<[email protected]>, size=601, nrcpt=1 (คิวทำงานอยู่)
18 มิ.ย. 18:14:08 testmailcdo postfix/submission/smtpd[247218]: ตัดการเชื่อมต่อจากที่ไม่รู้จัก[202.60.9.10] ehlo=1 mail=1 rcpt=1 data=1 exit=1 commands=5
18 มิ.ย. 18:14:10 testmailcdo postfix/smtp[247222]: 6D0D413C124: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[142.250.157.26]:25, delay= 1.8, ความล่าช้า=0.06/0/0.82/0.97, dsn=2.0.0, สถานะ=ส่งแล้ว (250 2.0.0 ตกลง 1624040055 p7si10315751pjl.99 - gsmtp)
18 มิ.ย. 18:14:10 testmailcdo postfix/qmgr[246787]: 6D0D413C124: ลบออก

ls -l /var/spool/postfix/opendkim/opendkim.sock ผลลัพธ์:

srwxrwx--- 1 opendkim opendkim 0 มิ.ย. 18 17:39 /var/spool/postfix/opendkim/opendkim.sock

ฉันหลงทางจริงๆ ข้อเสนอแนะและความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!

anx avatar
fr flag
anx
พิจารณา `milter_default_action` อีกครั้ง - จริงๆ แล้วคุณอาจไม่ต้องการให้ *fail-open* ("accept") เกิดขึ้น แต่ให้เลื่อนระดับปัญหาทั้งหมดเกี่ยวกับ DKIM ให้กลายเป็นการบดทุกอย่างให้หยุดชะงัก ("tempfail" ซึ่งอาจเป็นทางเลือกที่ปลอดภัยกว่าในแง่ ของการสูญเสียจดหมายเนื่องจากสิ่งที่ผู้รับบางคนทำกับจดหมายที่พวกเขาถือว่าไม่ได้รับอนุญาต)
user13539846 avatar
pl flag
บันทึก @anx ขณะประมวลผลเมลที่ได้รับผลกระทบจาก `trusted.hosts` ไม่แสดงบางอย่างเกี่ยวกับการเรียก milter อย่างไรก็ตาม ฉันได้อัปเดตโพสต์ด้วยบันทึกจาก postfix ขณะส่งเมล
Nikita Kipriyanov avatar
za flag
เป็นไปได้ไหมว่าเมล "ขาออก" ถูกประมวลผลโดยบริการ `smtpd` อื่นซึ่งปิดใช้งาน milter (เช่น `submission`? ตรวจสอบ `master.cf` นอกจากนี้ ฉันสังเกตเห็นเมื่อไม่นานมานี้ว่า opendkim ตั้งค่าโหมดบนซ็อกเก็ต ดังนั้น postfix จึงเป็น ไม่สามารถสื่อสารกับมันได้ มันคงได้รับการแก้ไขตั้งแต่นั้นมา แต่ใครจะรู้...
Ginnungagap avatar
gu flag
คุณสามารถเพิ่มผลลัพธ์ของ `ls -l /var/spool/postfix/opendkim/opendkim.sock` ให้กับคำถามได้หรือไม่ ฉันสงสัยว่าซ็อกเก็ตของคุณอนุญาตเฉพาะ opendkim:opendkim ในขณะที่ postfix ทำงานในฐานะผู้ใช้รายอื่น
user13539846 avatar
pl flag
@NikitaKipriyanov ฉันได้เพิ่ม `master.cf` ในคำถามแล้ว ฉันเชื่อว่ามันถูกจัดการโดย 'การส่ง'
user13539846 avatar
pl flag
@Ginnungagap ฉันได้เพิ่มผลลัพธ์ของ `ls -l /var/spool/postfix/opendkim/opendkim.sock` ฉันไม่ค่อยคุ้นเคยกับ linux แต่ไม่ควร `sudo chown opendkim:postfix /var/spool/postfix/opendkim` เป็นขั้นตอนในคู่มือ จะแก้ไขปัญหาการอนุญาตได้หรือไม่
user13539846 avatar
pl flag
@NikitaKipriyanov มีวิธีทำให้ `submission ' ใช้ opendkim milter หรือไม่?
Nikita Kipriyanov avatar
za flag
ตาม master.cf ของคุณ การส่ง Postfix ควรใช้ smtpd milters ด้วย โหมดที่ไม่ถูกต้อง (0770 สำหรับ opendkim:opendkim) จะต้องเป็นตัวการ
Score:1
ธง za

คุณมีโหมดที่ไม่ถูกต้องใน opendkim.sock. นั่นคือ 0770 เช่น. rwx โดยเจ้าของ, rwx โดยกลุ่มไม่มีอะไรสำหรับคนอื่น ๆ เจ้าของอยู่ที่ไหน โอเพนดีคิม และกลุ่มคือ โอเพนดีคิมแต่ Postfix มักจะทำงานเป็น postfix:mail หรืออะไรทำนองนั้น จึงจัดอยู่ในหมวดหมู่ "อื่นๆ" และไม่ได้รับอนุญาตให้เข้าถึง คุณควรพบการกล่าวถึงในบันทึกของ Postfix (ใน Debian ที่เราตรวจสอบ /var/log/mail.err).

นอกจากนี้โปรดทราบว่า เคี้ยว คุณได้ทำการแสดงบน ไดเร็กทอรีที่มีซ็อกเก็ตไม่ใช่ตัวซ็อกเก็ต ดังนั้นจึงไม่เพียงพอ

ลองตั้งค่า 0777 บน opendkim.sock เป็นวิธีการทดสอบแบบครั้งเดียว:

chmod 0777 /var/spool/postfix/opendkim/opendkim.sock

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

gpasswd - โปรแกรมแก้ไขหลัง opendkim

อีกทางหนึ่ง (เช่น ถ้า smtpd วิ่งภายใต้ ไม่มีใคร) คุณอาจเปลี่ยนสคริปต์เริ่มต้นสำหรับ OpenDKIM เล็กน้อยเพื่อตั้งค่าโหมด 0777 หลังจากสร้างซ็อกเก็ต

user13539846 avatar
pl flag
ฉันขอขอบคุณสำหรับความช่วยเหลือของคุณ แต่น่าเสียดายหลังจากรัน `chmod 0777 /var/spool/postfix/opendkim/opendkim.sock` และทำให้ opendkim.sock เป็น `srwxrwxrwx 1 opendkim opendkim 0 มิ.ย. 19 14:21 /var/spool/postfix /opendkim/opendkim.sock` เมลที่ส่งยังไม่มี dkim ในส่วนหัว นอกจากนี้เมื่อฉันตรวจสอบ `/var/log/mail.err` มันว่างเปล่า
user13539846 avatar
pl flag
นอกจากนี้ ฉันลองใช้ `inet` เป็น socket ที่ชี้ไปที่ localhost, แก้ไข postfix smtpd milters และ non smtpd milters เพื่อใช้ `inet:localhost:8891` แต่ก็ไม่ได้ช่วยอะไร จดหมายยังไม่ได้ลงนาม

โพสต์คำตอบ

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