作者 主題: postfix + ldap 無法使用 courier-pop在outlook上收信  (閱讀 8315 次)

0 會員 與 1 訪客 正在閱讀本文。

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
各位大大,小弟在這邊請教一個問題!
我有兩台PC 上面的系統是 Debian etch

一台pc 安裝的是 samba + openldap
一台pc 安裝的是 postfix

當postfix收信時,他會去跟另一台pc 的ldap要user的資訊去做認證
我是用saslauthd 是跟ldap去做聯接,而不是用pam去做連接
我在Linux上收發信都沒有什麼問題,因為我想要outlook去收信,所以我安裝了courier-ldap couriew-imap courier-pop courier-base 這些套件,也在authldaprc這個檔案做過設定,但是每當我用outlook去收信的時候,他會一直要求我輸入密碼,可是寄信的話是沒有任何問題, 我不知道是什麼原因,可以請各位大大幫忙看看嗎?

authldaprc設定檔

#LDAP_URI ldaps://ldap.example.com, ldaps://backup.example.com
LDAP_URI ldap://10.0.88.50

##NAME: LDAP_PROTOCOL_VERSION:0
#
# Which version of LDAP protocol to use

LDAP_PROTOCOL_VERSION 3

##NAME: LDAP_BASEDN:0
#
# Look for authentication here:

LDAP_BASEDN ou=Users,dc=abc,dc=com,dc=tw

##NAME: LDAP_BINDDN:0
#
# You may or may not need to specify the following. Because you've got
# a password here, authldaprc should not be world-readable!!!

LDAP_BINDDN cn=admin,dc=abc,dc=com,dc=tw
LDAP_BINDPW q

##NAME: LDAP_TIMEOUT:0
#
# Timeout for LDAP search and connection

LDAP_TIMEOUT 5

##NAME: LDAP_AUTHBIND:0
#
# Define this to have the ldap server authenticate passwords. If LDAP_AUTHBIND
# the password is validated by rebinding with the supplied userid and password.
# If rebind succeeds, this is considered to be an authenticated request. This
# does not support CRAM-MD5 authentication, which requires clearPassword.
# Additionally, if LDAP_AUTHBIND is 1 then password changes are done under
# the credentials of the user themselves, not LDAP_BINDDN/BINDPW
#
#LDAP_AUTHBIND 1

##NAME: LDAP_MAIL:0
#
# Here's the field on which we query

LDAP_MAIL uid

##NAME: LDAP_FILTER:0
#
# This LDAP filter will be ANDed with the query for the field defined above
# in LDAP_MAIL. So if you are querying for mail, and you have LDAP_FILTER
# defined to be "(objectClass=CourierMailAccount)" the query that is performed
# will be "(&(objectClass=CourierMailAccount)(mail=<someAccount>))"
#
LDAP_FILTER (objectClass=inetOrgPerson)

##NAME: LDAP_DOMAIN:0
#
# The following default domain will be appended, if not explicitly specified.
#
# LDAP_DOMAIN agb.com.tw

##NAME: LDAP_GLOB_IDS:0
#
# The following two variables can be used to set everybody's uid and gid.
# This is convenient if your LDAP specifies a bunch of virtual mail accounts
# The values can be usernames or userids:
#
LDAP_GLOB_UID vmail
LDAP_GLOB_GID vmail

##NAME: LDAP_HOMEDIR:0
#
# We will retrieve the following attributes
#
# The HOMEDIR attribute MUST exist, and we MUST be able to chdir to it

LDAP_HOMEDIR uid

##NAME: LDAP_MAILROOT:0
#
# If homeDirectory is not an absolute path, define the root of the
# relative paths in LDAP_MAILROOT
#
LDAP_MAILROOT /var/vmail

##NAME: LDAP_MAILDIR:0
#
# The MAILDIR attribute is OPTIONAL, and specifies the location of the
# mail directory. If not specified, ./Maildir will be used

LDAP_MAILDIR .

##NAME: LDAP_DEFAULTDELIVERY:0
#
# Courier mail server only: optional attribute specifies custom mail delivery
# instructions for this account (if defined) -- essentially overrides
# DEFAULTDELIVERY from ${sysconfdir}/courierd

