Postfix Integrated Solution
>>>
--------------------------------------------------------------------------------
Postfix + OpenLDAP (Debian) 已完成 2004-9-28
今天是八月十五中秋节,今天我成功地实现了Postfix + LDAP实验,心情很不错。
一直以来,我想写这篇文档,历为几次安装失败,使我有种恐惧感,不想碰它,今日实验的成功, 心情清松极了,我有信心完成这篇文档。
阅读本章,请选确认是成功地完成了OpenLDAP中的Debian一节的配置.否则你是无法进行本章的学习.
一般来讲,配置邮件服务器包括Qmail在内,失败的原因20%安装的软件包不匹配即依赖关系,20%安装参数有误, 40%是配置有错误,剩下20%用户配置好了,能发不能收,要么是能收不能发.我也是过来人啊,哈哈!
本文档的特点是全部使用apt-get安装,不涉及编译,安装简单、方便、快捷。
准备工作
我们首先来热热身,给自己点信心,以便能完成下面更复杂的配置。
环境 Linux debian 2.4.26-1-386
Last login: Fri Sep 17 03:56:24 2004 from 192.168.0.254
debian:~# uname -a
Linux debian 2.4.26-1-386 #1 Thu Jul 22 12:46:23 JST 2004 i686 GNU/Linux
debian:~#
apt-get install 安装所需模块
必须安装的软件包:
debian:~# apt-get install postfix
debian:~# apt-get install postfix-ldap postfix-tls
debian:~# apt-get install sasl2-bin
debian:~# apt-get install libsasl2-modules
debian:~# apt-get install libsasl2-modules-gssapi-heimdal
debian:~# apt-get install libpam-ldap
debian:~# apt-cache search courier
debian:~# apt-get install courier-pop
debian:~# apt-get install courier-imap
debian:~# apt-get install courier-imap-ssl
debian:~# apt-get install courier-pop-ssl
debian:~# apt-get install courier-maildrop
debian:~# apt-get install courier-ldap
debian:~# apt-get install amavisd-new
debian:~# apt-get install spamassassin
debian:~# apt-get install clamav clamav-base clamav-daemon clamav-freshclam clamav-getfiles libclamav1
debian:~# apt-get install webmin
debian:~# apt-get install webmin-postfix
debian:~# apt-get install webmin-spamassassin
debian:~# apt-get install squirrelmail
debian:~# /usr/sbin/squirrelmail-configure
debian:~# apt-get install swaks
debian:/etc/postfix# apt-get install nmap
debian:~# apt-get install libberkeleydb-perl
Postfix Integrated Solution
<<< Previous Postfix + OpenLDAP (Debian) 已完成 2004-9-28 Next >>>
--------------------------------------------------------------------------------
创建所需条目
Example 1. postfix-ldap.ldif
debian:/etc/postfix# cat postfix-ldap.ldif
#dn: dc=example,dc=net
#objectclass

erson
#objectclass

rganization
#cn:example
#sn:example
#o:example.net
#description:Top level of directory
dn: ou=people,dc=example,dc=net
ou: people
objectClass: organizationalUnit
dn: ou=postfix,dc=example,dc=net
ou: postfix
objectClass: organizationalUnit
dn: cn=courier, ou=postfix, dc=example,dc=net
objectClass: person
cn: courier
sn: courier
虚拟域
# example.net, postfix, example.net
dn: vd=example.net,ou=postfix,dc=example,dc=net
vd: example.net
o: example.net
transport: virtual:
objectClass: postfixVirtualDomain
Example 2. user.ldif
本地域邮箱
dn:uid=neo,ou=postfix,dc=example,dc=net
uid:neo
cn:test
sn:test
mail:neo
uidnumber:1001
gidnumber:1001
mailhost:mail.example.net
homedirectory:/var/mail/
mailbox:example.net/neo/Maildir/
quota:200000000s,20000c
maildrop:netkiller@9812.net
userpassword:{crypt}$1$8E.vtK6o$7JdJ6dpTwaLU7x8X2FKwc1
#clearPassword:chen
AccountStatus:true
objectclass

ostfixAccount
objectclass

erson
Qmail 风格
dn:uid=neo,ou=postfix,dc=example,dc=net
uid:neo
cn:test
sn:test
mail:neo
uidnumber:1001
gidnumber:1001
mailhost:mail.example.net
homedirectory:/var/mail/
mailmessagestore:example.net/neo/Maildir/
mailquota:200000000s,20000c
#mailbox:example.net/chen/maildir/
userpassword:chen
#clearPassword:chen
objectclass

