CentOS安装配置Postfix邮件服务器
源文地址:[url]http://www.5dmail.net/html/2010-7-22/2010722110432.htm
[/url]
由于MX记录添加后,可能生效要等待一段时间(通常为数分钟或数十分钟,也可能马上生效),所以在安装配置前,我们首先为动态域名添加MX记录。添加方法也会因域名ISP的不同而不同,但大致信息如下:
mxmail.centospub.com.10
amail服务器的IP地址
mail为别名,10为优先度。这个别名指向服务器的IP地址.
确认MX记录的添加是否生效的方法:
[root@sample~]#host-tmxcentospub.com
centospub.commailishandledby10mail.centospub.com.←确认MX记录生效
安装Postfix
然后,安装Postfix。
[root@sample~]#yum-yinstallpostfix←在线安装Postfix
SettingupInstallProcess
Settinguprepositories
dag100%|=========================|1.1kB00:00
update100%|=========================|951B00:00
base100%|=========================|1.1kB00:00
addons100%|=========================|951B00:00
extras100%|=========================|1.1kB00:00
Readingrepositorymetadatainfromlocalfiles
primary.xml.gz100%|=========================|28kB00:04
update:##################################################84/84
Added84newpackages,deleted1499oldin3.44seconds
primary.xml.gz100%|=========================|157B00:00
Added0newpackages,deleted1499oldin1.97seconds
primary.xml.gz100%|=========================|26kB00:00
extras:##################################################102/102
Added102newpackages,deleted1499oldin2.73seconds
ReducingDagRPMRepositoryforRedHatEnterpriseLinuxtoincludedpackagesonly
Finished
Parsingpackageinstallarguments
ResolvingDependencies
–>Populatingtransactionsetwithselectedpackages.Pleasewait.
—>Downloadingheaderforpostfixtopackintotransactionset.
postfix-2.2.10-1.RHEL4.2.100%|=========================|40kB00:00
—>Packagepostfix.i3862:2.2.10-1.RHEL4.2settobeupdated
–>Runningtransactioncheck
DependenciesResolved
=============================================================================
PackageArchVersionRepositorySize
=============================================================================
Installing:
postfixi3862:2.2.10-1.RHEL4.2base3.0M
TransactionSummary
=============================================================================
Install1Package(s)
Update0Package(s)
Remove0Package(s)
Totaldownloadsize:3.0M
DownloadingPackages:
(1/1):postfix-2.2.10-1.R100%|=========================|3.0MB00:05
RunningTransactionTest
FinishedTransactionTest
TransactionTestSucceeded
RunningTransaction
Installing:postfix#########################[1/1]
Installed:postfix.i3862:2.2.10-1.RHEL4.2
Complete!
配置Postfix及相关组件
[1]对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/←变为此状态,指定用户邮箱目录
#SHOWSOFTWAREVERSIONORNOT
#
#Thesmtpd_bannerparameterspecifiesthetextthatfollowsthe220
#codeintheSMTPserver’sgreetingbanner.Somepeopleliketosee
#themailversionadvertised.Bydefault,Postfixshowsnoversion.
#
#YouMUSTspecify$myhostnameatthestartofthetext.Thatisan
#RFCrequirement.Postfixitselfdoesnotcare.
#
#smtpd_banner=$myhostnameESMTP$mail_name
#smtpd_banner=$myhostnameESMTP$mail_name($mail_version)←找到这一行,接此行添加如下行:
smtpd_banner=$myhostnameESMTPunknow←添加这一行,不显示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
smtpd_sasl_security_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination←(veryimportant)
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~]#chmod700/etc/skel/Maildir←设置用户邮箱目录属性为700
然后再为已经存在的用户建立相应邮箱目录。
[root@sample~]#mkdir/home/centospub/Maildir←为用户(这里以centospub用户为例)建立邮箱目录
[root@sample~]#chmod700/home/centospub/Maildir←设置该用户邮箱目录属性为700
[root@sample~]#chowncentospub./home/centospub/Maildir←设置该用户邮箱目录为该用户所有
[4]为用户设置SMTP认证密码
[root@sample~]#saslpasswd2-usample.centospub.com-ccentospub←为centospub用户设置SMTP认证密码
Password:←在这里输入密码(不会显示)
Again(forverification):←再次输入密码
[5]改变SALS的属性及归属
[root@sample~]#chgrppostfix/etc/sasldb2←将数据库归属改为postfix,
[root@sample~]#chmod640/etc/sasldb2←将数据库属性改为640
[6]关闭sendmail服务及设置默认MTA
因为在用Postfix作为SMTP服务器的前提下,我们不准备再用sendmail,所以将sendmail服务关掉,以确保安全及节省系统资源。
[root@sample~]#/etc/rc.d/init.d/sendmailstop←关闭sendmail服务
Shuttingdownsendmail: [OK]
Shuttingdownsm-client: [OK]
[root@sample~]#chkconfigsendmailoff←关闭sendmail自启动
[root@sample~]#chkconfig–listsendmail←确认sendmail自启动已被关闭(都为off就OK)
sendmail0:off1:off2:off3:off4:off5:off6:off
然后再将默认的MTA设置为Postfix。
[root@sample~]#alternatives–configmta←设置默认MTA
Thereare2programswhichprovide‘mta’.
SelectionCommand
———————————————–
*+1/usr/sbin/sendmail.sendmail←当前状态:sendmail为默认MTA
2/usr/sbin/sendmail.postfix
Entertokeepthecurrentselection[+],ortypeselectionnumber:2←在这里输入2,使Postfix成为默认MTA
启动相应服务
最后,启动SMTP认证及Postfix服务,并设置相应服务为自启动。
[root@sample~]#chkconfigsaslauthdon←将SMTP-Auth设置为自启动
[root@sample~]#chkconfig–listsaslauthd←确认SMTP-Auth服务状态
saslauthd0:off1:off2:on3:on4:on5:on6:off←确认2~5为on的状态就OK
[root@sample~]#/etc/rc.d/init.d/saslauthdstart←启动SMTP-Auth
Startingsaslauthd: [OK]
[root@sample~]#chkconfigpostfixon←将Postfix设置为自启动
[root@sample~]#chkconfig–listpostfix←确认Postfix服务状态
postfix0:off1:off2:on3:on4:on5:on6:off←确认2~5为on的状态就OK
[root@sample~]#/etc/rc.d/init.d/postfixstart←启动Postfix
Startingpostfix: [OK]
POP/IMAP服务器的构建
POP/IMAP是MUA从邮件服务器中读取邮件时使用的协议。其中,与POP3是从邮件服务器中下载邮件比起来,IMAP4则是将邮件留在服务器端直接对邮件进行管理、操作。这里,我们用Dovecot来实现对POP3及IMAP4等协议支持的邮件接收服务器的搭建。
Dovecot是一个比较新的软件,由TimoSirainen开发,最初发布于2002年7月。作者将安全性考虑在第一,所以Dovecot在安全性方面比较出众。另外,Dovecot支持多种认证方式,所以在功能方面也比较符合一般的应用。
---------------------------------------------------------------------------------------------------------------------------------------------------
首先,安装Dovecot
[root@sample~]#yum-yinstalldovecot ←在线安装Dovecot
SettingupInstallProcess
Settinguprepositories
dag100%|=========================|1.1kB00:00
update100%|=========================|951B00:00
base100%|=========================|1.1kB00:00
addons100%|=========================|951B00:00
extras100%|=========================|1.1kB00:00
Readingrepositorymetadatainfromlocalfiles
Parsingpackageinstallarguments
ResolvingDependencies
-->Populatingtransactionsetwithselectedpackages.Pleasewait.
--->Downloadingheaderfordovecottopackintotransactionset.
dovecot-0.99.11-4.EL4.i38100%|=========================|15kB00:00
--->Packagedovecot.i3860:0.99.11-4.EL4settobeupdated
-->Runningtransactioncheck
-->ProcessingDependency:libmysqlclient.so.14(libmysqlclient_14)forpackage:dovecot
-->ProcessingDependency:libpq.so.3forpackage:dovecot
-->ProcessingDependency:libmysqlclient.so.14forpackage:dovecot
-->RestartingDependencyResolutionwithnewchanges.
-->Populatingtransactionsetwithselectedpackages.Pleasewait.
--->Downloadingheaderforpostgresql-libstopackintotransactionset.
postgresql-libs-7.4.13-2.100%|=========================|11kB00:00
--->Packagepostgresql-libs.i3860:7.4.13-2.RHEL4.1settobeupdated
--->Downloadingheaderformysqltopackintotransactionset.
mysql-4.1.20-1.RHEL4.1.i3100%|=========================|35kB00:00
--->Packagemysql.i3860:4.1.20-1.RHEL4.1settobeupdated
-->Runningtransactioncheck
-->ProcessingDependency:perl(DBI)forpackage:mysql
-->RestartingDependencyResolutionwithnewchanges.
-->Populatingtransactionsetwithselectedpackages.Pleasewait.
--->Downloadingheaderforperl-DBItopackintotransactionset.
perl-DBI-1.40-8.i386.rpm100%|=========================|11kB00:00
--->Packageperl-DBI.i3860:1.40-8settobeupdated
-->Runningtransactioncheck
DependenciesResolved
------------------------------------------------------------------------------------------------------
PackageArchVersionRepositorySize
------------------------------------------------------------------------------------------------------
Installing:
dovecoti3860.99.11-4.EL4base612k
Installingfordependencies:
mysqli3864.1.20-1.RHEL4.1base2.9M
perl-DBIi3861.40-8base466k
postgresql-libsi3867.4.13-2.RHEL4.1base146k
TransactionSummary
------------------------------------------------------------------------------------------------------
Install4Package(s)
Update0Package(s)
Remove0Package(s)
Totaldownloadsize:4.1M
DownloadingPackages:
(1/4):dovecot-0.99.11-4.100%|=========================|612kB00:00
(2/4):postgresql-libs-7.100%|=========================|146kB00:00
(3/4):mysql-4.1.20-1.RHE100%|=========================|2.9MB00:02
(4/4):perl-DBI-1.40-8.i3100%|=========================|466kB00:00
RunningTransactionTest
FinishedTransactionTest
TransactionTestSucceeded
RunningTransaction
Installing:perl-DBI#########################[1/4]
Installing:mysql#########################[2/4]
Installing:postgresql-libs#########################[3/4]
Installing:dovecot#########################[4/4]
Installed:dovecot.i3860:0.99.11-4.EL4
DependencyInstalled:mysql.i3860:4.1.20-1.RHEL4.1perl-DBI.i3860:1.40-8postgresql-libs.i3860:7.4.13-2.RHEL4.1
Complete!
---------------------------------------------------------------------------------------------------------------------------------------------------
然后,修改相应配置文件,配置Dovecot
[root@sample~]#vi/etc/dovecot.conf ←编辑Dovecot的配置文件
#protocols=imapimaps ←找到这一行,将协议设置为imap与pop3
protocols=imappop3 ←变为此状态
#default_mail_env= ←找到这一行,定义邮件目录
default_mail_env=maildir:~/Maildir ←定义邮件目录为用户目录下的Maildir目录
---------------------------------------------------------------------------------------------------------------------------------------------------
添加防火墙规则
由于POP3协议与IMAP4协议要分别用到110号和143号端口,所以在启动服务前,配置防火墙,开通这两个端口。
[root@sample~]#vi/etc/sysconfig/iptables ←编辑防火墙规则
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport25-jACCEPT ←找到此行,接着添加如下两行:
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport110-jACCEPT ←允许POP使用的110号端口
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport143-jACCEPT ←允许IMAP使用的143号端口
[root@sample~]#/etc/rc.d/init.d/iptablesrestart ←重新启动防火墙,使新的设置生效
Flushingfirewallrules: [OK]
SettingchainstopolicyACCEPT:filter [OK]
Unloadingiptablesmodules: [OK]
Applyingiptablesfirewallrules: [OK]
---------------------------------------------------------------------------------------------------------------------------------------------------
最后,启动Dovecot,并将其设置为自启动。
[root@sample~]#chkconfigdovecoton ←设置Dovecot为自启动
[root@sample~]#chkconfig--listdovecot
dovecot0:off1:off2:on3:on4:on5:on6:off ←确认2~5为on的状态就OK
[root@sample~]#/etc/rc.d/init.d/dovecotstart ←启动Dovecot服务
StartingDovecotImap: [OK]
参考:
http://wiki.centos.org/HowTos/postfix