LDAP_DEFAULTDELIVERY defaultDelivery

##NAME: LDAP_MAILDIRQUOTA:0
#
# The following variable, if defined, specifies the field containing the
# maildir quota, see README.maildirquota for more information
#
# LDAP_MAILDIRQUOTA quota


##NAME: LDAP_FULLNAME:0
#
# FULLNAME is optional, specifies the user's full name

LDAP_FULLNAME cn

##NAME: LDAP_PW:0
#
# CLEARPW is the clear text password. CRYPT is the crypted password.
# ONE OF THESE TWO ATTRIBUTES IS REQUIRED. If CLEARPW is provided, and
# libhmac.a is available, CRAM authentication will be possible!

LDAP_CLEARPW clearPassword
LDAP_CRYPTPW userPassword

##NAME: LDAP_IDS:0
#
# Uncomment the following, and modify as appropriate, if your LDAP database
# stores individual userids and groupids. Otherwise, you must uncomment
# LDAP_GLOB_UID and LDAP_GLOB_GID above. LDAP_GLOB_UID and LDAP_GLOB_GID
# specify a uid/gid for everyone. Otherwise, LDAP_UID and LDAP_GID must
# be defined as attributes for everyone.
#
LDAP_UID uidNumber
LDAP_GID gidNumber


##NAME: LDAP_AUXOPTIONS:0
#
# Auxiliary options. The LDAP_AUXOPTIONS setting should contain a list of
# comma-separated "ATTRIBUTE=NAME" pairs. These names are additional
# attributes that define various per-account "options", as given in
# INSTALL's description of the OPTIONS setting.
#
# Each ATTRIBUTE specifies an LDAP attribute name. If it is present,
# the attribute value gets placed in the OPTIONS variable, with the name
# NAME. For example:
#
# LDAP_AUXOPTIONS shared=sharedgroup,disableimap=disableimap
#
# Then, if an LDAP record contains the following attributes:
#
# shared: domain1
# disableimap: 0
#
# Then authldap will initialize OPTIONS to #"sharedgroup=domain1,disableimap=0"
#
# NOTE: ** no spaces in this setting **, the above example has exactly
# one tab character after LDAP_AUXOPTIONS


##NAME: LDAP_ENUMERATE_FILTER:0
#
# {EXPERIMENTAL}
# Optional custom filter used when enumerating accounts for authenumerate,
# in order to compile a list of accounts for shared folders. If present,
# this filter will be used instead of LDAP_FILTER.
#
# LDAP_ENUMERATE_FILTER #(&(objectClass=CourierMailAccount)(!(disableshared=1)))


##NAME: LDAP_DEREF:0
#
# Determines how aliases are handled during a search. This option is available
# only with OpenLDAP 2.0
#
# LDAP_DEREF can be one of the following values:
# never, searching, finding, always. If not specified, aliases are
# never dereferenced.

LDAP_DEREF never

##NAME: LDAP_TLS:0
#
# Set LDAP_TLS to 1 to use the Start TLS extension (RFC 2830). This is
# when the server accepts a normal LDAP connection on port 389 which
# the client then requests 'upgrading' to TLS, and is equivalent to the
# -ZZ flag to ldapsearch. If you are using an ldaps:// URI then do not
# set this option.
#
# For additional LDAP-related options, see the authdaemonrc config file.

LDAP_TLS 0

imap和pop設定檔因為怕版面太長,而且小弟完成沒有動到這兩個檔案,所以暫時不post上來了

錯誤訊息

