摘要
Qmail+LDAP安裝配置實例(2002-07-02 12:31:03)
By ideal
SMTP 訪問控制
允許本地主機通過SMTP發信:
echo '127.:allow,RELAYCLIENT=''' >>/etc/tcp.smtp
qmailctl cdb
停止已經安裝的MTA
如果MTA 是Sendmail,應該使用下面命令中的一個停止sendmail 工作:
/etc/init.d/sendmail stop
/sbin/init.d/sendmail stop
/etc/rc.d/init.d/sendmail stop
或者下面命令停止
kill PID-of-sendmail
通過下面命令卸裝Sendmail :
rpm -e --nodeps sendmail
最後,使用qmail版本的sendmail代替系統/usr/lib/sendmail的sendmail:
mv /usr/lib/sendmail /usr/lib/sendmail.old # ignore errors
mv /usr/sbin/sendmail /usr/sbin/sendmail.old # ignore errors
chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old # ignore errors
ln -s /var/qmail/bin/sendmail /usr/lib
ln -s /var/qmail/bin/sendmail /usr/sbin
注: 生成'sendmail鏈接是重要的,因為有許多應用涉及發mail。
最後一步產生系統別名(aliases)
echo alias > /var/qmail/alias/.qmail-root
echo alias > /var/qmail/alias/.qmail-postmaster
ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster
啟動qmail
qmailctl start
添加pop3服務
生成 /var/qmail/supervise/qmail-pop3d/run 腳本包含下面內容:
#!/bin/sh
exec /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup
longshine.com /bin/checkpassWord /var/qmail/bin/qmail-pop3d Maildir 2>&1
生成/var/qmail/supervise/qmail-pop3d/log/run 腳本包含下面內容:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
/var/log/qmail/pop3d
建立log目錄使得腳本可以執行且將此服務鏈接到/service:
chmod +t /var/qmail/supervise/qmail-pop3d
mkdir /var/log/qmail/pop3d
chown qmaill /var/log/qmail/pop3d
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
ln -s /var/qmail/supervise/qmail-pop3d /service
在qmailctl腳本中添加下面內容:
在qmailctl'的 'start' 部分:
if svok /service/qmail-pop3d ; then
svc -u /service/qmail-pop3d
else
echo qmail-pop3d service not running
fi
在qmailctl'的 'stop' 部分:
echo ' qmail-pop3d'
svc -d /service/qmail-pop3d
在qmailctl'的 'stat' 部分:
svstat /service/qmail-pop3d
svstat /service/qmail-pop3d/log
在qmailctl'的 'pause' 部分:
echo 'Pausing qmail-pop3d'
svc -p /service/qmail-pop3d
在qmailctl'的 'cont' 部分:
echo 'Continuing qmail-pop3d'
svc -c /service/qmail-pop3d
在qmailctl'的 'restart' 部分:
echo '* Restarting qmail-pop3d.'
svc -t /service/qmail-pop3d
在/etc/hosts腳本中添加
172.18.6.111 longshine.com
qmail的測試
測試安裝:
可以參照TEST.deliver 和 TEST.receive 文檔測試其工作是否正常。注意日志是由 multilog 而不是splogger生成的。
測試Pop3和SMTP服務
首先啟動qmail郵件服務器,然後測試,使用如下命令:
本地測試:
#run_mail
#netstat -na grep 25
#netstat -na grep 110
#telnet localhost 110
user test
pass test
list
retr 1
遠程測試:
利用Windows下的圖形郵件客戶端(如 Outlook、FoxMail等)來測試郵件的收發。
為qmail增加LDAP支持
qmail可以通過LDAP來代替傳統的/etc/passwd方式的Pop3認證,以便提高認證效率和有效的支持大容量的郵件客戶,為了使 qmail獲得LDAP支持,需要在qmail的基礎上增加具備LDAP認證的Patch包,最好使用qmail新的壓縮包,具體操作使用如下命令:
#rm -rf qmail-1.03
#zip -zxvf qmail-1.03.tar.gz
#gunzip qmail-ldap-1_03-20010301_patch.gz
#cd qmail-1.03
#patch -p1 < ../ qmail-ldap-1.03-20010501.patch
在patch包打好之後,需要修改qmail的Makefile文件來配置相應的LDAP信息,具體如下(這裡只說明必須修改的,其余的可選項請參考QLDAPINSTALL.TXT文檔):
1) -LDAPFLAGS = -DCLEARTEXTPASSWORD
配置是否在LDAP目錄中使用明文密碼。
2) -LDAPLIBS =
配置使用的LDAP接口庫,在本例中為:
LDAPLIBS=-L/usr/local/lib -L/usr/X11R6/lib/modules -lldap -llber -lldap_r -lpthread -lresolv
3)-SHADOWLIBS = -lcrypt -lshadow
-SHADOWOPTS = -DPW_SHADOW
配置使用的密碼認證方式。
在Makefile設置修改完畢後,重新編譯qmail源文件,然後覆蓋安裝qmail,使用如下命令:
#make setup check
安裝openldap
zip -zxvf openldap-2.07.tgz
cd openldap-2.07
./configure
make depend
make
make test
su root -c 'make install'
這樣openldap安裝完成
在/var/qmail/control/下建立相應的LDAP支持文件:
#cat ldapserver
172.18.6.111
#cat ldapbasedn
dc=longshine , dc=com
#cat ldapobjectclass
qmailUser
將qmail.schema拷貝到openldap的相應目錄下面
cp /usr/local/src/qmail/qmail-1.03/qmail.schema /usr/local/etc/openldap/schema/.
編輯configuration 文件 /usr/local/etc/openldap/slapd.conf)
database ldbm
suffix 'dc=longshine,dc=com'
rootdn 'cn=Manager,dc= longshine ,dc='
rootpw secret
Directory /usr/local/var/openldap-ldbm
增加相應的shema文件
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/qmail.schema
啟動 SLAPD.
su root -c /usr/local/libexec/slapd
為了檢測openldap是否運行和配置正確。可以執行ldapsearch命令進行檢測。缺省的,ldapsearch 安裝在/usr/local/bin/ldapsearch:
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
應該可以看見
dn:
namingContexts: dc=longshine,dc=com
增加目錄的初始人口。
分為二步:
生成一個LDIF 文件
運行ldapadd
是編輯器生成一個LDIF 文件,包含如下內容:
dn: dc=,dc=
objectclass: dcObject
objectclass: organization
o:
dc:
dn: cn=Manager,dc=,dc=
objectclass: organizationalRole
cn: Manager
我的此文件Manager.ldif文件內容為dn: dc=longshine,dc=com,dc=cn
objectclass: dcObject
objectclass: organization
o: longshine
dc: longshine
dn: cn=Manager,dc=longshine,dc=com
objectclass: organizationalRole
cn: Manager
現在運行ldapadd程序
ldapadd -x -D 'cn=Manager,dc=longshine,dc=com' -W -f /root/manager.ldif
如果要輸入密碼為secret。
增加qmail用戶信息,生成test.ldif文件
dn: cn=testUser,dc=longshine,dc=com
cn: testUser
sn: testUser
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: qmailUser
mail:
[email protected]
mailHost: longshine.com
mailMessageStore: /home/test/Maildir/
mailQuota: 1000000S,100C
uid: test
userPassword: test
qmailUID: 508
qmailGID: 508
注qmailUID,qmailGID可以通過/etc/passwd文件查詢到。使用下面命令進入ldapadd -x -D 'cn=Manager,dc=longshine,dc=com' -W -f /root/test.ldif
如果要輸入密碼為secret。
將/var/qmail/supervise/qmail-pop3d/run 腳本包含下面內容:
#!/bin/sh
exec /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup
longshine.com /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir 2>&1
測試LDAP:
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
使用什麼命令查看添加的時間是否正確。如果不正確可以使用
ldapdelete -x -D'cn=Manager,dc=longshine,dc=com' -w secret "cn=testUser,dc=longshine,dc=com"
刪除,然後重新添加。
測試基於LDAP的Pop3認證
在上述步驟完成後,從新測試qmail郵件系統的運行狀況,主要從以下三個方面測試,具體命令如下:
本地測試
具體請參考TEST.deliver 和 TEST.receive 的方法。
Pop3+SMTP測試
telnet localhost 25 和telnet localhost 110
測試工具
#/var/qmail/bin/qmail-ldaplookup -u test
#/var/qmail/bin/qmail-ladplookup -m
[email protected]
也可用Windows下的圖形郵件客戶端(如 outlook、foxmail等)來測試郵件的收發。
參考資料
Life with qmail (http://www.lifewithqmail.org/lwq.Html)
QLDAPINSTALL (http://www.openldap.org/doc/admin/quickstart.html) qmail+LDAP安裝與配置(http://www.chinabyte.com/builder/Linux/linux_detail.shtm?id=1650&parid=1&dtype=1) X.D.Chen'
mailMessageStore: /home/test/Maildir/
mailQuota: 1000000S,100C
uid: test
userPassword: test
qmailUID: 508
qmailGID: 508
注qmailUID,qmailGID可以通過/etc/passwd文件查詢到。使用下面命令進入ldapadd -x -D 'cn=Manager,dc=longshine,dc=com' -W -f /root/test.ldif
如果要輸入密碼為secret。
將/var/qmail/supervise/qmail-pop3d/run 腳本包含下面內容:
#!/bin/sh
exec /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup
longshine.com /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir 2>&1
測試LDAP:
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
使用什麼命令查看添加的時間是否正確。如果不正確可以使用
ldapdelete -x -D'cn=Manager,dc=longshine,dc=com' -w secret "cn=testUser,dc=longshine,dc=com"
刪除,然後重新添加。
測試基於LDAP的Pop3認證
在上述步驟完成後,從新測試qmail郵件系統的運行狀況,主要從以下三個方面測試,具體命令如下:
本地測試
具體請參考TEST.deliver 和 TEST.receive 的方法。
Pop3+SMTP測試
telnet localhost 25 和telnet localhost 110
測試工具
#/var/qmail/bin/qmail-ldaplookup -u test
#/var/qmail/bin/qmail-ladplookup -m
[email protected]
也可用Windows下的圖形郵件客戶端(如 outlook、foxmail等)來測試郵件的收發。
參考資料
Life with qmail (http://www.lifewithqmail.org/lwq.html)
QLDAPINSTALL (http://www.openldap.org/doc/admin/quickstart.html) qmail+LDAP安裝與配置(http://www.chinabyte.com/builder/Linux/linux_detail.shtm?id=1650&parid=1&dtype=1) X.D.Chen'