为中小企业用户配置Postfix

运维 系统运维
如果有一家几千名员工的中小企业,准备通过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)的内容如下:

  @ 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

  在防火墙内部配置postfix

  假设一公司通过租用专线上网,公司内部使用192.168.0.0的私有ip, 然后通过防火墙(双宿主主机)的ip欺骗上网,公司的邮件服务器(mail.some.com)也在内部网中,也使用私有ip。我们假设在防火墙上进行了端口转发,可以将Internet对防火墙25端口的请求包转发到内部的邮件服务器上,并且运行DNS服务的防火墙的MX记录指向防火墙本身。

  在这个例子中,我想着重说明的是有关映射文件的用法。main.cf配置文件和相关的解释如下所示:

  #表明自己的身份

  myhostname = mail.some.com

  mydomain = some.com

  mydestination = $mydomain, $myhostname, localhost.$mydomain

  myorigin = $mydomain

  #让postfix监听所有接口

  inet_interfaces = all

  #通过mynetworks参数接受内部网用户的SMTP连接请求

  mynetworks = 192.168.0.0/8

  #向postfix管理员报告的信息量

  notify_classes = resource, software, bounce, policy

  #如果客户端的ip地址符合$maps_rbl_domains参数中列出的则拒绝之

  maps_rbl_domains = rbl.maps.vix.com, dul.maps.vix.com

  #对可以连接的客户端进行严格的限制

  smtpd_client_restrictions =

  #客户端ip符合$mynetworks定义的范围则接受连接

  permit_mynetworks,

  #根据access的查询结果判断客户端连接的合法性

  check_client_access hash:/etc/postfix/access,

  #拒绝ip符合$maps_rbl_domains定义范围的连接

  reject_maps_rbl,

  #如果客户端在DNS中没有记录则拒绝连接,要慎用

  reject_unknown_hostname

  #通过发件人的地址进行限制

  smtpd_sender_restrictions =

  permit_mynetworks,

  check_sender_access hash:/etc/postfix/access

  #配置虚拟主机数据库,别忘了执行"postmap virtual"进行格式转换

  virtual_maps = hash:/etc/postfix/virtual

  #对无系统帐号的邮件进行转发配置,如离开公司的员工

  relocated_maps = hash:/etc/postfix/relocated

  #配置别名数据库

  alias_maps = hash:/etc/postfix/aliases

  # 我们使用smtp投递代理

  default_transport = smtp

  # 一些常规配置

  mail_owner = postfix

  default_privs = nobody

  #配置路径信息

  queue_directory = /var/spool/postfix

  program_directory = /usr/libexec/postfix

  command_directory = /usr/sbin

  daemon_directory = /usr/libexec/postfix

  mail_spool_directory = /var/spool/mail

  mailbox_command = /usr/bin/procmail

  #并发连接配置

  local_destination_concurrency_limit = 2

  default_destination_concurrency_limit = 10

  然后,我们执行以下命令:

  #进入postfix配置目录

  cd /etc/postfix

  #用newaliases初始化别名数据库

  newaliases

  #用postmap分别建立virtual、access和relocated查询数据库

  postmap virtual

  postmap access

  postmap relocated

  #启动postfix

  /etc/rc.d/init.d/postfix start

  现在我们来看看virtual、access和reloacted几个查询文件的格式,下面是这几个文件的示例和注释:

  #virtual文件示例

  #假设在这个例子中我们有个虚拟域为other.com

  other.com

  #access 文件示例

  #如果符合前面的条件则进行后面操作,可以有三种操作:

  #1. [45]XX $messag:拒绝接受并且向客户端显示预定义的信息

  #2. REJECT:拒绝接受,不显示信息

  #3. OK允许连接

  ispy99@noman.com.cn 550 Go away

  friend.com OK

  202.192 REJECT

  #relocated 文件示例

  #该文件主要是将发给无系统帐号的邮件进行转发

  who@some.com onetwo@newone.com

【编辑推荐】

  1. Postfix对邮件的处理流程
  2. Linux下的邮件服务器 postfix
  3. 如何安装Postfix
  4. Postfix邮件安装实现介绍
  5. Postfix入门篇
  6. postfix 安装配置
  7. Postfix的配置
责任编辑:zhaolei 来源: 网络转载
相关推荐

2009-09-01 18:26:07

戴尔中小企业笔记本

2013-07-22 09:20:28

甘肃移动云计算

2015-06-02 10:22:43

CDN/Webluke

2013-11-12 15:06:50

服务器服务器配置

2019-03-27 08:19:38

勒索软件数据泄露

2012-05-06 13:50:55

2011-07-13 15:32:48

2009-11-10 16:52:32

2010-07-29 10:32:24

VPN设置

2009-03-17 10:27:15

ITIL中小企业摩卡软件

2009-05-23 12:42:14

赛门铁克中小企业终端防护

2009-05-21 14:47:29

酷点KoolPoin产品摩卡软件

2011-03-14 11:23:54

2011-04-13 14:43:55

2021-10-29 16:30:01

勒索团伙勒索软件攻击

2021-10-12 16:12:01

深信服

2009-11-30 16:51:37

2011-12-13 14:13:46

微软

2010-03-16 13:39:53

Google Apps中小企业备份

2013-12-23 17:14:29

点赞
收藏

51CTO技术栈公众号