postfix 身份驗證的問題

大家好:

我使用ubuntu7.10安裝Postfix郵件伺服器+dovecot

安裝-sasl套件如下

libauthen-sasl-cyrus-perllibauthen-sasl-perllibsasl2

libsasl2-modules sasl2-bin

main.cf內容

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)

biff = no

append_dot_mydomain = no

btree:${queue_directory}/smtpd_scache

btree:${queue_directory}/smtp_scache

myhostname = XXX.com.tw

mydomain = XXX.com.tw

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = /etc/mailname

mydestination = XXX.com.tw, master, localhost.localdomain, localhost

mynetworks = 127.0.0.0/8, 192.168.1.0/24

mailbox_size_limit = 0

recipient_delimiter = +

smtpd_sasl_auth_enable = yes

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unknown_reverse_client_hostname

disable_vrfy_command = yes

在Internet上收信正常,但同樣的帳號卻不能發信,系統錯誤大致如下:

SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory

SASL authentication failure: no secret in database

unknown[192.168.1.6]: SASL NTLM authentication failed: authentication failure

SASL authentication failure: no secret in database

unknown[192.168.1.6]: SASL LOGIN authentication failed:

檢查過/etc/sasldb2是存在的

很抱歉寫了很多,爬文找書試了很久都不行,請大家幫幫忙,感激不盡!!

Update:

補充執行 ls -l /etc/sasl* 的結果:

bash: -rw-r--r-- 1 root sasl 12288 2008-02-13 01:18 /etc/sasldb2

Update 2:

感謝 Nephom 大大 照您的方法試了 MECHANISMS="shadow"&"pam"也都試了,還是不行。

另外smtpd_sasl_path=/etc/postfix/sasl:/usr/lib/sasl2兩個路徑分隔是用":"嗎?

又發現我的PAM中沒有postfix&saslauthd 如何正確的加進去呢?

Update 3:

謝謝 ayu 大大,有一點進展了,不過錯誤訊息變成

SASL authentication failure: cannot connect to saslauthd server: No such file or directory

SASL LOGIN authentication failed: generic failure

2 Answers

Rating
  • ayu
    Lv 5
    1 decade ago
    Favorite Answer

    請補充執行 ls -l /etc/sasl* 的結果

    2008-02-16 08:30:24 補充:

    我的 FreeBSD postfix+SASL 這部份只要 sasldb2.db 能讓 postfix 讀取即可,

    $ ls -l /usr/local/etc/sasl*

    -rw-r----- 1 cyrus mail 16384 Sep 10 2005 /usr/local/etc/sasldb2.db

    /etc/group 裡有這麼一行 mail:*:6:postfix,clamav

    但我實際在 Ubuntu 7.10 server 裡的 Postfix+SASL 如法泡製時失敗了,

    畢竟 package 安裝與 source 安裝會有些差距.

    ( 三年前我也曾遇過安裝方式不同而導致resolv.conf的dns解析異狀 )

    因此採行的辦法有兩步驟:

    [ 複製 /etc/sasldb2 ]

    cp /etc/sasldb2 /var/spool/postfix/etc/sasldb2

    將 /etc/sasldb2 複製到 /var/spool/postfix/etc/sasldb2 ,

    原因應該跟 postfix 的 chroot jail 運作方式有關.

    這部份本來打算用 ln (symbolic link) 的方式來處理,

    但 mail.log 會說 Too many levels of symbolic links 而不買帳.

    [ 將 sasldb2 的群組硬改為 postfix ]

    chgrp postfix /var/spool/postfix/etc/sasldb2

    -rw-r----- 1 root postfix 12288 2008-02-16 07:31 sasldb2

    至於main.cf關於sasl config的部份我只設定如下, 跟你原來的差不多.

    smtpd_sasl_auth_enable = yes

    smtpd_sasl_local_domain =

    smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks

    smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

    請試試看吧!

    PS. UNIX除了難在觀念, 茫茫網海中未必能找到需要的答案,

    因為狀況太多, 別人能解決的方法, 在你的環境下卻未必可用.

    2008-02-17 08:36:14 補充:

    不敢保證有沒有效, 先這樣試

    1) /etc/group 修改 sasl 那一行, 後面加入postfix

    原本 sasl:x:45: 改成 sasl:x:45:postfix

    不行的話再改這裡

    2) cd /var/run/saslauthd ; chgrp sasl *

    還不行嗎? 再放寬這裡

    3) chmod 770 /var/run/saslauthd

    如果都沒有幫助的話, 請改回原本的設定值.

  • Nephom
    Lv 7
    1 decade ago

    加入以下這幾行

    smtpd_sasl_local_domain =

    broken_sasl_auth_clients = yes

    smtpd_sasl_application_name=smtpd

    smtpd_sasl_path=/etc/postfix/sasl:/usr/lib/sasl2

    然後在/etc/postfix下建sasl資料夾...

    裡面建smtpd.conf

    裡面內容是

    pwcheck_method: saslauthd

    mech_list: plain login

    然後請安裝 sasl2-bin 這個套件

    到/etc/default/中編輯saslauthd這個檔案

    裡面改

    START=yes

    MECHANISMS="shadow"

    這兩個...

    然後/etc/init.d/saslauthd start

    and......

    postfix restart

    然後

    你再試試吧..............

    還有問題你可以來信問,自從用過Mandriva那個爛sasl的設定後...

    Debian也會設了= =

Still have questions? Get your answers by asking now.