而另一个被广泛应用于邮件服务方面的“Postfix”的缺点就少得多,或者说它就是针对于sendmail的缺点,而被设计的。对应sendmail的短处,它在各方面也比较成熟。所以,无特殊要求,这里不推荐用sendmail来构建邮件服务器。本站介绍的邮件服务器配置方法,也将基于Postfix。
确认MX记录的添加是否生效的方法:
代码如下 | 复制代码 |
[root@sample ~]# host -t mx centospub.com centospub.com mail is handled by 10 mail.centospub.com. 确认MX记录生效 |
然后安装postfix
代码如下 | 复制代码 |
[root@sample ~]# yum -y install postfix 在线安装Postfix |
对postfix进行配置
代码如下 | 复制代码 |
[root@sample ~]# vi /etc/postfix/main.cf 编辑Postfix的配置文件 #myhostname = host.domain.tld 找到此行,将等号后面的部分改写为主机名 myhostname = sample.centospub.com 变为此状态,设置系统的主机名 #mydomain = domain.tld 找到此行,将等号后面的部分改写为域名 mydomain = centospub.com 变为此状态,设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分) #myorigin = $mydomain 找到此行,将行首的#去掉 myorigin = $mydomain 变为此状态,将发信地址“@”后面的部分设置为域名(非系统主机名) inet_interfaces = localhost 找到此行,将“localhost”改为“all” inet_interfaces = all 变为此状态,接受来自所有网络的请求 mydestination = $myhostname, localhost.$mydomain, localhost 找到此行,在行为添加“$mydomain” mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 变为此状态,指定发给本地邮件的域名 #relay_domains = $mydestination 找到此行,将行首的#去掉 relay_domains = $mydestination 变为此状态,定义允许转发的域名 #mynetworks = 168.100.189.0/28, 127.0.0.0/8 找到此行,依照自己的内网情况修改 mynetworks = 168.100.189.0/28, 127.0.0.0/8 变为此状态,指定内网和本地的IP地址范围 #home_mailbox = Maildir/ 找到这一行,去掉行首的# home_mailbox = Maildir/ 变为此状态,指定用户邮箱目录 # SHOW SOFTWARE VERSION OR NOT # # The smtpd_banner parameter specifies the text that follows the 220 # code in the SMTP server’s greeting banner. Some people like to see # the mail version advertised. By default, Postfix shows no version. # # You MUST specify $myhostname at the start of the text. That is an # RFC requirement. Postfix itself does not care. # #smtpd_banner = $myhostname ESMTP $mail_name #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) 找到这一行,接此行添加如下行: smtpd_banner = $myhostname ESMTP unknow 添加这一行,不显示SMTP服务器的相关信息 在配置文件的文尾,添加如下行: smtpd_sasl_auth_enable = yes 服务器使用SMTP认证 smtpd_sasl_local_domain = $myhostname 指定SMTP认证的本地域名(主机名) smtpd_sasl_security_options = noanonymous 不允许匿名的方式认证 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination message_size_limit = 15728640 规定邮件最大尺寸为15MB |
2、 配置SMTP认证的相关选项
为了提高安全性,我们不将系统用户的密码作为相应用户SMTP认证的密码,而将在后面为用户建立SMTP认证专用的密码。
代码如下 | 复制代码 |
[root@sample ~]# vi /usr/lib/sasl2/smtpd.conf 编辑SMTP认证的配置文件 pwcheck_method: saslauthd 找到此行,将“saslauthd”改为“auxprop” pwcheck_method: auxprop 不使用系统用户密码作为用户的SMTP认证密码 [root@sample ~]# vi /etc/sysconfig/saslauthd MECH=shadow 找到这一行,在前面加# #MECH=shadow 不使用shadow机制 FLAGS= 找到此行,在等号后面添加“sasldb” FLAGS=sasldb 定义认证方式为sasldb2 |
3、建立用户的邮箱目录
首先建立用户模板下的邮箱目录,以便于建立新用户时,相应用户的邮箱目录自动被建立。
代码如下 | 复制代码 |
[root@sample ~]# mkdir /etc/skel/Maildir 在用户模板下建立用户邮箱目录 [root@sample ~]# chmod 700 /etc/skel/Maildir 设置用户邮箱目录属性为700 |
然后再为已经存在的用户创建相应有项目了。 www.111cn.net
代码如下 | 复制代码 |
[root@sample ~]# mkdir /home/centospub/Maildir 为用户(这里以centospub用户为例)建立邮箱目录 [root@sample ~]# chmod 700 /home/centospub/Maildir 设置该用户邮箱目录属性为700 [root@sample ~]# chown centospub. /home/centospub/Maildir 设置该用户邮箱目录为该用户所有 |
4、为用户设置smtp认证密码
代码如下 | 复制代码 |
[root@sample ~]# saslpasswd2 -u sample.centospub.com -c centospub 为centospub用户设置SMTP认证密码 Password: 在这里输入密码(不会显示) Again (for verification): 再次输入密码 |
5、改变SALS的属性及归属
代码如下 | 复制代码 |
[root@sample ~]# chgrp postfix /etc/sasldb2 将数据库归属改为postfix, [root@sample ~]# chmod 640 /etc/sasldb2 将数据库属性改为640 |
6、关闭sendmail服务及设置默认MTA
因为在用Postfix作为SMTP服务器的前提下,我们不准备再用sendmail,所以将sendmail服务关掉,以确保安全及节省系统资源。
代码如下 | 复制代码 |
[root@sample ~]# /etc/rc.d/init.d/sendmail stop 关闭sendmail服务 Shutting down sendmail: [ OK ] Shutting down sm-client: [ OK ] [root@sample ~]# chkconfig sendmail off 关闭sendmail自启动 [root@sample ~]# chkconfig –list sendmail 确认sendmail自启动已被关闭(都为off就OK) sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off |
然后再将默认的MTA设置为Postfix。
代码如下 | 复制代码 |
[root@sample ~]# alternatives –config mta 设置默认MTA There are 2 programs which provide ’mta’. Selection Command Enter to keep the current selection[+], or type selection number: |
2 在这里输入2,使Postfix成为默认MTA
启动相应服务
最后,启动SMTP认证及Postfix服务,并设置相应服务为自启动。
代码如下 | 复制代码 |
[root@sample ~]# chkconfig saslauthd on 将SMTP-Auth设置为自启动 [root@sample ~]# chkconfig –list saslauthd 确认SMTP-Auth服务状态 saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 确认2~5为on的状态就OK [root@sample ~]# /etc/rc.d/init.d/saslauthd start 启动SMTP-Auth Starting saslauthd: [ OK ] [root@sample ~]# chkconfig postfix on 将Postfix设置为自启动 [root@sample ~]# chkconfig –list postfix 确认Postfix服务状态 postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off 确认2~5为on的状态就OK [root@sample ~]# /etc/rc.d/init.d/postfix start 启动Postfix Starting postfix: [ OK ] |
至此,就完成了SMTP服务器方面的配置,但目前只具从备客户端通过服务器发送邮件的功能。做为完整的邮件服务器,还需具备从客户端通过POP/IMAP协议接受邮件到本地的功能。