May 13 20:28:56 mail courierpop3login: Connection, ip=[::ffff:10.0.88.51]
May 13 20:28:56 mail authdaemond: received auth request, service=pop3, authtype=login
May 13 20:28:56 mail authdaemond: authldap: trying this module
May 13 20:28:56 mail authdaemond: using search filter: (&(objectClass=inetOrgPerson)(uid=jc))
May 13 20:28:56 mail authdaemond: one entry returned, DN: uid=jc,ou=Users,dc=abc,dc=com,dc=tw
May 13 20:28:56 mail authdaemond: raw ldap entry returned:
May 13 20:28:56 mail authdaemond: | cn: jc
May 13 20:28:56 mail authdaemond: | uid: jc
May 13 20:28:56 mail authdaemond: | uidNumber: 1000
May 13 20:28:56 mail authdaemond: | gidNumber: 513
May 13 20:28:56 mail courierpop3login: jc: chdir(jc) failed!!
May 13 20:28:56 mail courierpop3login: error: No such file or directory
May 13 20:28:56 mail courierpop3login: LOGIN FAILED, user=jc, ip=[::ffff:10.0.88.51]
May 13 20:28:56 mail courierpop3login: authentication error: No such file or directory
May 13 20:28:56 mail authdaemond: | userPassword: {MD5}dpT0pmMW5TyM3Z2ZVL1hHQ==
May 13 20:28:56 mail authdaemond: authldaplib: sysusername=<null>, sysuserid=1000, sysgroupid=513, homedir=jc, address=jc, fullname=jc, maildir=<null>, quota=<null>, options=<null>
May 13 20:28:56 mail authdaemond: authldaplib: clearpasswd=<null>, passwd={MD5}dpT0pmMW5TyM3Z2ZVL1hHQ==
May 13 20:28:56 mail authdaemond: password matches successfully
May 13 20:28:56 mail authdaemond: Authenticated: sysusername=<null>, sysuserid=1000, sysgroupid=513, homedir=jc, address=jc, fullname=jc, maildir=<null>, quota=<null>, options=<null>
May 13 20:28:56 mail authdaemond: Authenticated: clearpasswd=q, passwd={MD5}dpT0pmMW5TyM3Z2ZVL1hHQ==

damon

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 4227
    • 檢視個人資料
    • http://blog.damon.tw/
為甚麼不用pam ?

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
damon大大:

pam要如何整合,小弟沒用過!
PAM可以跨機器做認證嗎?可以教一下小弟嗎?
謝謝

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8830
    • 檢視個人資料
    • http://www.24online.cjb.net
如果你的系統可以選擇認證方式(PAM).......

如果你的系統支援LDAP.......


如果你有先抬頭看看 LDAP 區的文章.......



如果......
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
日京三子大大,小弟有個疑問
我的smtp是用saslauthd 去做認証,假如我改用 pam的話,是否就用不到saslauthd呢?假如用不到,那我寄信要用什麼來做認証呢?
可以請大大講解一下嗎?

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8830
    • 檢視個人資料
    • http://www.24online.cjb.net
日京三子大大,小弟有個疑問
我的smtp是用saslauthd 去做認証,假如我改用 pam的話,是否就用不到saslauthd呢?假如用不到,那我寄信要用什麼來做認証呢?
可以請大大講解一下嗎?
呃,關那什麼事?

簡單的說,你想錯方向了。有緣請看一下PAM的說明文件,你會有正確的認知的。
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
日京三子大大,你的意思是說saslauthd也丟給pam去做認証嗎?
可是我的ldap server 是在A機器上,但是我的mail server 是在B 機器上
我要如何用pam從B去跟A溝通呢?
小弟不太知道,可以講解一下嗎?

rainday

  • 鑽研的研究生
  • *****
  • 文章數: 738
  • 性別: 男
  • enhancing and optimizing
    • 檢視個人資料
單單說明 pam & ldap
你需要的是在pam.d中設定好關於pam_ldap.so的部份,然後設定好給pam關於ldap的config值,pam自然會幫你導引到你想要的ldap server上
其他管道你就要詳讀PAM及Saslauth的文件
<0  =_=  Don't learn to hack , hack to learn.

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17465
    • 檢視個人資料
    • http://www.study-area.org
name service 的部分,你可以讓 program 直接去調 libc 去要資訊。
也可以丟給 pam 去要,當然 pam 也可以再繞回去跟 libc 要。
也可以丟給其他 program 去要,那這個其他 program 也可以重复上述方法。
理論是這樣啦,但具體實作,我就沒甚麼建議了,先自己弄弄吧。

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
謝謝各位大大的指導,現在可以用PAM去跟LDAP做認証,小弟用Dovecot-pop3d 採用Maildir格式去做POP3
用outlook收信卻是不行,好像是權限的問題,

