qmail的smtp auth的問題,極度鬱悶
我在Solaris 9中幾經困難,最後還是成功搭建了qmail(1.05)+vpopmail(4.5.7)+mysql+igenus+ezmlm+autorespond+qmailadmin。運行2天,用戶反映基本OK。
後來,發現忘記打了一個smtp驗證的patch,外網用戶不能relay發往外域的郵件(outlook),然後下載了netqmail-1.05-tls-smtpauth-20070417.patch(from http://shupp.org/patches/),然後按照補丁的內容去打:
tar -xzf netqmail-1.05.tar.gz
cd netqmail-1.05(跳過./collate.sh
,因為感覺第一次安裝qmail時候已經做過了)
cd netqmail-1.05
patch -p0 < ../../netqmail-1.05-tls-smtpauth-20070417.patch
cd netqmail-1.05
make
make setup check
make cert
make tmprsadh
整個打補丁過程沒有任何錯誤(開始有,後來解決了)。但是隨之大問題就來了,telnet localhost 25埠,不通了,或者說一tlenet,就直接關閉:
bash-2.05# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection to localhost closed by foreign host.
請問出了什麼問題?怎麼解決?急啊~~~~:em11: :em11: :em11:
《解決方案》
其中,沒有把原先的sendmail卸載掉。不過已經停掉服務了。至少在沒做smtp auth前,都可以正常使用的,做了后就出問題了。不卸載sendmail,就是為了防止qmail掛了的時候,可以直接切換成sendmail服務。
等待高手~~:)
《解決方案》
有可能是 qmail-smtpd 的啟動腳本有問題,最好是檢查一下 smtpd 的日誌
《解決方案》
大麻兄,smtp日誌有錯誤:
2007-07-31 09:19:58.413683500 ld.so.1: /var/qmail/bin/qmail-smtpd: fatal: libssl.so.0.9.7: open failed: No such file or directory
但是該文件明明有的啊:
bash-2.05# find / -name libssl.so.0.9.7 -print
/usr/local/ssl/lib/libssl.so.0.9.7
bash-2.05# echo $LD_LIBRARY_PATH
/usr/lib:/usr/local/lib:/opt/sfw/kde/lib:/opt/sfw/gcc-3/lib:/opt/sfw/qt-3.3.4/usr/lib/qt-x11-free-3.3.4/lib:/opt/sfw/mysql/lib/mysql:/opt/sfw/php/lib/php:/usr/local/BerkeleyDB.4.2/lib:/opt/sfw/openldap/lib:/usr/local/gd/lib:/usr/local/ssl/lib:.
是屬性不對嗎?
bash-2.05# ls -lah /usr/local/ssl/lib/libssl.so.0.9.7
-r-xr-xr-x 1 root other 214K Mar 10 2005 /usr/local/ssl/lib/libssl.so.0.9.7
《解決方案》
libssl.so.0.9.7 所在的路徑,ld 找不到
《解決方案》
但是LD_LIBRARY_PATH里有/usr/local/ssl/lib路徑啊
bash-2.05# echo $LD_LIBRARY_PATH
/usr/lib:/usr/local/lib:/opt/sfw/kde/lib:/opt/sfw/gcc-3/lib:/opt/sfw/qt-3.3.4/usr/lib/qt-x11-free-3.3.4/lib:/opt/sfw/mysql/lib/mysql:/opt/sfw/php/lib/php:/usr/local/BerkeleyDB.4.2/lib:/opt/sfw/openldap/lib:/usr/local/gd/lib:/usr/local/ssl/lib:.
怎麼回事?openssl需要配置么?
《解決方案》
其實我目前還不需要ssl的數字認證加密,只要smtp認證就夠了,兩者一起來,出了錯反而麻煩……
《解決方案》
bash-2.05# more /var/qmail/supervise/qmail-smtpd/run
#!/bin/sh
QMAILDUID=`/usr/xpg4/bin/id -u qmaild`
NOFILESGID=`/usr/xpg4/bin/id -g qmaild`
VPOPMAILUID='/usr/xpg4/bin/id -u vpopmail'
VCHKPWGID='/usr/xpg4/bin/id -g vchkpw'
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`
if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; the
n
echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
if [ ! -f /var/qmail/control/rcpthosts ]; then
echo "No /var/qmail/control/rcpthosts!"
echo "Refusing to start SMTP listener because it'll create an open relay"
exit 1
fi
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -H -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$VPOPMAILUID" -g "$VCHKPWGID" 0 smtp /var/qmail/bin/qmail-smtpd "$LOCAL" ~vp
opmail/bin/vchkpw /bin/true 2>&1
《解決方案》
等我乾脆把libssl.so.0.9.7文件放到/usr/lib下后,再次運行,出現新的error:
2007-07-31 13:48:57.092091500 ld.so.1: /var/qmail/bin/qmail-smtpd: fatal: /usr/lib/libnsl.so.1: mmap failed: Not enough space
明明機子有的是空間
bash-2.05# df -kh
Filesystem size used avail capacity Mounted on
/dev/dsk/c1t0d0s0 29G 5.0G 24G 18% /
/proc 0K 0K 0K 0% /proc
mnttab 0K 0K 0K 0% /etc/mnttab
fd 0K 0K 0K 0% /dev/fd
swap 4.4G 24K 4.4G 1% /var/run
swap 4.4G 72K 4.4G 1% /tmp
/dev/dsk/c1t0d0s7 35G 3.5G 31G 10% /export/home
繼續摸索中,同時渴望得到答案:em11:
《解決方案》
已經快崩潰了……請高人指點啊:em51: