fBSD: sendmail + sasl2 + procmail + courier-imap
請教
我用 freeBSD 5.4 . 用 ports 裝了 mail/sendmail-sasl ...etc 各種 mail servers
MTA : sendmail 8.13.4 設好了有正常跑了
pop3 用 cucipop (standalone) 也可讓 user 正常收發信了
procmail
openssl
再來想加 imap server
我本用 imap-uw 搞不出,後現改用 courier-imap 也搞不出.
當 WXP outlook express
連上 pop3 server 時 沒問題.
連上 imap server 時, 說 "伺服器拒絕登錄,請檢查您的使用這名稱與密碼是否正確."
Login failed.
設定:
帳戶: user1
伺服器: 192.168.1.100
使用者名稱: user1
通訊協定: IMAP
連接埠: 143
安全(SSL): 0
碼: 800cccd1
不論是
伺服器項目下 使用安全密碼驗證登入(S)
或
進階項目下 IMAP SSL 993
都不行
(我還沒設要使用 IMAP SSL 說;想等先沒 ssl 的可以後,下一步在說)
看 /var/log/maillog 說
Aug 12 00:52:44 mylocalhost cucipop[592]: user1 192.168.1.55 0, 0 (0), 0 (0)
Aug 12 00:52:53 mylocalhost imapd: LOGIN FAILED, user=user1,
ip=[192.168.1.55]
不知問題何在? ... :(
請 前輩們幫我看看哪裡該改進.
謝謝
下面是一些 環境 或 設定檔
# telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.mydomain.net.
Escape character is '^]'.
220 localhost.mydomain.net ESMTP Sendmail 8.13.4/8.13.3; Thu, 11 Aug 2005
23:40:56 -0700 (PDT)
ehlo localhost
250-localhost..mydomain.net Hello localhost.mydomain.net [127.0.0.1],
pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
starttls
220 2.0.0 Ready to start TLS
# telnet localhost 143
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.mydomain.net.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS
XCOURIEROUTBOX=INBOX.Outbox] Courier-IMAP ready. Copyright 1998-2005 Double
Precision, Inc. See COPYING for distribution information.
# telnet localhost 110
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.ohbi.net.
Escape character is '^]'.
+OK Cubic Circle's v1.31 1998/05/13 POP3 ready
<930200008846fc42@localhost.mydomain.net>
USER user1
+OK user1 selected
PASS xxxx
+OK Congratulations!
QUIT
+OK Was it as good for you, as it was for me? (clean as a baby)
Connection closed by foreign host.
以下是部份 .mc
# cat etc/mail/localhost.localdomain.mc
divert(-1)
divert(0)
VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.29 2003/12/24 21:15:09
gshapiro Exp $')
OSTYPE(freebsd5)
DOMAIN(generic)
define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
FEATURE(blacklist_recipients)
FEATURE(local_lmtp)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
define(`PROCMAIL_MAILER_PATH', `/usr/local/bin/procmail')dnl
FEATURE(`local_procmail')dnl
# 這是 openssl 作的 cert
define(`CERT_DIR', `/etc/mail/cert')dnl
define(`confCACERT_PATH', `CERT_DIR')dnl
define(`confCACERT', `CERT_DIR/mycert.pem')dnl
define(`confSERVER_CERT', `CERT_DIR/mycert.pem')dnl
define(`confSERVER_KEY', `CERT_DIR/mykey.pem')dnl
define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')dnl
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')dnl
define(`confCW_FILE', `-o /etc/mail/local-host-names')
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confPRIVACY_FLAGS', `goaway')
MAILER(procmail)dnl
# end of etc/mail/localhost.localdomain.mc
# cat /etc/procmailrc
PATH="/usr/bin:/usr/local/bin"
MAILDIR="$HOME/Maildir"
DEFAULT="$HOME/Maildir/"
SHELL="/bin/sh"
# end of /etc/procmailrc
# cat /etc/pam.d/imap
auth required pam_unix.so try_first_pass
account required pam_unix.so try_first_pass
session required pam_permit.so
# end of /etc/pam.d/imap
部份的 courier-imapd 設定
# cat /usr/local/etc/courier-imap/imapd
##VERSION: $Id: imapd.dist.in,v 1.37 2005/07/05 12:31:27 mrsam Exp $
#
# imapd created from imapd.dist by sysconftool
##NAME: ADDRESS:0
ADDRESS=0
##NAME: PORT:1
PORT=143
##NAME: AUTHSERVICE:0
##NAME: MAXDAEMONS:0
MAXDAEMONS=40
##NAME: MAXPERIP:0
MAXPERIP=4
##NAME: PIDFILE:0
PIDFILE=/var/run/imapd.pid
##NAME: TCPDOPTS:0
TCPDOPTS="-nodnslookup -noidentlookup"
##NAME: LOGGEROPTS:0
LOGGEROPTS="-name=imapd"
##NAME: DEFDOMAIN:0
DEFDOMAIN="@mylocalhost.mydomain.net"
##NAME: IMAP_CAPABILITY:1
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=R
EFERENCES SORT QUOTA IDLE"
##NAME: KEYWORDS_CAPABILITY:0
IMAP_KEYWORDS=1
##NAME: SMAP1_CAPABILITY:0
##NAME: IMAP_CAPABILITY_ORIG:2
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE
THREAD=ORDEREDSUBJECT THR
EAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256
IDLE"
##NAME: IMAP_PROXY:0
IMAP_PROXY=0
##NAME: PROXY_HOSTNAME:0
##NAME: IMAP_PROXY_FOREIGN:0
IMAP_PROXY_FOREIGN=0
##NAME: IMAP_IDLE_TIMEOUT:0
IMAP_IDLE_TIMEOUT=120
##NAME: IMAP_CAPABILITY_TLS:0
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
##NAME: IMAP_TLS_ORIG:0
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
##NAME: IMAP_DISABLETHREADSORT:0
IMAP_DISABLETHREADSORT=0
##NAME: IMAP_CHECK_ALL_FOLDERS:0
IMAP_CHECK_ALL_FOLDERS=0
##NAME: IMAP_OBSOLETE_CLIENT:0
IMAP_OBSOLETE_CLIENT=0
##NAME: IMAP_UMASK:0
IMAP_UMASK=022
##NAME: IMAP_ULIMITD:0
IMAP_ULIMITD=65536
##NAME: IMAP_USELOCKS:0
IMAP_USELOCKS=1
##NAME: IMAP_SHAREDINDEXFILE:0
IMAP_SHAREDINDEXFILE=/usr/local/etc/courier-imap/shared/index
##NAME: IMAP_ENHANCEDIDLE:0
IMAP_ENHANCEDIDLE=0
##NAME: IMAP_TRASHFOLDERNAME:0
IMAP_TRASHFOLDERNAME=Trash
##NAME: IMAP_EMPTYTRASH:0
# IMAP_EMPTYTRASH=Trash:7,Sent:30
IMAP_EMPTYTRASH=Trash:7
##NAME: IMAP_MOVE_EXPUNGE_TO_TRASH:0
IMAP_MOVE_EXPUNGE_TO_TRASH=0
##NAME: OUTBOX:0
# 這裡有給它 uncomment 了
OUTBOX=.Outbox
##NAME: SENDMAIL:0
# 這裡給他改了 因為 port 新的 sendmail 在 /usr/local/sbin/sendmail
SENDMAIL=/usr/local/sbin/sendmail
##NAME: HEADERFROM:0
HEADERFROM=X-IMAP-Sender
##NAME: OUTBOX_MULTIPLE_SEND:0
##NAME: IMAPDSTART:0
IMAPDSTART=YES
##NAME: MAILDIRPATH:0
# 這裡就用 Maildir 吧!?
MAILDIRPATH=Maildir
# end of /usr/local/etc/courier-imap/imapd
故,在 /home/USERS/ 放了一個 Maildir
# ls -al /home/user1
drwxr-x--- 2 user1 user1 512 Aug 11 09:29 Maildir
# cat /usr/local/etc/rc.d/courier-imap-imapd.sh
#!/bin/sh
#
courier_imap_imapd_enable=${courier_imap_imapd_enable-"YES"}
.. /etc/rc.subr
name="courier_imap_imapd"
rcvar=`set_rcvar`
command="/usr/local/libexec/courier-imap/imapd.rc"
pidfile="/var/run/imapd.pid"
procname="/usr/local/libexec/courier-imap/couriertcpd"
start_cmd="imapd_cmd start"
stop_cmd="imapd_cmd stop"
restart_cmd="imapd_cmd stop && imapd_cmd start"
load_rc_config $name
imapd_cmd () {
case $1 in
start)
echo "Starting ${name}."
${command} start
;;
stop)
echo "Stopping ${name}."
${command} stop
;;
esac
}
run_rc_command "$1"
# end of /usr/local/etc/rc.d/courier-imap-imapd.sh
# cat /usr/local/lib/sasl2/Sendmail.conf
pwcheck_method: saslauthd
# end of /usr/local/lib/sasl2/Sendmail.conf
# cat /etc/rc.d/saslauthd
#!/bin/sh
#
# $FreeBSD: ports/security/cyrus-sasl2-saslauthd/files/saslauthd.sh.in,v 1.1
2005/02/10 19:32:10 ume Exp $
prefix=/usr/local
saslauthd_enable=${saslauthd_enable:-"YES"} # Enable saslauthd
saslauthd_flags=${saslauthd_flags:-"-a pam"} # Flags to saslauthd program
.. /etc/rc.subr
name="saslauthd"
rcvar=`set_rcvar`
command="${prefix}/sbin/${name}"
load_rc_config $name
if [ -z "$saslauthd_runpath" ]; then
pidfile="/var/state/saslauthd/${name}.pid"
else
pidfile="${saslauthd_runpath}/${name}.pid"
command_args="-m ${saslauthd_runpath}"
fi
run_rc_command "$1"
# end of /etc/rc.d/saslauthd
# grep imap /etc/services 有
imap 的 tcp & udp
imaps 的 tcp & udp
# grep pop /etc/services 有
pop3 的 tcp & udp
pop3s 的 tcp & udp
最後, 有沒有啥開機時該開沒開的?
# cat /etcrc.conf
defaultrouter="192.168.1.100"
hostname="mylocalhost.localdomain.net"
ifconfig_rl0="inet 192.168.1.200 netmask 255.255.255.0"
inetd_enable="YES"
linux_enable="YES"
moused_enable="YES"
saver="blank"
saslauthd_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
apache2_enable="YES"
webmin_enable="YES"
謝謝囉 :)
<: 老音學生 :>
FreeBSD 近期熱門文章
PTT數位生活區 即時熱門文章