- 论坛徽章:
- 0
|
Setp4、下载、配置Postfix服务器,用户发送邮件限制和认证机制,测试Postfix服务器运行情况;
Postfix服务器简单介绍:
Postfix服务器网站地址:
http://www.postfix.org/
邮件系统是Linux网络应用的重要组成,一个完整的邮件系统包括三个部分:底层操作系统(Linux Operation),邮件传送代理(Mail Transport Agent,MTA),邮件分发代理(Mail Delivery Agent,MDA),邮件用户代理(Mail User Agent,MUA)。
Postfix是一个非常优秀的MTA,她素以高效、安全的特点而著称。Postfix是作者在UNIX上所见过的MTA中在反垃圾邮件(Anti- Spam或Anti-UCE)方面做得最好的一个,甚至有很多公司在Postfix代码的基础上进行二次开发而推出反垃圾邮件网关产品。MTA的反垃圾邮件功能,实际上就是在MTA处理过程中对会话进行过滤。这个过滤不但过滤了发往自身的垃圾邮件,而且还防止了自身被恶意利用发送垃圾邮件。Postfix 实现了目前所有主要的MTA过滤技术。postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。和Sendmail相比Postfix更快、更容易管理、更灵活、更安全。
首先检查您的系统内是否已经安装Postfix Package。在文本终端中输入:
详细操作:
# rpm -qa | grep postfix #检查系统内已经安装Postfix相关软件包
Download Postfix Package地址:
Package下载地址:Red Hat Enterprise Linux Server 5.1 安装光盘附内
程序名称:postfix-2.3.3-2.i386.rpm
版本号:2.3.3-2
程序大少(KB):3643KB
安装Postfix Package之前,请先停止Red Hat Enterprise Linux Server 5.1操作系统中的Sendmail Server,在文本终端中输入:
详细操作:
# service sendmail stop
关闭 sm-client: [确定]
关闭 sendmail: [确定]
检查系统过程中没有Postfix Package。所以需要进行安装,在文本终端中输入:
详细操作:
# rpm -ivh postfix-2.3.3-2.i386.rpm
warning: postfix-2.3.3-2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:postfix ########################################### [100%]
再次检查您的系统安装Postfix Package,在文本终端中输入:
详细操作:
# rpm -qa | grep postfix
postfix-2.3.3-2
至此,下载、检查、安装Dovecot软件包工作已经全部完成!
在配置Postfix服务器之前,请先切换系统中的邮件传输代理服务器操作;
使用system-switch-mail命令进行邮件传输代理服务器切换操作,在文本终端中输入:
详细操作:
# system-switch-mail
出现system-switch-mail GUI系统邮件传输代理服务器切换器窗口;
Red Hat Enterprise Linux Server 5.1操作系统提供了Sendmail和Postfix两种STMP邮件服务器软件,让用户可以随意地选择其中之一种。不过,默认情况下安装程序已经将Sendmail安装到系统:
详细操作:
⊙、Sendmail
更改为:
⊙、Postfix
按『确定(O)』键继续;
系统切换邮件传输代理服务器成功提示窗口,按『确定(O)』键完成操作;
至此,使用system-switch-mail命令进行系统邮件传输代理服务器切换操作已经全部完成!
查您的系统内是否已经安装Cyrus-SASL Package,在文本终端中输入:
详细操作:
# rpm -qa | grep sasl
cyrus-sasl-lib-2.1.22-4
cyrus-sasl -2.1.22-4
cyrus-sasl-plain-2.1.22-4
cyrus-sasl-devel-2.1.22-4
使用文本编辑器来配置Cyrus-SASL Server服务器,点击【应用程序】 → 【附件】→【文本编辑器】;
打开/etc/sysconfig/目录中的saslauthd文件,主要说明修改的关键部分:
详细配置参数:
MECH=pam
更改为:
MECH=shadow
启动Cyrus-SASL Server服务器,在文本终端中输入:
详细操作:
# service saslauthd start #Cyrus-SASL Server服务器
启动 saslauthd: [确定]
进行查询Cyrus-SASL的密码验证机制、测试Cyrus-SASL的认证功能,在文本终端中输入:
详细操作:
# saslauthd -v #查询Cyrus-SASL的密码验证机制
saslauthd 2.1.22
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
# testsaslauthd -u fandy -p jinbiao #测试Cyrus-SASL的认证功能
0: OK "Success."
使用文本编辑器来配置 Postfix服务器,点击【应用程序】 → 【附件】→【文本编辑器】;
打开/etc/postfix/目录中的main.cf文件,主要说明修改的关键部分:
详细配置参数:
#myhostname = host.domain.tld #指定运行Postfix邮件系统的主机名称
更改为:
myhostname = mail.nseasy.net
详细配置参数:
#mydomain = domain.tld #指定Postfix邮件系统使用的域名例如:nseasy.net
更改为:
mydomain = nseasy.net
详细配置参数:
#myorigin = $mydomain #指定发件人所在的域名
更改为:
myorigin = $mydomain
详细配置参数:
#inet_interfaces = localhost #指定Postfix邮件系统监视的网络接口
更改为:
Inet_interfaces =all
详细配置参数:
#mydestination = $myhostname, localhost.$mydomain, localhost #指定收件人的域名
更改为:
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
详细配置参数:
#mynetworks_style = host #指定您所在的网络地址
更改为:
mynetworks_style = host
详细配置参数:
#mynetworks = 192.168.0.0/28, 127.0.0.0/8
更改为:
mynetworks = 192.168.1.0/24, 127.0.0.0/8
设置Postfix启用SMTP认证功能,默认情况下,Postfix服务器并没有启动SMTP认证功能机制,要让Postfix启用SMTP认证功能,就必须对Postfix的主配置文件进行修改,新增加以下部分内容:
详细配置参数:
############################ Postfix Cyrus-SASL ############################
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = ''
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unauth_destination
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
限制部分Postfix用户只能内部收发的例子,其实原则是检查MAIL FROM:阶段的邮件地址,如匹配规则中的地址,则应用相应的限制原则,否则按默认的规则,新增加以下部分内容;
详细配置参数:
############################ User Limiting Factor ############################
smtpd_restriction_classes = local_only
local_only = check_recipient_access hash:/etc/postfix/local_domains, reject
smtpd_recipient_restrictions =
check_sender_access hash:/etc/postfix/local_senders
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
至此,修改/etc/postfix/目录中的main.cf文件相关内容已经全部完成!
用户发送电子邮件权限说明:
fandy不受发送限制(可以无限制的发送和接收Interanl、internet的电子邮件);
yer、biao受到发送限制(只可以发送和接收Internal内的电子邮件);
在/etc/postfix/目录内新建local_senders文件,完整内容如下:
详细配置参数:
yer@nseasy.net local_only
biao@nseasy.net local_only
在/etc/postfix/目录内新建local_domains文件,完整内容如下:
详细配置参数:
nseasy.net OK
mail.nseasy.net OK
为local_senders、local_domains两个文件建立hash:
详细操作:
# postmap hash:/etc/postfix/local_senders #local_senders文件建立hash
# postmap hash:/etc/postfix/local_domains # local_domains文件建立hash
由于当Postfix要使用SMTP认证功能时,会读取/usr/lib/sasl2/目录中smtpd.conf文件中的内容以确定所采用的认证方式,因此如果要使用saslauthd这个守护进程来进行密码认证,就必须确保/usr/lib/sasl2/目录中smtpd.conf文件中的内容为:
详细配置参数:
pwcheck_method: saslauthd
启动Postfix服务器,在文本终端中输入:
详细操作:
# service postfix start
启动 postfix: [确定]
启动、停止、重新启动Postfix服务器的相关操作;
启动Postfix服务器,在文本终端中输入:
详细操作:
# service postfix start #启动Postfix服务器
启动 postfix: [确定]
停止Postfix服务器,在文本终端中输入:
详细操作:
# service postfix stop #停止Postfix服务器
关闭 postfix: [确定]
重新启动一次停止Postfix服务器,在文本终端中输入:
详细操作:
# service postfix stop #重新启动一次停止Postfix服务器
关闭 postfix: [确定]
启动 postfix: [确定]
启动、停止、重新启动Postfix服务器相关操作已经全部完成!
实现在引导时自动启动Postfix服务器、saslauthd服务器以节省每次手动启动的时间,在文本终端中输入:
详细操作:
# ntsysv
详细操作:
【 * 】 postfix ▌
详细操作:
【 * 】 saslauthd ▌
点击『确定』按键;
至此,自动启动postfix服务器、saslauthd服务器等操作已经全部完成!
测试Postfix服务器运行是否正常,在文本终端中输入:
详细操作:
# telnet mail.nseasy.net 25 #采用Telnet命令连接到postfix服务器端口25进行测试
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.nseasy.net ESMTP Postfix
EHLO nseasy.net #EHLO命令向nseasy.net域发出消息
250-mail.nseasy.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN #显示当前postfix所支持的认证方式
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
Telnet过程中,第6行输入EHLO命令向nseasy.net域发出消息,在随后得到本地Postfix响应信息中,如果出现第11、12行信息(显示当前postfix所支持的认证方式),则表明postfix服务器已经启用了SMTP认证功能。
至此,采用Telnet命令测试Postfix服务器运行是否正常工作已经全部完成! |
|