ostfix
#objectclass:couriermailaccount
objectclass

erson
mail:neo
neo = noe+ mydomain(main.cf中设置)
虚拟或邮箱
dn:uid=test,ou=postfix,dc=example,dc=net
uid:test
cn:test
sn:test
mail:test
uidnumber:1001
gidnumber:1001
mailhost:mail.example.net
homedirectory:/var/mail/
mailbox:example.net/test/Maildir/
quota:200000000s,20000c
userpassword:{crypt}$1$8E.vtK6o$7JdJ6dpTwaLU7x8X2FKwc1
#clearPassword:chen
AccountStatus:true
objectclass

ostfixAccount
objectclass

erson
Qmail 风格
dn:uid=test,ou=postfix,dc=example,dc=net
uid:test
cn:test
sn:test
mail:test@example.net
uidnumber:1001
gidnumber:1001
mailhost:mail.example.net
homedirectory:/var/mail/
mailmessagestore:example.net/test/Maildir/
mailquota:200000000s,20000c
#mailbox:example.net/chen/maildir/
userpassword:chen
#clearPassword:chen
objectclass

ostfix
#objectclass:couriermailaccount
objectclass

erson
虚拟域邮箱在smtp认证时要使用email地址即认证用户帐号:test@example.net而非test
创建dn
ldapadd -x -D "cn=admin,dc=example,dc=net" -f /etc/postfix/postfix-ldap.ldif -w chen
ldapadd -x -D "cn=admin,dc=example,dc=net" -f /etc/postfix/user.ldif -w chen
adding new entry "uid=test,ou=postfix,dc=example,dc=net"
debian:/etc/postfix# ldapsearch -x -b 'dc=example,dc=net' 'objectclass=*'
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=net> with scope sub
# filter: objectclass=*
# requesting: ALL
#
# example.net
dn: dc=example,dc=net
objectClass: top
objectClass: dcObject
objectClass: organization
o: postfix
dc: example
# admin, example.net
dn: cn=admin,dc=example,dc=net
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# people, example.net
dn: ou=people,dc=example,dc=net
ou: people
objectClass: organizationalUnit
# postfix, example.net
dn: ou=postfix,dc=example,dc=net
ou: postfix
objectClass: organizationalUnit
# courier, postfix, example.net
dn: cn=courier,ou=postfix,dc=example,dc=net
objectClass: person
cn: courier
sn: courier
# example.net, postfix, example.net
dn: vd=example.net,ou=postfix,dc=example,dc=net
vd: example.net
o: example.net
transport: virtual:
objectClass: postfixVirtualDomain
# chen, postfix, example.net
dn: uid=chen,ou=postfix,dc=example,dc=net
uid: chen
cn: chen
sn: chen
mail:
chen@example.net
uidNumber: 1001
gidNumber: 1001
mailHost: mail.example.net
homeDirectory: /var/mail/
mailbox: example.net/chen/maildir/
quota: 200000000s,20000c
maildrop:: Y2hlbkBleGFtcGxlLm5ldCAg
accountStatus: true
objectClass: postfixAccount
objectClass: person
# test, postfix, example.net
dn: uid=test,ou=postfix,dc=example,dc=net
uid: test
cn: test
sn: test
mail: test
uidNumber: 1001
gidNumber: 1001
mailHost: mail.example.net
homeDirectory: /var/mail/
mailbox: example.net/test/Maildir/
quota: 200000000s,20000c
accountStatus: true
objectClass: postfixAccount
objectClass: person
# neo, postfix, example.net
dn: uid=neo,ou=postfix,dc=example,dc=net
uid: neo
cn: test
sn: test
mail: neo
uidNumber: 1001
gidNumber: 1001
mailHost: mail.example.net
homeDirectory: /var/mail/
mailbox: example.net/neo/Maildir/
quota: 200000000s,20000c
maildrop:
netkiller@9812.net
accountStatus: true
objectClass: postfixAccount
objectClass: person
# search result
search: 2
result: 0 Success
# numResponses: 10
# numEntries: 9
debian:/etc/postfix#
--------------------------------------------------------------------------------
<<< Previous Home Next >>>
Postfix + OpenLDAP (Debian) 已完成 2004-9-28 Up SASL SMTP认证