Score:1

วิธีลงชื่อเข้าใช้บัญชีเมล postfix+dovecot

ธง jp

หลังจากการค้นหาประมาณ 6 ชั่วโมง ฉันตัดสินใจขอความช่วยเหลือที่นี่

ฉันได้ลองตั้งค่า postfix แล้ว ทุกอย่างทำงานได้ดี

จากนั้นฉันจึงตัดสินใจใช้อีเมลของฉันกับสายฟ้า ซึ่งไม่ได้ผล

ดังนั้นฉันจึงพบว่าฉันต้องตั้งค่า SASL auth ดังนั้นฉันจึงทำ (หรืออย่างน้อยฉันคิดว่าฉันได้ตั้งค่าเมื่อ telnet ตอบกลับด้วย "AUTH PLAIN")

เอาล่ะ เมื่อคุณมีแนวคิดทั่วไปแล้ว มีการกำหนดค่าของฉัน:

/etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP $mail_name
บิฟ = ไม่

# ต่อท้าย .domain คืองานของ MUA
append_dot_mydomain = ไม่

# ยกเลิกการแสดงความคิดเห็นในบรรทัดถัดไปเพื่อสร้างคำเตือน "จดหมายล่าช้า"
#delay_warning_time = 4 ชม

readme_directory = ไม่

# ดู http://www.postfix.org/COMPATIBILITY_README.html -- ค่าเริ่มต้นเป็น 2 บน
#ติดตั้งใหม่.
ความเข้ากันได้_ระดับ = 2



# พารามิเตอร์ TLS
smtpd_tls_cert_file = /etc/letsencrypt/live/randomdevs.org/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/randomdevs.org/privkey.pem
smtpd_tls_security_level = พฤษภาคม

smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level = พฤษภาคม
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated ปฏิเสธ_unauth_destination
ชื่อโฮสต์ของฉัน = Randomdevs.org
alias_maps = แฮช:/etc/aliases
alias_database = แฮช:/etc/aliases
myorigin = /etc/ชื่อเมล
mydestination = $mydomain, $myhostname, localhost.$myhostname, , localhost
รีเลย์โฮสต์ =
เครือข่ายของฉัน = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
ผู้รับ_ตัวคั่น = +
inet_interfaces = ทั้งหมด
inet_protocols = ทั้งหมด
home_mailbox = จดหมาย/
โดเมนของฉัน = Randomdevs.org
smtpd_sasl_type = นกพิราบ
smtpd_sasl_path = ส่วนตัว/รับรองความถูกต้อง
smtpd_sasl_local_domain =
smtpd_sasl_security_options = ไม่ระบุตัวตน
smtpd_sasl_tls_security_options = ไม่ระบุตัวตน
Broken_sasl_auth_clients = ใช่
smtpd_sasl_auth_enable = ใช่
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtp_tls_note_starttls_offer = ใช่
smtpd_tls_loglevel = 1
smtpd_tls_received_header = ใช่
smtpd_sasl_authenticated_header = ใช่
virtual_alias_domains = $โดเมนของฉัน
virtual_alias_maps = แฮช:/etc/postfix/virtual

/etc/postfix/master.cf

# ประเภทบริการส่วนตัว unpriv chroot wakeup คำสั่ง maxproc + args
# (ใช่) (ใช่) (ไม่ใช่) (ไม่เคย) (100)
# ================================================= =========================
smtp inet n - y - - smtpd -v

รถกระบะยูนิกซ์ 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 -v
รีเลย์ยูนิกซ์ - - y - - smtp
        -o syslog_name=postfix/$service_name
        
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

maildrop ยูนิกซ์ - n n - - ไปป์
  ค่าสถานะ=ผู้ใช้ DRXhu=vmail argv=/usr/bin/maildrop -d ${ผู้รับ}
  
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 - - ไปป์
  flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}

/etc/dovecot/conf.d/10-auth.conf

ปิดการใช้งาน_plaintext_auth = ใช่
auth_mechanisms = เข้าสู่ระบบธรรมดา
!รวมถึง auth-system.conf.ext

/etc/dovecot/conf.d/10-master.conf

บริการ imap เข้าสู่ระบบ {
  inet_listener imap {
    พอร์ต = 143
  }
}
บริการ pop3 เข้าสู่ระบบ {
  inet_listener pop3 {
    พอร์ต = 110
  }
}

บริการตรวจสอบสิทธิ์ {
  unix_listener /var/spool/postfix/private/auth {
    โหมด = 0660
    ผู้ใช้ = postfix
    กลุ่ม = postfix
  }
}

เอาต์พุต Telnet

