ฉันมีเซิร์ฟเวอร์เมล postfix บน Ubuntu 18 ซึ่งทำหน้าที่เป็นเซิร์ฟเวอร์ส่งต่ออีเมลสำหรับเครื่องเสมือนสองสามเครื่อง และเป็นเซิร์ฟเวอร์ imap/smtp สำหรับวิทยาลัยของเรา ถ้าฉันส่งอีเมลจากไคลเอนต์อีเมลด้วย smtp โดยตรงผ่านเซิร์ฟเวอร์ส่งต่อ อีเมลนั้นจะถูกเซ็นชื่อโดยเซิร์ฟเวอร์อย่างถูกต้อง
อย่างไรก็ตาม ถ้าฉันส่งอีเมลจาก VM ผ่านเซิร์ฟเวอร์ postfix ของ VM ซึ่งส่งต่อทุกอย่างไปยังเซิร์ฟเวอร์ส่งต่อ ข้อความนั้นจะไม่ถูกเซ็นชื่อ
. นี่คือส่วนที่เหมาะสมของ จดหมาย.log
ของเซิร์ฟเวอร์รีเลย์:
29 มีนาคม 15:43:15 น. zg-3 postfix/pickup[6925]: D6775A2CE0: uid=1002 from=<[email protected]>
29 มีนาคม 15:43:15 น. zg-3 postfix / cleanup [9282]: D6775A2CE0: message-id=<[email protected]>
29 มีนาคม 15:43:15 zg-3 postfix/qmgr[28882]: D6775A2CE0: from=<[email protected]>, size=1005, nrcpt=1 (คิวทำงานอยู่)
29 มีนาคม 15:43:18 zg-3 postfix/smtp[9292]: D6775A2CE0: to=<[email protected]>, relay=mail.destination.org[109.61.0.141]:25, delay=2.4, delay= 0.01/0.01/0.16/2.2, dsn=2.0.0, สถานะ=ส่งแล้ว (250 2.0.0 จาก MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 ตกลง: เข้าคิวเป็น 31688123853)
29 มีนาคม 15:43:18 zg-3 postfix / qmgr [28882]: D6775A2CE0: ลบออก
ของฉัน /etc/opendkim/trusted.hosts
:
127.0.0.1
โลคัลโฮสต์
*.mydomain.org
ของฉัน /etc/opendkim/key.table
:
default._domainkey.mydomain.org mydomain.org:default:/etc/opendkim/keys/mydomain.org/default.private
และฉันมีรหัสในไฟล์ที่ถูกต้อง (โปรดทราบว่าอีเมลที่ส่งโดยตรงนั้นใช้ไฟล์
คีย์เดียวกันเพื่อเซ็นชื่อให้ถูกต้อง):
$ ls -l /etc/opendkim/keys/mydomain.org/default.*
-rw------- 1 opendkim opendkim 1675 25 มิ.ย. 2561 /etc/opendkim/keys/mydomain.org/default.private
-rw------- 1 รูทรูท 495 25 มิ.ย. 2018 /etc/opendkim/keys/mydomain.org/default.txt
ของฉัน /etc/postfix/main.cf
:
smtpd_banner = $myhostname ESMTP $mail_name (อูบุนตู)
บิฟ = ไม่
# ต่อท้าย .domain คืองานของ MUA
append_dot_mydomain = ไม่
# ยกเลิกการแสดงความคิดเห็นในบรรทัดถัดไปเพื่อสร้างคำเตือน "จดหมายล่าช้า"
#delay_warning_time = 4 ชม
readme_directory = ไม่
ชื่อโฮสต์ของฉัน = zg-3.mydomain.org
alias_maps = แฮช:/etc/aliases
alias_database = แฮช:/etc/aliases
myorigin = mydomain.org
mydestination = zg-3.mydomain.org, localhost.mydomain.org, localhost
รีเลย์โฮสต์ =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 zg-2.mydomain.org zg-3.mydomain.org lu1.mydomain.org 172.16.0.0/16
# 50 ลบ
message_size_limit = 52428800
### พารามิเตอร์ TLS
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=ใช่
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
### การตรวจสอบสิทธิ์ SMTP ของ Dovecot
smtpd_sasl_type = นกพิราบ
smtpd_sasl_path = ส่วนตัว/รับรองความถูกต้อง
smtpd_sasl_auth_enable = ใช่
# สำหรับ Postfix เวอร์ชันก่อน 2.10 ให้ใช้ smtpd_recipient_restrictions
#smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, ปฏิเสธ_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, ปฏิเสธ_unauth_destination
# การกำหนดค่ามิลเตอร์
#โอเพ่นดีคิม
milter_default_action = ยอมรับ
milter_protocol=6
smtpd_milters = ท้องถิ่น:/opendkim/opendkim.sock
non_smtpd_milters = ท้องถิ่น:/opendkim/opendkim.sock
mailbox_size_limit = 0
virtual_mailbox_limit = 0
ผู้รับ_ตัวคั่น = +
inet_interfaces = ทั้งหมด
### การกำหนดค่าสำหรับกล่องจดหมายเสมือน
home_mailbox = จดหมาย/
virtual_mailbox_domains = /etc/postfix/vhosts
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = แฮช:/etc/postfix/vmaps
virtual_minimum_uid = 1,000
virtual_uid_maps = คงที่:1002
virtual_gid_maps = คงที่:1002
virtual_transport = นกพิราบ
spamassassin_destination_recipient_limit = 1
dovecot_destination_recipient_limit = 1
ของฉัน /etc/postfix/master.cf
:
# ไฟล์การกำหนดค่ากระบวนการหลัก Postfix สำหรับรายละเอียดเกี่ยวกับรูปแบบ
# ของไฟล์ ดูหน้าคู่มือ master(5) (คำสั่ง: "man 5 master")
#
# อย่าลืมรัน "postfix reload" หลังจากแก้ไขไฟล์นี้
#
# ================================================= =========================
# ประเภทบริการส่วนตัว unpriv chroot wakeup คำสั่ง maxproc + args
# (ใช่) (ใช่) (ใช่) (ไม่เคย) (100)
# ================================================= =========================
smtp inet n - - - - smtpd
-o content_filter=สปาแมสซาซิน
#smtp inet n - - - 1 โพสต์สกรีน
#smtpd ผ่าน - - - - - smtpd
#dnsblog ยูนิกซ์ - - - - 0 dnsblog
#tlsproxy ยูนิกซ์ - - - - 0 tlsproxy
การส่ง inet n - - - - smtpd
-o syslog_name=postfix/submission
#SSL/TLS
-o smtpd_tls_wrappermode=ใช่
# STARTTLS
# -o smtpd_tls_security_level=เข้ารหัส
-o smtpd_sasl_auth_enable=ใช่
-o smtpd_client_restrictions=permit_sasl_authenticated ปฏิเสธ
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
#SSL/TLS
-o smtpd_tls_wrappermode=ใช่
# STARTTLS
# -o smtpd_tls_security_level=เข้ารหัส
-o smtpd_sasl_auth_enable=ใช่
-o smtpd_client_restrictions=permit_sasl_authenticated ปฏิเสธ
-o milter_macro_daemon_name=ORIGINATING
#628 inet n - - - - qmqpd
ปิ๊กอัพ fifo n - - 60 1 ปิ๊กอัพ
การล้างข้อมูลยูนิกซ์ n - - - 0 การล้างข้อมูล
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
tlsmgr ยูนิกซ์ - - - 1,000? 1 tlsmgr
เขียนซ้ำยูนิกซ์ - - - - - เขียนใหม่เล็กน้อย
เด้งยูนิกซ์ - - - - 0 เด้ง
เลื่อนยูนิกซ์ - - - - 0 เด้ง
ติดตามยูนิกซ์ - - - - 0 เด้ง
ตรวจสอบยูนิกซ์ - - - - 1 ตรวจสอบ
ล้างยูนิกซ์ n - - 1,000? 0 ล้าง
พร็อกซีแมปยูนิกซ์ - - n - - พร็อกซีแมป
proxywrite unix - - n - 1 พร็อกซีแมป
smtp ยูนิกซ์ - - - - - smtp
รีเลย์ยูนิกซ์ - - - - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq ยูนิกซ์ n - - - - showq
ข้อผิดพลาดยูนิกซ์ - - - - - ข้อผิดพลาด
ลองยูนิกซ์อีกครั้ง - - - - - ข้อผิดพลาด
ทิ้งยูนิกซ์ - - - - - ทิ้ง
ยูนิกซ์ท้องถิ่น - n n - - ท้องถิ่น
ยูนิกซ์เสมือน - n n - - เสมือน
lmtp ยูนิกซ์ - - - - - lmtp
ทั่งยูนิกซ์ - - - - 1 ทั่ง
Scache ยูนิกซ์ - - - - 1 Scache
#
# ================================================= ===================
# การเชื่อมต่อกับซอฟต์แวร์ที่ไม่ใช่ Postfix อย่าลืมตรวจสอบคู่มือ
# หน้าของซอฟต์แวร์ที่ไม่ใช่ Postfix เพื่อค้นหาตัวเลือกที่ต้องการ
#
# บริการจำนวนมากต่อไปนี้ใช้การส่งไปป์ Postfix (8)
# ตัวแทน. ดูหน้าคนไปป์ (8) สำหรับข้อมูลเกี่ยวกับ ${recipient}
# และตัวเลือกซองจดหมายอื่น ๆ
# ================================================= ===================
#
#ไปรษณีย์. โปรดดูรายละเอียดในไฟล์ Postfix MAILDROP_README
# ระบุใน main.cf ด้วย: maildrop_destination_recipient_limit=1
#
maildrop ยูนิกซ์ - n n - - ไปป์
แฟล็ก=ผู้ใช้ DRhu=vmail argv=/usr/bin/maildrop -d ${ผู้รับ}
#
# ================================================= ===================
#
# เวอร์ชัน Cyrus ล่าสุดสามารถใช้รายการ "lmtp" master.cf ที่มีอยู่
#
# ระบุใน cyrus.conf:
# lmtp cmd="lmtpd -a" ฟัง="localhost:lmtp" proto=tcp4
#
# ระบุใน main.cf อย่างใดอย่างหนึ่งต่อไปนี้:
# mailbox_transport = lmtp:inet:localhost
# virtual_transport = lmtp:inet:localhost
#
# ================================================= ===================
#
# ไซรัส 2.1.5 (เอมัส Gouaux)
# ระบุใน main.cf ด้วย: cyrus_destination_recipient_limit=1
#
#ไซรัสยูนิกซ์ - n n - - ท่อ
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ================================================= ===================
# ตัวอย่างเก่าของการจัดส่งผ่าน Cyrus
#
#โอลด์ไซรัสยูนิกซ์ - n n - - ท่อ
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ================================================= ===================
#
# ดูไฟล์ Postfix UUCP_README สำหรับรายละเอียดการกำหนดค่า
#
uucp ยูนิกซ์ - n n - - ไปป์
ค่าสถานะ =ผู้ใช้ Fqhu =uucp argv=uux -r -n -z -a$ผู้ส่ง - $nexthop!rmail (ผู้รับ $)
#
# วิธีการจัดส่งภายนอกอื่น ๆ
#
ifmail ยูนิกซ์ - n n - - ท่อ
ค่าสถานะ = F ผู้ใช้ = ftn argv = /usr/lib/ifmail/ifmail -r $nexthop (ผู้รับ $)
bsmtp ยูนิกซ์ - n n - - ท่อ
แฟล็ก = Fqผู้ใช้=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$ผู้ส่ง $ผู้รับ
scalemail-backend unix - n n - 2 ไปป์
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
ยูนิกซ์บุรุษไปรษณีย์ - n n - - ไปป์
แฟล็ก=ผู้ใช้ FR=รายการ argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${ผู้ใช้}
spamassassin ยูนิกซ์ - n n - - ไปป์
flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/local/v2_mail/v2/script/v2_lda.sh ${sender} ${user}@${nexthop}
dovecot ยูนิกซ์ - n n - - ไปป์
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}