[ZT]postfix邮件服务器快速指南(3)

http://www.knowledgediscovery.com.cn/a90664b0f22689e10ad40962945c3403/
五、 postfix的配置实例
5.1为拨号用户配置postfix
假设有一个小公司使用拨号上网,公司通过ISP的SMTP 服务器(假设其域名为mail.isp.com,ip地址为201.110.1.100)发送邮件;公司内部的员工通过公司的SMTP服务器(运行 postfix)收发邮件,下面我们一起来配置公司内部的SMTP服务器。

1. 因为没有自己的固定ip和域名,所以必须指定ISP的SMTP服务器作
为邮件网关(智能主机)。可以用如下的参数指定:
relayhost = [201.110.1.100]
注意:relayhost的值可以是domain、host、host:port、[address]或[address:port]。

2. 当接收到新邮件时,postfix就会尝试投递该邮件。如果将该公司内部的
SMTP服务器设置为按需拨号,也就是一有程序请求外联就拨号,则会增加上网的费用。这时我们可以通过postfix的defer_transports参数推迟投递新邮件直到postfix提出明确的要求,如指定:
defer_transports = smtp
这时如果我们在ppp的脚本(如/etc/ppp/ip-up.local)加上如下命令,则postfix只在拨号成功后投递新邮件:
/usr/sbin/sendmail

3. 因为我们是将邮件转发到邮件网关(201.110.1.100)而不是自己进行投
递,所以我们没有必要使用DNS,因此我们通过如下的参数取消DNS查询:
disable_dns_lookups = yes

4. 为了保证我们能收到回信,我们必须进行域伪装。
masquerade_domains = isp.com

下面就是我们的配置文件mail.cf:

#指定邮件网关
relayhost = [201.110.1.100]
# 在拨号成功后才投递邮件
defer_transports = smtp
#取消DNS查询
disable_dns_lookups = yes
#一般常规配置
queue_directory = /var/spool/postfix
program_directory = /usr/libexec/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
default_privs = nobody
mail_spool_directory = /var/spool/mail
mailbox_command = /usr/bin/procmail
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
debug_peer_level = 2
debugger_command=PATH=/usr/bin:/usr/X11R6/bin,xxgdb$
daemon_directory/$ process_name $process_id & sleep 5
# 假设本地网络为192.168.1.1/24
mynetworks = 192.168.1.1/24
# host specific information
myhostname = yourhost.isp.com
mydomain = local.isp.com
myorigin = $mydomain
where do we receive mail and who do we accept/receive mail for?
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, $mydomain
default_transport = smtp
masquerade_domains = isp.com

需要注意的是:这里的$mydomain、$myorigin、$mydestination不能为isp.com, 因为你如果设定为isp.com,内部SMTP服务器就会认为你的邮件是转发给它的,故而在本地尝试投递邮件,结果只会返回“unknown user”的错误。其次,该配置只实现了将邮件通过SMTP发送到ISP的SMTP服务器的手段,缺乏从ISP的邮件服务器取信的方法,这一点就只能通过如outlook或foxmail等的mail客户端软件来实现了。

5.2为中小型企业用户配置postfix
假设有一家数千名员工的公司,该公司通过租用专线上网。现在公司决定
通过postfix来建立自己的邮件系统。在这里我们假设该公司的域为some.com, 邮件服务器的域名mail.some.com,地址为202.200.180.2,DNS服务器的域名为dns.some.com,地址为202.200.180.1。
1. 配置DNS服务器,设置MX记录指向mail.some.com。相关的配置文件
为/var/named/some.com(假设其zone文件就叫some.com, 有关DNS配置的内容请参看本书的相关章节)的内容如下:

@ IN SOA dns.some.com. root.dns.some.com (
2000011307 ; serial
28800 ; refresh, seconds
14400 ; retry, seconds
3600000 ; expire, seconds
86400 ; minimum, seconds
)

@ IN NS dns.some.com.
@ IN A 202.200.180.1
@ IN MX 10 mail.some.com.

localhost IN A 127.0.0.1
dns IN A 202.200.180.1
mail IN A 202.200.180.2
host1 IN A 202.200.180.3
host2 IN A 202.200.180.4

2. 配置postfix,其配置文件及相关的解释如下:

#设置一般的路径信息
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_spool_directory = /var/spool/mail

#设置邮件及邮件队列的所有者为postfix
mail_owner = postfix

#设置邮件服务器的主机名
myhostname = mail.some.com

#设置mydomain、myorigin和mydomain参数
mydomain = some.com
myorigin =$mydomain
mydestination = $mydomain

#设置postfix服务监听的端口
inet_interfaces = all

#设置本地收件人的用户名查询手段,缺省是查询/etc/passwd文件
#和别名数据库
local_recipient_maps = $alias_maps unix:passwd.byname
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#设置最终的本地投递代理程序,在这里我们使用流行的procmail
mailbox_command = /usr/bin/procmail

#设置该值为$mydomain以便客户端的连接
relay_domains = $mydomain
mynetworks = 202.200.180.0/24

#设置向用户显示的主机名和版本信息
smtpd_banner = $myhostname ESMTP $mail_name

#对于并发进程的限制,保持系统缺省值就可以满足要求了。
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10

#如果你不知道你在做什么,最好不要改变下面的设置
debug_peer_level = 2
debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5

3. 在RedHat中我们通常使用imap作为pop3服务器,可以通过rpm -q imap
命令查看系统有没有安装imap。如果没有安装则插入linux光盘,用rpm -ivh imap-4.5-4.rpm 进行安装。

4. 缺省地,pop3服务器是由inet 启动的,所以必须去掉/etc/inetd.conf文
件中有关pop3的一行注释。如下所示:
pop-3 stream tcp nowait root /usr/sbin/ipop3d ipop3d

5. 重新启动inet服务器,启动postfix:
#/etc/rc.d/init.d/inet restart
#postfix start

5.3在防火墙内部配置postfix
假设一公司通过租用专线上网,公司内部使用192.168.0.0的私有ip, 然后通过防火墙(双宿主主机)的ip欺骗上网,公司的邮件服务器(mail.some.com)也在内部网中,也使用私有ip。我们假设在防火墙上进行了端口转发,可以将Internet对防火墙25端口的请求包转发到内部的邮件服务器上,并且运行DNS服务的防火墙的MX记录指向防火墙本身。
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(815) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值