ลอง 207.180.254.22...
เชื่อมต่อกับ Randomdevs.org
อักขระ Escape คือ '^]'
220 Randomdevs.org ESMTP Postfix
EHLO $ชื่อโฮสต์
250-randomdevs.org
250-การวางท่อ
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
เข้าสู่ระบบปกติ 250-AUTH
250-AUTH = เข้าสู่ระบบธรรมดา
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-ดีเอสเอ็น
250-SMTPUTF8
250 ชิ้น
AUTH ธรรมดา
334
xxxxxxxx ** ที่นี่ ฉันใช้การเข้ารหัสสตริง BASE64 เช่น: echo -ne "\000username\000password" | opensl base64
535 5.7.8 ข้อผิดพลาด: การรับรองความถูกต้องล้มเหลว:
เข้าสู่ระบบรับรองความถูกต้อง
334 VXNlcm5hbWU6
ราก ** ฉันไม่แน่ใจว่าที่นี่ถ้าเป็นสิ่งที่ถูกต้องที่จะเขียนจริง ๆ แล้วฉันไม่รู้ **

อย่างที่คุณเห็น ฉันไม่สามารถเข้าสู่ระบบได้

เป็นไปได้อย่างไร? มีคนช่วยฉันหรืออะไรได้บ้าง?

ขอบคุณล่วงหน้าและมีวันที่ดี!

แก้ไข: ฉันได้แก้ไขเอาต์พุต Telnet เพื่ออธิบายสิ่งที่ฉันทำได้ดีขึ้น และเมื่อฉันพูดถึงธันเดอร์เบิร์ด "ใช้งานไม่ได้" หมายความว่า: [การตั้งค่าธันเดอร์เบิร์ด][1] [ผู้ใช้ที่ใช้แล้ว][2]

ป.ล. โปรดอย่าลงคะแนนคำถามนี้ ฉันค้นหาทุกสิ่งที่ฉันทำได้แล้ว และหลังจาก 6/7 ชั่วโมง ฉันล้มเลิกและพยายามถามที่นี่ ได้โปรด นี่เป็นครั้งแรกที่ฉันเคยใช้ postfix

ด้วยการตั้งค่าเหล่านี้ ธันเดอร์เบิร์ดยังคงบอกว่าไม่พบการตั้งค่าสำหรับบัญชีอีเมลของฉัน [1]: https://i.stack.imgur.com/Ra92L.png [2]: https://i.stack.imgur.com/uM4kX.png

anx avatar
fr flag
anx
Dovecot [ส่งคำสั่งเพื่อทดสอบการตรวจสอบสิทธิ์ dovecot ของคุณโดยเฉพาะ](https://doc.dovecot.org/admin_manual/debugging/debugging_authentication/#debugging-authentication): `doveadm auth test user` - คุณลองแล้วหรือยัง มันพูดว่าอะไร?
jp flag
สวัสดี @anx ขอบคุณสำหรับคำตอบของคุณ สิ่งนี้ช่วยให้เข้าใจปัญหาได้เล็กน้อย doveadm auth test test 1234 ใช้งานได้ passdb: รับรองความถูกต้องข้อมูลสำเร็จ และฉันกำลังแก้ไขคำถาม
Score:1
ธง za

ข้อมูลรับรองการเข้าสู่ระบบผ่านสายจะไม่แสดงในรูปแบบดิบ แต่เข้ารหัสแบบ base64 เช่นเดียวกับที่แสดงคำว่า "ชื่อผู้ใช้" และ "รหัสผ่าน" ให้คุณ ตัวอย่างเช่น ชื่อผู้ใช้ ราก จะส่งเป็น cm9vdA==.

การตรวจสอบสิทธิ์แบบธรรมดาใช้ทั้งชื่อผู้ใช้และรหัสผ่านที่จัดลำดับเป็นสตริงเดียว ซึ่งเข้ารหัสแบบ base64 อีกครั้ง: base64('\0' | เข้าสู่ระบบ | '\0' | รหัสผ่าน), ที่ไหน | หมายถึงการเชื่อมต่อและ '\0' เป็นอ็อกเตตศูนย์ตามตัวอักษร (อักขระ ASCII NUL) สตริงที่เข้ารหัสด้วยวิธีนี้จะได้รับการตอบกลับหลังจากนั้น 334 ข้อความหรือใส่โดยตรงในคำสั่งตรวจสอบสิทธิ์ อาจมีสิ่งเพิ่มเติมก่อน NUL แรก แต่อย่าเพิ่งสนใจเรื่องนี้ หากคุณสนใจ โปรดอ่าน RFC4616.

อ่านตัวอย่าง ที่นี่ สำหรับรายละเอียด

คำเตือน: ห้ามเปิดใช้กลไกการเข้าสู่ระบบหรือธรรมดาโดยไม่มีเลเยอร์ SSL/TLSเนื่องจากใครก็ตามที่จับทราฟฟิกได้สามารถสังเกตสตริง base64 เหล่านี้บน wire ถอดรหัสและดึงข้อมูลรับรองได้

jp flag
สวัสดี Nikita ขอบคุณ! นี่น่าจะเป็นปัญหา แต่ฉันควรเข้ารหัสสตริงอย่างไร ฉันได้แก้ไขคำถามแล้ว (ดูผลลัพธ์ของ telnet) และอย่างที่คุณเห็น ฉันทำสิ่งนี้แล้ว ฉันทำอะไรผิด

โพสต์คำตอบ

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