rhel as5环境下:postfix openldap cyrus-sasl dovecot db4 配置smtp,pop3,imap认证
###############################################################################
#【版本及作者信息:】 # # 1.作者:胡昌文 # # 2.官方网站:hi.baidu.com/iloveqiong # # 3.E-MAIL:wtcmaster@126.com # # 4.本文章属个人原创,任何引用或转载请注明出处! # # 5.欢迎linux sir加我QQ:402947549 # ############################################################################### 本文运行环境为RedHat Linux Enterprise AS 5,用到的软件均为系统自带的开源软件,可从系统安装介质中获取,同时,由于RHEL AS5已经是较新的版本,很多功能都可以实现,为了节省时间,使用RPM包安装,对源码编译安装起到抛砖引玉的作用!
如果配置不当之处,还请高手指点......
【步骤:】
1.安装所有可能使用的软件(bind,postfix,dovecot,cyrus-sasl,openldap,db4).
2.配置DNS. 3.配置openldap. 4.配置postfix. 5.配置cyrus-sasl,实现smtp认证。 6.配置dovecot,实现pop3,imap认证。 7.配置MUA,测试邮件系统。 OK,现在就开工吧......
第一步:安装BIND,POSTFIX,DOVECOT,CYRUS-SASL,OPENLDAP
这些软件的安装都是使用rpm -ivh 命令安装的,软件包在5张系统安装光盘中都可以找到,当然如果你使用的是其它Linux版本,请根据你的实际情况安装。在这些软件包的安装过程中,看似简单,还是有很多问题需要注意,分别如下:
①.bind-untils,caching-nameserver,redhat-config-bind,bind是DNS服务必须的软件包,请务必安装,都则DNS服务将不能正常工作。另外,在RHEL AS5中,系统不会自动创建/etc/named.conf文件,这个文件需要自己手工创建(如果不会,在此博客中找:hi.baidu.com/iloveqiong).
②.如果你在DNS中创建了多个zone文件,需要多个域进行解析,但是有的可以正常解析,有的不行,请首先检查配置,其次,注意zone文件的权限,named用户(DNS的默认运行帐户)对此zone文件是否有读取的权限(权限问题是很多服务运行失败的一个重要原因,可以通过日志分析).
③.查看BIND的解析日志方法:在/etc/syslog.conf文件末尾加上下面参数:
level4.* /var/log/bind.log 完成后,创建/var/log/bind.log文件,软件restart日志服务即可。 ④.在安装软件过程中,许多软件包存在依赖关系,安装时请根据其提示先行安装其依赖包。
⑤.在还装这个软件前,你还必须配置好你系统的网络环境:
hostname:mx.dne.com ipadd:192.168.20.200 netmask:255.255.255.0 gateway:192.168.20.254 nameserver:192.168.20.200 192.168.20.254 配置好后,你必须重启network服务或reboot系统,使配置生效。 ⑥.一般linux系统都会自带sendmail邮件系统,在安装postfix前,为了避免冲突,关闭sendmail服务或卸载sendmail软件包。
第二步:配置BIND,使其可以正确解析MX记录。 ①.手工创建/etc/named.conf文件,并添加以下三段参数:
zone "cisco.com" IN { type master; file "cisco.com.zone"; allow-update { none; }; }; zone "20.168.192.in-addr.arpa" IN {
type master; file "192.168.20.local"; allow-update { none; }; }; zone "dne.com" IN {
type master; file "dne.com.zone"; allow-update { none; }; }; 其它参数全部使用默认值,如果你想改变,请根据实际情况调整!
②.添加zone文件,文件名称必须与在/etc/named.conf文件指定的一样,分别是:cisco.com.zone,dne.com.zone,192.168.20.local
其文件内容分别如下:
【cisco.com.zone】 $TTL 86400 cisco.com. IN SOA cisco.com. root.cisco.com. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS cisco.com.
cisco.com. IN A 192.168.20.200 cisco.com. IN MX 10 mx.dne.com. 【dne.com.zone】
$TTL 86400 dne.com. IN SOA dne.com. root.dne.com. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS dne.com.
dne.com. IN A 192.168.20.200 dne.com. IN MX 10 mx.dne.com. mx IN A 192.168.20.200 【192.168.20.local】
$TTL 86400 @ IN SOA dne.com. root.dne.com. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS cisco.com. 200 IN PTR localhost. 200 IN PTR mx.dne.com. BIND的配置过程中,请注意其中的每一个细节,如遇到问题,请参阅日志文件,或与我联系!
③.测试BIND服务是否正常运行,用以下三中方法:
方法一:使用netstat -nutlp | grep 53 命令,查看当前系统是否在监听53端口,监听的ip应该是本机Ip和loops端口,也可能是0.0.0.0(全部ip),视配置情况而定。
方法二:使用nslookup,解析A记录,然后使用set type=mx命令更改解析环境,解析MX记录。
方法三:使用dig命令,dig mx.dne.com是解析A记录,dig dne.com mx是解析MX记录。
BIND配置OK后,开始接下来的工作......
第三步:配置openldap,加入用户帐户信息,使ldap client可以正常查询用户帐户信息。 ①.如果你的ldap server和ldap client在同一台机器上,你还必须安装安装openldap-client软件包(本环境就是这样的)。
②.配置/etc/openldap/slapd.conf文件。
####################################################################
# including schema file configurations #################################################################### include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args ####################################################################
# ldbm and/or bdb database definitions #################################################################### database bdb
suffix "dc=dne,dc=com" rootdn "cn=manager,dc=dne,dc=com" rootpw {SSHA}RXYhzn7u8+VtPhG1tTsWkDBOXF3SVmgL directory /var/lib/ldap ####################################################################
# index configurations #################################################################### index objectClass,uid eq
index uidNumber,gidNumber eq ####################################################################
# multi-server replace configurations #################################################################### replogfile /var/lib/ldap/openldap-master-replog replica host=mx.dne.com:389 binddn="cn=manager,dc=dne,dc=com" bindmethod=simple credentials=master ####################################################################
# access power configurations(here just for testing) #################################################################### access to * by * write #################################################################### 注意:schema文件的意思和权限设定的方法请在此博客中检索:hi.baidu.com/iloveqiong
③.启动ldap服务,使用ldapsearch命令查看ldap配置是否正确,然后配置/etc/openldap/ldap.conf文件.
###################################################################
BASE dc=dne,dc=com
URI ldap://127.0.0.1/
TLS_CACERTDIR /etc/openldap/cacerts ###################################################################
④.编写ldap.ldif文件(ldap的数据文件)。
###################################################################
# dc information configurations ################################################################### dn: dc=dne,dc=com dc: dne objectclass: domain ###################################################################
# organizationalUnit configurations ################################################################### dn: ou=gtsc,dc=dne,dc=com
ou: gtsc objectclass: organizationalUnit ###################################################################
# user named wen configurations ################################################################### dn: uid=wen,ou=gtsc,dc=dne,dc=com
uid: wen cn: wen uidNumber: 504 gidNumber: 501 homeDirectory: wen/inbox userPassword: wen description: new objectclass posixAccount ou: gtsc objectClass: posixAccount objectClass: organizationalUnit ###################################################################
⑤.向ldap server database中添加数据,使用以下命令:
ldapadd -x -D 'cn=manager,dc=dne,dc=com' -W -f ldap.ldif
然后输入密码,即可向ldap后台数据库中添加数据。
⑥.使用ldapsearch命令查看ldap 是否工作正常。
ldapsearch 'uid=wen' 或则 ldapsearch -x -D 'cn=manager,dc=dne,dc=com' -w password
此处的password是rootpw的密码,与在/etc/openldap/slapd.conf中配置的一样,如果能正常查询,则说明工作正常。
第四步:配置postfix,达到在没有dovecot,ldap,cyrus-sasl配合的情况下,通过mail命令收发邮件。 ①.一般情况下,安装了postfix 后,通过命令postfix start启动postfix服务,就可以达到用mail 命令收发邮件的目的,但是这里,我们不这样做----用手工创建的/etc/postfix/main.cf文件替代默认产生的main.cf文件。
②.创建/etc/postfix/main.cf文件。
###################################################################
# # this is the kernel file of postfix mail system created by D&A GTSC Hu Changwen # ################################################################### ###################################################################
# basic information configuration ################################################################### myhostname = mx.dne.com
mydomain = dne.com myorigin = $mydomain mydestination = dne.com mynetworks = 192.168.20.0/24 127.0.0.1/8 debug_peer_level = 1024 inet_interfaces = all mail_spool_directory = /var/spool/mail ###################################################################
③.使用命令postfix start启动postfix,然后使用mail命令测试postfix。
第五步:配置cyrus-sasl实现smtp认证。 ①.配置/etc/postfix/main.cf文件,开启smtp认证功能,并配置认证策略。
在/etc/postfix/main.cf文件中加入以下参数:
####################################################################
# sasl auth & smtp auth #################################################################### smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = smtpd_sasl_security_options = noanonymous smtpd_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,reject ####################################################################
②.配置/usr/lib/sasl2/smtpd.conf文件,确定其认证方法。
/usr/lib/sasl2/smtpd.conf文件内容如下:
####################################################################
pwcheck_method:saslauthd
mech_list:PLAIN LOGIN ####################################################################
③.创建/etc/saslauthd.conf文件,定义saslauthd进程从ldap数据库中取数据的方法:
/etc/saslauthd.conf文件的内容如下:
#####################################################################
#####################################################################
④.重启postfix,启动saslauthd服务,测试smtp认证。
#postfix reload
#/etc/initd/saslauthd start #testsaslauthd -u wen -p wen 0:OK:SUCCESS! 注意:也可以通过MUA,使用wen/wen这个帐户,进行需要验证的邮件发送来测试smtp认证。
第六步:配置dovecot,测试pop3,imap收邮件认证。 ①.正常情况下,dovecot软件包安装后,启动服务就可以通过Pop3认证来收邮件了,但是这种情况下,dovecot是使用系统帐户来认证的,这里我们需要通过ldap来认证,所以需要另外配置/etc/dovecot.conf文件。
②.在/etc/postfix/main.cf文件中添加以下参数:
#################################################################
# virtual mailbox configuration ################################################################# virtual_mailbox_domains = cisco.com virtual_alias_maps = hash:/etc/postfix/virtual virtual_mailbox_base = /var/spool/mail virtual_mailbox_maps = ldap:ldaphomedir virtual_transport = virtual virtual_uid_maps = static:510 virtual_gid_maps = static:510 ################################################################# # ldap server configuration ################################################################# ldaphomedir_server_host = 192.168.20.200
ldaphomedir_server_port = 389 ldaphomedir_version = 3 ldaphomedir_search_base = ou=gtsc,dc=dne,dc=com ldaphomedir_query_filter = (uid=%u) ldaphomedir_result_attribute = homeDirectory #################################################################
注意:这里是配置了虚拟网域和虚拟帐户,并且邮件的存放位置也要根据ldap中的信息来确定。
③.配置/etc/dovecot.conf文件,确定认证方式:
#################################################################
# basic configurations ################################################################# protocols=imap pop3 listen=* log_path=/var/log/dovecot mail_debug=yes mail_location = mbox:/var/spool/mail/%u #################################################################
# define auth method ################################################################# auth default { mechanisms = plain login passdb ldap { args = /etc/dovecot-ldap.conf } userdb ldap { args = /etc/dovecot-ldap.conf } user = root } ################################################################# ④.配置/etc/dovecot-ldap.conf,定义dovecot与ldap的连接方式。
/etc/dovecot-ldap.conf文件的内容如下:
#################################################################
hosts = 192.168.20.200
dn = cn=manager,dc=dne,dc=com dnpass = master ldap_version = 3 base = ou=gtsc,dc=dne,dc=com #deref = never #scope = subtree user_attrs = uid,homeDirectory,,uid,, user_filter = (uid=%u) pass_attrs = uid,userPassword pass_filter = (uid=%u) default_pass_scheme = plain user_global_uid = 510 user_global_gid = 510 ##################################################################
⑤.重新启动dovecot服务。
注意:收发邮件前,请在/var/spool/mail/下创建用户存放邮件的目录,并且给予适当的权限。
第七步:使用MUA测试邮件系统。 我是使用outlook express,添加帐户wen@cisco.com,认证帐户是wen/wen,要求使用验证,进行邮件收发测试,OK。
以上是我花费了两个月时间,从没听过postfix到配置出企业可以应用的邮件系统环境,但是这些还远不够,以上的配置也只是基本配置,可以在企业中用,但是还有其它方法,我将在日后的时间中研修。同时,学习以上配置的过程中,遇到了很多问题,很多细节也是慢慢摸索出来的,只是本文章中没有很详细的说明,有兴趣了解的,可以mail联系(wtcmaster@126.com)! 最后,感谢peter Dai在两个月来给我的指导和帮助,让我受益匪浅!
胡昌文 2008-4-11 于 广州 D&A GTSC office |


wtcmaster
博客统计信息
热门文章
最新评论
友情链接
