首页 运维 正文
为中小企业用户配置Postfix

 2022-10-23    447  

  假设有一家数千名员工的公司,该公司通过租用专线上网。现在公司决定通过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)的内容如下:

为中小企业用户配置Postfix

  @ 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

原文链接:https://77isp.com/post/9022.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。