Score:0

Can PAM be used with Postfix and Dovecot SASL?

ธง ae

I have set up Postfix to use Dovecot SASL with PAM and Unix users, and Dovecot LDA (LMTP) for local mailbox storage. After some testing, turns out incoming mail gets declined with the reason:

Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups

That's both troublesome and troubling - I opted for PAM-based authentication because all sources I found suggested it's the simplest and most reliable way. It's hard for me to troubleshoot what's going wrong at this moment - I'm not sure if it's truly an issue with PAM or if something's wrong with my configuration.

Logs

The doveadm lookup test:

$ doveadm auth lookup [user]
Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups

Dovecot debug log after the lookup test:

$ cat /var/log/dovecot/dovecot-debug.log | tail -5
[date][time] auth: Debug: master in: PASS    1       [user]  service=doveadm debug
[date][time] auth: Debug: pam([user]): Performing passdb lookup
[date][time] auth: Debug: pam([user]): passdb doesn't support credential lookups
[date][time] auth: Debug: pam([user]): Finished passdb lookup
[date][time] auth: Debug: passdb out: FAIL   1       reason=Configured passdbs don't support credentials lookups

Relevant configuration

The /etc/dovecot/conf.d/10-auth.conf file:

auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext

The /etc/dovecot/conf.d/auth-system.conf.ext file:

passdb {
    driver = pam 
    args = session=yes failure_show_msg=yes dovecot
}
userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/vmail/%n
}

The /etc/pam.d/dovecot file is the default that came with the Rocky Linux (that equals RHEL and is the same as Fedora) Dovecot package:

#%PAM-1.0
auth       required     pam_nologin.so
auth       include      password-auth
account    include      password-auth
session    include      password-auth

However, I also tried the configuration as suggested by the official Dovecot PAM documentation and it didn't yield any different results. I am confident in the rest of my configuration, as I spent considerable time studying the options, but I still barely understand the PAM config...

All logs point at the issue being with the Dovecot SASL itself, not with the Postfix or Dovecot configuration. Any suggestions would be much appreciated.

anx avatar
fr flag
anx
ไดรเวอร์ PAM passdb ให้ผลลัพธ์ *success/failure* แบบไบนารีแก่คุณ และ userdb ของคุณไม่ได้ช่วยในการระบุผู้ใช้ที่มีอยู่ คุณ *ต้องการให้* เกิดอะไรขึ้นเมื่อมีข้อความ "[email protected]" เข้ามา
Marty Cagas avatar
ae flag
โดยเฉพาะอย่างยิ่ง _"จดหมายที่ไม่สามารถส่งกลับถึงผู้ส่ง"_ ตอบกลับ แต่ถ้าฉันเข้าใจถูกต้อง นั่นเป็นงานสำหรับ Postfix ไม่ใช่ Dovecot Dovecot เพียงต้องการตรวจสอบว่ามีผู้ใช้รายนี้อยู่ในเครื่องผ่าน SASL หรือไม่ และส่งคำตอบกลับมาที่ Postfix การรับรองความถูกต้องจะไม่เกิดขึ้นในขั้นตอนนี้ แต่จำเป็นต้องใช้งานได้เมื่อผู้ใช้พยายามอ่านกล่องจดหมายของตนผ่าน IMAP/POP3
anx avatar
fr flag
anx
(พูดให้แม่นยำ ดียิ่งขึ้น: postfix เมื่อได้รับคำสั่งให้ `reject_unverified_recipient` จะเรียนรู้ผ่าน LMTP ว่า Dovecot ไม่พบผู้ใช้รายนั้น และบอกเช่นนั้นในการเชื่อมต่อขาเข้า ความรับผิดชอบในการสร้างข้อความส่งคืนจึงขึ้นอยู่กับการส่งต่อของผู้ส่ง หมายความว่าการตั้งค่าของคุณไม่จำเป็นต้องสร้างการกระจายกลับ)
Score:0
ธง ae

ฉันไม่รู้ว่านี่เป็นวิธีแก้ปัญหาที่เหมาะสมหรือไม่ (ตอนนี้กลับมาอ่าน ความคิดเห็นของ anx ในโพสต์ดั้งเดิมของฉันทำให้ฉันสงสัยว่าใช่หรือไม่) แต่ฉันจัดการเพื่อให้ทั้งการค้นหาและการตรวจสอบสิทธิ์ทำงานโดยเพิ่มวินาที รหัสผ่าน เข้าสู่การกำหนดค่าของ Dovecot

ในการกำหนดค่า Dovecot ฉันนำหน้า ฐานข้อมูลรหัสผ่าน PAM เข้าด้วย รหัสผ่าน ฐานข้อมูลรหัสผ่าน รายการ:

# เช่น. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # นี่ไม่ใช่การพิมพ์ผิด
         # Passwd สามารถใช้ได้ทั้งเป็น passdb และ userdb
    ไดรเวอร์ = รหัสผ่าน wd
}
รหัสผ่าน {
    คนขับรถ = แพม
    args = นกพิราบ
}

สิ่งนี้ทำให้ผู้ใช้ค้นหาด้วย doveadm ตรวจสอบสิทธิ์การค้นหา [ผู้ใช้] ประสบความสำเร็จอย่างไรก็ตาม รหัสผ่าน ฐานข้อมูลไม่ได้ รับรองความถูกต้อง ผู้ใช้เนื่องจากรหัสผ่านจะไม่ถูกเก็บไว้ใน /etc/passwd ไฟล์บนระบบ Unix เมื่อเป็นเช่นนั้น การค้นหาจะดำเนินต่อไปด้วยฐานข้อมูลรหัสผ่าน PAM ซึ่งจะรับรองความถูกต้องของผู้ใช้อย่างถูกต้อง สามารถทดสอบได้กับ doveadm รับรองความถูกต้อง [ผู้ใช้] สั่งการ.


ฉันเพิ่มสิ่งนี้เป็นคำตอบที่ยอมรับได้ เนื่องจากโซลูชัน/วิธีแก้ไขปัญหาชั่วคราวใช้ได้ผลสำหรับฉันในขณะนี้ หากผู้ใดมีข้อเสนอแนะหรือทราบวิธีการแก้ไขในทางที่ดีขึ้น เรายินดีน้อมรับไว้แทน โดยมีเพียงฐานข้อมูล PAM ที่เป็นการกำหนดค่าเริ่มต้น ร็อคกี้ ลินุกซ์ (จริง ๆ แล้ว RHEL) มันทำให้ฉันประหลาดใจที่มันไม่ทำงานนอกกรอบ

โพสต์คำตอบ

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