พื้นหลัง
ฉันทำงานเพื่อตั้งค่าเซิร์ฟเวอร์อีเมลโดยใช้ Raspberry Pi เป็นโฮสต์ ฉันใช้เป็นหลัก คู่มือนี้ เป็นความช่วยเหลือของฉัน แต่ดูเหมือนว่าฉันจะติดอยู่ ฉันมีบริการที่อยู่อาศัย แต่มีบัญชีที่ dynu.com พร้อมบริการ "SMTP Outbound relay" และ "Email Store / Forward" เพื่อแก้ไขปัญหานี้ พวกเขายังโฮสต์ชื่อโดเมนของฉันด้วย
ปัญหา
ฉันสามารถส่งอีเมลได้โดยไม่มีปัญหา สิ่งที่ฉันมีปัญหาคือการได้รับอีเมลเหล่านั้น ฉันจะโพสต์รายละเอียดจำนวนมากเนื่องจากฉันได้ลองหลายสิ่งหลายอย่างและรู้สึกว่ามีบางอย่างที่จะทำให้เกิดเงื่อนงำ
พอร์ต
การใช้เครื่องสแกนพอร์ตฉันสามารถระบุสิ่งต่อไปนี้:
- พอร์ต 25 = ถูกบล็อก
- พอร์ต 2525 = ไม่ถูกบล็อก
- พอร์ต 143 = ไม่ถูกบล็อก
- พอร์ต 465 = ไม่ถูกบล็อก
- พอร์ต 993 = ไม่ถูกบล็อก
พอร์ตทั้งหมดส่งต่อผ่านเราเตอร์ไปยังโฮสต์อีเมลของฉันสำเร็จแล้ว
การทดสอบ OpenSSL (ใช้งานได้)
โดยใช้คำสั่ง openssl s_client -เชื่อมต่อ mail.xxx.com:993 -เงียบ
(โดยที่ xxx เป็นโดเมนจริงของฉัน) ฉันสามารถเข้าสู่ระบบโดยใช้ รหัสผ่านผู้ใช้เข้าสู่ระบบ
, `b เลือกกล่องขาเข้า', 'c ออกจากระบบ'
การใช้ชื่อโดเมนจริงของฉันแทนที่จะเป็น localhost ทำให้ฉันรู้สึกว่าการตั้งค่านี้ถูกต้อง
ตรวจสอบ mail.log เมื่อได้รับอีเมล
รายการเดียวที่ปรากฏ:
ฉันเห็น Dyno Email Store / Forward service ของฉันที่พวกเขานั่งอยู่ตรงนั้นและไม่เคยโอน:
ฉันได้ตั้งค่าบริการส่งต่ออีเมล / จัดเก็บ Dyno ดังนี้:
ฉันอาจไม่ต้องการบริการ Email Forward/Store นี้ด้วยซ้ำ เนื่องจากพอร์ต 993 ไม่ได้ถูกบล็อกโดย ISP ของฉัน ฉันแค่ใช้มันเพราะฉันไม่สามารถใช้งานได้หากไม่มีมัน ดังนั้นอาจลองอย่างอื่นด้วย
ไฟล์การกำหนดค่าที่เกี่ยวข้อง
Main.cfg
smtpd_banner = $myhostname ESMTP $mail_name (ราสเบียน)
บิฟ = ไม่
append_dot_mydomain = ไม่
readme_directory = ไม่
# ดู http://www.postfix.org/COMPATIBILITY_README.html -- ค่าเริ่มต้นเป็น 2 บน
#ติดตั้งใหม่.
ความเข้ากันได้_ระดับ = 2
# พารามิเตอร์ 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
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated
defer_unauth_destination
myhostname = xxx.com (ฉันมีตัวจริงอยู่ที่นี่)
mydomain = xxx.com (มีอันจริงแล้วนี่)
myorigin = $โดเมนของฉัน
mydestination = localhost, localhost.localdomain
#เพิ่ม
smtp_sasl_auth_enable = ใช่
smtp_sasl_password_maps = แฮช:/etc/postfix/sasl_passwd
smtp_sasl_security_options = ไม่ระบุตัวตน
รีเลย์โฮสต์ = [relay.dynu.com]:2525
smtp_sasl_use_tls = ใช่
smtp_sasl_auth_enable = ใช่
smtp_sasl_security_options = ไม่ระบุตัวตน
smtp_generic_maps = แฮช:/etc/postfix/generic
เครือข่ายของฉัน = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
ผู้รับ_ตัวคั่น = +
inet_interfaces = ทั้งหมด
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
ปฏิเสธ_unauth_destinations
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
ปฏิเสธ_invalid_helo_ชื่อโฮสต์
ปฏิเสธ_non_fqdn_helo_ชื่อโฮสต์
ปฏิเสธ_unknown_helo_ชื่อโฮสต์
แฮช check_helo_access:/etc/postfix/helo_access
smtpd_sasl_type = นกพิราบ
smtpd_sasl_path = ส่วนตัว/รับรองความถูกต้อง
smtpd_sasl_auth_enable = ใช่
smtpd_tls_auth_only = ใช่
มาสเตอร์.cf
#
# ไฟล์การกำหนดค่ากระบวนการหลัก Postfix สำหรับรายละเอียดเกี่ยวกับรูปแบบ
# ของไฟล์ ดูหน้าคู่มือ master(5) (คำสั่ง: "man 5 master" หรือ
# ออนไลน์: http://www.postfix.org/master.5.html)
#
# อย่าลืมรัน "postfix reload" หลังจากแก้ไขไฟล์นี้
#
# ================================================= =========================
# ประเภทบริการส่วนตัว unpriv chroot wakeup คำสั่ง maxproc + args
# (ใช่) (ใช่) (ไม่ใช่) (ไม่เคย) (100)
# ================================================= =========================
smtp inet n - y - - smtpd
2525 inet n - n - - smtpd
#smtp inet n - y - 1 โพสต์สกรีน
#smtpd ผ่าน - - y - - smtpd
#dnsblog ยูนิกซ์ - - y - 0 dnsblog
#tlsproxy ยูนิกซ์ - - y - 0 tlsproxy
#submission inet n - y - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=เข้ารหัส
# -o smtpd_sasl_auth_enable=ใช่
# -o smtpd_tls_auth_only=ใช่
# -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=
# -o smtpd_relay_restrictions=permit_sasl_authenticated ปฏิเสธ
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=ใช่
-o smtpd_recipient_restrictions=permit_sasl_authenticated ปฏิเสธ
# -o smtpd_sasl_auth_enable=ใช่
# -o smtpd_sasl_auth_enable=ใช่
# -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=
# -o smtpd_relay_restrictions=permit_sasl_authenticated ปฏิเสธ
# -o milter_macro_daemon_name=ORIGINATING
#628 inet n - y - - qmqpd
รถกระบะยูนิกซ์ n - y 60 1 รถกระบะ
การล้างข้อมูลยูนิกซ์ n - y - 0 การล้างข้อมูล
qmgr ยูนิกซ์ n - n 300 1 qmgr
#qmgr ยูนิกซ์ n - n 300 1 oqmgr
tlsmgr ยูนิกซ์ - - y 1,000? 1 tlsmgr
เขียนซ้ำยูนิกซ์ - - y - - เขียนใหม่เล็กน้อย
เด้งยูนิกซ์ - - y - 0 เด้ง
เลื่อนยูนิกซ์ - - y - 0 เด้ง
ติดตามยูนิกซ์ - - y - 0 ตีกลับ
ตรวจสอบยูนิกซ์ - - y - 1 ตรวจสอบ
ล้างยูนิกซ์ n - y 1,000? 0 ล้าง
พร็อกซีแมปยูนิกซ์ - - n - - พร็อกซีแมป
proxywrite unix - - n - 1 พร็อกซีแมป
smtp ยูนิกซ์ - - y - - smtp
รีเลย์ยูนิกซ์ - - y - - smtp
-o syslog_name=postfix/$service_name
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq ยูนิกซ์ n - y - - showq
ข้อผิดพลาดยูนิกซ์ - - y - - ข้อผิดพลาด
ลองใหม่ยูนิกซ์ - - y - - ข้อผิดพลาด
ทิ้งยูนิกซ์ - - y - - ทิ้ง
ยูนิกซ์ท้องถิ่น - n n - - ท้องถิ่น
ยูนิกซ์เสมือน - n n - - เสมือน
lmtp ยูนิกซ์ - - y - - lmtp
ทั่งยูนิกซ์ - - y - 1 ทั่ง
Scache ยูนิกซ์ - - y - 1 Scache
postlog unix-dgram n - n - 1 postlogd
#
# ================================================= ===================
# การเชื่อมต่อกับซอฟต์แวร์ที่ไม่ใช่ 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 ไปป์
ค่าสถานะ=R ผู้ใช้=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop}
${user} ${นามสกุล}
ยูนิกซ์บุรุษไปรษณีย์ - n n - - ไปป์
แฟล็ก=ผู้ใช้ FR=รายการ argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${ผู้ใช้}
โดฟคอต 10-master.conf
กำลังฟังพอร์ต 993 อย่างแน่นอนดังที่แสดงโดยการเข้าสู่ระบบด้านบน:
บริการ imap เข้าสู่ระบบ {
พอร์ต = 143
}
อิมเมจ inet_listener {
พอร์ต = 993
ssl = ใช่
}
หากมีไฟล์ปรับแต่งอื่นๆ ที่จำเป็นต้องตรวจสอบ/โพสต์ โปรดแจ้งให้เราทราบและแสดงให้ทราบ
บริการอีเมล Dynu / การกำหนดค่า fetchmail
การกำหนดค่า Dynu:
ฉันสามารถระบุชื่อผู้ใช้และรหัสผ่านสำหรับเข้าสู่ระบบได้เช่นกัน:
Fetchmailrc:
# /etc/fetchmailrc สำหรับโหมด daemon ทั่วทั้งระบบ
# ไฟล์นี้ต้องเป็น chmod 0600 เจ้าของ fetchmail
set daemon 300 #พูลทุก5นาที
ตั้งค่าบันทึก syslog # ผ่านสิ่งอำนวยความสะดวก syslog
ตั้ง postmaster root
ตั้งค่า no bouncemail # หลีกเลี่ยงการสูญเสียจากข้อผิดพลาด 4xx
# ในทางกลับกัน ข้อผิดพลาด 5xx ได้รับ
# อันตรายมาก...
# เจ้าภาพลงสระ
# ค่าเริ่มต้น ================================================ ===============
# ตั้งค่า antispam เป็น -1 เนื่องจากปลอดภัยกว่ามากหากใช้ร่วมกับ
#ไม่มีการตีกลับ
ค่าเริ่มต้น:
หมดเวลา 300
แอนตี้สแปม -1
แบทช์ลิมิต 100
แบบสำรวจความคิดเห็น store1.dynu.com โปรโตคอล POP3 ชื่อผู้ใช้ "eric" รหัสผ่าน "รหัสผ่าน"
ดังนั้น ในการกำหนดค่าด้านบน ฉันยังคงไม่ได้รับอีเมลชื่อผู้ใช้และรหัสผ่านใน fetchmail ควรตรงกับในการตรวจสอบสิทธิ์สำหรับ dynu หรือไม่ คือ แบบสำรวจความคิดเห็น store1.dynu.com โปรโตคอล POP3 ชื่อผู้ใช้ "eric" รหัสผ่าน "รหัสผ่าน"
ส่วนใช่ไหม