原贴:http://www.centospub.com/make/postfix_smtp.html
< SMTP服务器的构建 ( Postfix ) > (最近更新日:2006/09/28)
在CentOS中,默认的邮件服务器(SMTP方面)是sendmail,但sendmail有若干的缺点,比如,配置复杂、安全漏洞曾被多次发现- -并且依然存在隐患、邮件发送速度慢等等,这里就不再一一叙述。而另一个被广泛应用于邮件服务方面的“Postfix”的缺点就少得多,或者说它就是针对 于sendmail的缺点,而被设计的。对应sendmail的短处,它在各方面也比较成熟。所以,无特殊要求,这里不推荐用sendmail来构建邮件 服务器。本站介绍的邮件服务器配置方法,也将基于Postfix。
由于MX记录添加后,可能生效要等待一段时间(通常为数分钟或数十分钟,也可能马上生效),所以在安装配置前,我们首先为动态域名添加MX记录。添加方法也会因域名ISP的不同而不同,但大致信息如下:
mx mail.centospub.com. 10
a mail 服务器的IP地址
mail为别名,10为优先度。这个别名指向服务器的IP地址。(如有疑问或需要帮忙请到 技术论坛 发贴。)
确认MX记录的添加是否生效的方法:
然后,安装Postfix。
[1] 对Postfix进行配置。
[2] 配置SMTP认证的相关选项
为了提高安全性,我们不将系统用户的密码作为相应用户SMTP认证的密码,而将在后面为用户建立SMTP认证专用的密码。
[3] 建立用户的邮箱目录
首先建立用户模板下的邮箱目录,以便于建立新用户时,相应用户的邮箱目录自动被建立。
然后再为已经存在的用户建立相应邮箱目录。
[4] 为用户设置SMTP认证密码
[5] 改变SALS的属性及归属
[6] 关闭sendmail服务及设置默认MTA
因为在用Postfix作为SMTP服务器的前提下,我们不准备再用sendmail,所以将sendmail服务关掉,以确保安全及节省系统资源。
然后再将默认的MTA设置为Postfix。
最后,启动SMTP认证及Postfix服务,并设置相应服务为自启动。
至此,就完成了SMTP服务器方面的配置,但目前只具从备客户端通过服务器发送邮件的功能。做为完整的邮件服务器,还需具备从客户端通过POP/IMAP协议接受邮件到本地的功能。POP/IMAP服务器的构建请参见下一节 < POP / IMAP 服务器的构建( Dovecot ) >。
< SMTP服务器的构建 ( Postfix ) > (最近更新日:2006/09/28)
|
在CentOS中,默认的邮件服务器(SMTP方面)是sendmail,但sendmail有若干的缺点,比如,配置复杂、安全漏洞曾被多次发现- -并且依然存在隐患、邮件发送速度慢等等,这里就不再一一叙述。而另一个被广泛应用于邮件服务方面的“Postfix”的缺点就少得多,或者说它就是针对 于sendmail的缺点,而被设计的。对应sendmail的短处,它在各方面也比较成熟。所以,无特殊要求,这里不推荐用sendmail来构建邮件 服务器。本站介绍的邮件服务器配置方法,也将基于Postfix。
|
由于MX记录添加后,可能生效要等待一段时间(通常为数分钟或数十分钟,也可能马上生效),所以在安装配置前,我们首先为动态域名添加MX记录。添加方法也会因域名ISP的不同而不同,但大致信息如下:
mx mail.centospub.com. 10
a mail 服务器的IP地址
mail为别名,10为优先度。这个别名指向服务器的IP地址。(如有疑问或需要帮忙请到 技术论坛 发贴。)
确认MX记录的添加是否生效的方法:
host -t mx centospub.com |
|
然后,安装Postfix。
yum -y install postfix ← 在线安装Postfix |
|
[1] 对Postfix进行配置。
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/ ← 变为此状态,指定用户邮箱目录 ← 找到这一行,接此行添加如下行: 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认证专用的密码。
vi /usr/lib/sasl2/smtpd.conf ← 编辑SMTP认证的配置文件 pwcheck_method: saslauthd ← 找到此行,将“saslauthd”改为“auxprop” ↓ pwcheck_method: auxprop ← 不使用系统用户密码作为用户的SMTP认证密码vi /etc/sysconfig/saslauthdMECH=shadow#MECH=shadowFLAGS= ↓FLAGS=sasldb ← 定义认证方式为sasldb2 |
[3] 建立用户的邮箱目录
首先建立用户模板下的邮箱目录,以便于建立新用户时,相应用户的邮箱目录自动被建立。
mkdir /etc/skel/Maildir ← 在用户模板下建立用户邮箱目录 chmod 700 /etc/skel/Maildir ← 设置用户邮箱目录属性为700 |
然后再为已经存在的用户建立相应邮箱目录。
[4] 为用户设置SMTP认证密码
[5] 改变SALS的属性及归属
[6] 关闭sendmail服务及设置默认MTA
因为在用Postfix作为SMTP服务器的前提下,我们不准备再用sendmail,所以将sendmail服务关掉,以确保安全及节省系统资源。
然后再将默认的MTA设置为Postfix。
alternatives --config mta ← 设置默认MTA 2 ← 在这里输入2,使Postfix成为默认MTA |
|
最后,启动SMTP认证及Postfix服务,并设置相应服务为自启动。
至此,就完成了SMTP服务器方面的配置,但目前只具从备客户端通过服务器发送邮件的功能。做为完整的邮件服务器,还需具备从客户端通过POP/IMAP协议接受邮件到本地的功能。POP/IMAP服务器的构建请参见下一节 < POP / IMAP 服务器的构建( Dovecot ) >。