-rw------- 1 dovecot Domain Users        1060 2008-05-21 20:19 1211372377.V304I128018M548
小弟登入的帳號是jc,但是Mail 的user 卻是dovecot,所以才會出現以下訊息

May 21 21:00:50 mail dovecot: POP3(jc): open(/home/jc/cur/1211372377.V304I128018M548444.mail:2,) failed: Permission denied

請問dovecot.conf 裡面那裡可以設定mail收進來的預設權限,或者可以指定 users或 group來收信,請各位大大幫忙一下!

這個postfix設定是指定 mail 的uid 和 gid

virtual_alias_maps = ldap:accounts,ldap:aliases
virtual_mailbox_base =/home/
virtual_mailbox_maps = ldap:mailbox
#virtual_transport = maildrop
virtual_uid_maps = static:107
virtual_gid_maps = static:513

這是Dovecot設定檔,因為怕太佔版面,只po有更動過的

protocols = imap pop3
listen = *
disable_plaintext_auth = no
mail_location = maildir:~/
##
## POP3 specific settings
##

protocol pop3 {
  # Login executable location.
  login_executable = /usr/lib/dovecot/pop3-login
  pop3_uidl_format = %08Xu%08Xv
}
 passdb pam {
      args = session=yes *
    #   args = cache_key=%u dovecot
    #args = dovecot
  }


Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
各位大大,小弟的問題算解決了
我在main.cf下設定一個檔案A,然後在檔案A上設定username和uid對應
然後讓postfix去抓他對應!
這個缺點就是你新增一個user就要去檔案A作一次對應,比較麻煩一點!

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
謝謝大大的意見,小弟會去試試看!

linux12399

  • 懷疑的國中生
  • **
  • 文章數: 63
    • 檢視個人資料
 :) 我最近也遇此問題耶 , 後來放棄 DOVECOT 改用日京三子大大指導的 IMAP-2002D 就都OK了  :)

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
linux12399大大,什麼是IMAP-2002D ?
可以幫小弟解惑一下嗎?
謝謝!

linux12399

  • 懷疑的國中生
  • **
  • 文章數: 63
    • 檢視個人資料
Dear kc19800322 大大 :
IMAP-2002D 其實就是以前最早時期 on 在 xinetd 上的 pop3 與 imap 服務的軟體 ,
您可以從 http://www.filewatcher.com/m/imap-2002d-3.i386.rpm.1287279.0.0.html 下載 rpm 來安裝 ,
然後 vi /etc/xinetd.d/ipop3 將 disable = yes 改成 disable = no , 接著 /etc/rc.d/init.d/xinetd restart
就可輕鬆使用了 ^^ 真方便耶 , 您可以試試看喔 ^^

對了 , 後來kc19800322 大大這篇文章 ==> http://phorum.study-area.org/index.php/topic,52102.msg266698.html#msg266698
寄發 ldap群組郵件 想請教 kc19800322 您有解決方案了否 ?

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
linux12399大大,如何讓ldap搜尋cn的屬性,小弟暫時還是找不出來!
不過有一個替代方案,就是在我的ldap設定上加一個"$alias_maps",讓他去讀/etc/aliases的設定檔,讓他可以寄發群組Mail
virtual_alias_maps = ldap:accounts,ldap:aliases,$alias_maps
希望這些對大大有一點幫助,假如還有什麼問題大家可以一起討論

PS:小弟還是滿好奇大大的Dovecot為什麼不行,可以討論一下嗎?

linux12399

  • 懷疑的國中生
  • **
  • 文章數: 63
    • 檢視個人資料
Dear kc19800322 大大 :
我已實測成功 寄發 ldap群組郵件 了耶 ^^
1. 加 ldap 帳號 test1 , test2
2. mail server 只要 vi /etc/postfix/main.cf 加入alias_maps = hash:/etc/aliases 接著在  vi /etc/aliases 加入一行  test12  :  test1,test2
3. 執行 postalias /etc/aliases
以上 只要寄給 test12@123.com 的 , test1@123.com 與 test2@123.com 就都會收到信了 ^^

Dovecot 無論如何照 dovecot.org 設定去實作都一樣無法通過 ,至今還尚未有答案 ^^"