Postfix的相关配置

运维 系统运维
在postfix下有哪些配置?该如何配置?本文主要讲的是postfix的一些配置,包括邮件数据的管理、pwcheck for ldap 的配置、postfix的配置。

  本文主要讲的是postfix的一些相关配置,包括邮件数据的管理、pwcheck for ldap 的配置、postfix的配置。

  在这之前我们需要先向我们的openldap目录里面添加一些东西,这些东西将来也会用到的。主要是设置一下读取目录的权限。

一、邮件数据管理

  先准备在ou=admim,dc=cz8,dc=net 下面,添加一个人,这个人将作为整个邮件系统数据的管理员。他对ou=kunmail,dc=cz8,dc=net这个子树有写的权限。这个权限的设定,我们已经在slapd.conf里面指定了,那么我们就添加一个 person 到cn=kunmail,ou=admin,dc=cz8,dc=net,我们仍旧采用倒入ldif文件的方法来添加数据。

  admin_cz8.ldif:

  

dn: cn=kunmailou=admindc=cz8,dc=net 
 
  userPassword: cz2004  
 
  objectClass: top  
 
  objectClass: person  
 
  sn: kun  
 
  cn: kunmail  
 
  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

  导入之后,我们就可以用cn=kunmail,ou=admin,dc=cz8,dc=net这个dn作为账号来让邮件系统操作ldap目录了。

二、pwcheck for ldap的配置

  pwcheck_ldap的配置,看了配置文件/etc/postfix/pwcheck_ldap.conf就应该知道怎么配,这里给我们的配置:

  pwcheck_ldap.conf

  

#  
 
  # pwcheck_ldap.conf  
 
  # written by hefish@cz8.net  
 
  #  
 
  # AUTHTYPE LDAP/UNIX  
 
  AUTHTYPE LDAP  
 
  LDAP_SERVER localhost  
 
  LDAP_PORT 389  
 
  ACCESS_DN cn=kunmail,ou=admin,dc=cz8,dc=net 
 
  ACCESS_PWD cz2004  
 
  SEARCH_DN ou=kunmail,dc=cz8,dc=net 
 
  USER_ATTR userName  
 
  PASS_ATTR userClearpw  
 
  DEFAULT_DOMAIN cz8.net  
 
   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.

三、postfix的配置

  总算切入正题了。如上面所说,绝大部分的配置都在/etc/postfix/main.cf里面,有一些关于maildrop的配置,会需要改动/etc/postfix/master.cf。maildrop是一个过滤程序,后面会说到的。下面给出我们的配置文件main.cf,旁边//后面的部分是注释。

  [以上略,都是默认配置,没有改动]

  mydomain = cz8.net // 默认域

  myhostname = home.cz8.net //主机名

  mydestination = $mydomain $myhostname // 默认的接受邮件的域

  local_recipient_maps = // 不投递系统账号邮件

  mynetworks = 127.0.0.1, 192.168.0.0/24 // 允许不使用smtp发信认证的网段

  relay_domains = $mydestination hash:/etc/postfix/map/relay_domains // 虚拟域列表 (relay_dimains这个文件内容见后)

  transport_maps = hash:/etc/postfix/map/transport // 传输域列表,定义各个虚拟域的邮件如何传输 (这里我们使用maildrop来投递邮件)

  maildrop_destination_recipient_limit = 1 // maildrop所必要的配置 (见postfix的MAILDROP_README)

  mailbox_transport = maildrop // 默认的邮件投递方式 ,这里是maildrop , 投递方式在master.cf文件里面设置

  local_destination_concurrency_limit = 1 // maildrop所必要的配置 (见postfix的MAILDROP_README)

  home_mailbox = Maildir/ //存储邮件的方式, maildir方式 (webmail igenus支持这种方式)

  local_transport = virtual // 本地邮件投递方式, virtual是作为虚拟域投递

  virtual_mailbox_base=/ // 邮件存储目录的前缀 , / 表示从根目录开始

  virtual_uid_maps = static:65534 // 邮件账号的uid, 这里使用nobody用户的uid, 这样将来装igenus的时候,不用修改apache的运行用户

  virtual_gid_maps = static:65534 // 同上

  virtual_mailbox_maps = ldap:kunmailuser // 指定postfix如何去检索邮件用户。 这里是采用ldap,具体的ldap配置,读取kunmailuser开头的配置。 详细的配置说明见 postfix 的 LDAP_README

  kunmailuser_timeout=10 // timeout 的时间

  kunmailuser_server_host=localhost // ldap server host

  kunmailuser_server_port=389 // ldap server port

  kunmailuser_search_base=ou=kunmail,dc=loveu99,dc=net // 邮件账号所在的子目录

  kunmailuser_query_filter=(&(userName=%s)(userActive=1)) // 检索邮件账号的条件,相当于sql里面的where子句,就是写法不大一样

  kunmailuser_result_attribute=userMaildir // 邮件用户的maildir目录属性名。 (在kunmail.schema里面定义的)

  kunmailuser_bind=yes // 是否采用认证用户来读取ldap,(也可以采用匿名方式,这样速度快,但是安全性差,如果ldap服务器在内网,就不怕了)

  kunmailuser_bind_dn=cn=kunmail,ou=admin,dc=loveu99,dc=net // 登陆ldap的用户dn账号和密码

  kunmailuser_bind_pw=123654

  kunmailuser_version=3 // 采用的ldap协议的版本,应该是3 (老的openldap 1.x是2)

  message_size_limit = 8388608 // 每封信的最大大小

  virtual_mailbox_limit_size = 8388608 // 邮箱的默认大小

  virtual_mailbox_limit_maps = ldap:kunmailquota // 指定postfix如何获得用户的quota信息。

#p#

 

 kunmailquota_timeout=10 
 
  kunmailquota_server_host=localhost 
 
  kunmailquota_server_port=389 
 
  kunmailquota_search_base=ou=kunmail,dc=loveu99,dc=net 
 
  kunmailquota_query_filter=(userName=%s)  
 
  kunmailquota_result_attribute=userQuota 
 
  kunmailquota_bind=yes 
 
  kunmailquota_bind_dn=cn=kunmail,ou=admin,dc=loveu99,dc=net 
 
  kunmailquota_bind_pw=123654 
 
  kunmailquota_version=3 
 
  virtual_mailbox_limit_override=yes //指定每个用户的quota信息,是否要覆盖全局的默认quota信息。  
 
  smtpd_sasl_auth_enable=yes 
 
  smtpd_sasl_local_domain = $mydomain  
 
  smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated perm  
 
  it_auth_destination reject  
 
  smtpd_sasl_security_options = noanonymous 
 
  smtpd_client_restrictions = permit_sasl_authenticated // 以上是关于smtp认证的,具体参考SASL_README  
 
  smtpd_banner = Public Mail System v1.0 (based on Postfix) //这个是定义smtpd banner的。  
 
   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.

  应该不是很难读懂吧。

  下面是跟main.cf有关的relay_domains文件和transport文件

  

$ cat relay_domains  
 
  cz8.net cz8.net  
 
  $ cat transport  
 
  cz8.net maildrop:  
 
   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

  很简单吧,将来要添加虚拟域就是操作这两个文件。

  完了之后,relay_domains和transport这两个文件要做成db文件才能被postfix所读,这也是问了加快读取得速度。可以用postmap来做这件事

  

$ postmap relay_domains  
 
  $ postmap transport  
 
   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

  另外还有/etc/aliases这个文件,也需要做成db文件,postfix才能正常工作:

  

$ postmap /etc/aliases  
 
 
  • 1.
  • 2.
  • 3.

  下面是修改master.cf文件,主要是修改maildrop这一行。我们的maildrop将被安装在/usr/local/maildrop下,所以要修改一下相关的设置。在master.cf文件里,把:

 

  maildrop unix - n n - - pipe  
 
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}  
 
  • 1.
  • 2.
  • 3.
  • 4.

  改成:

  maildrop unix - n n - - pipe  
 
  flags=R user=nobody argv=/usr/local/maildrop/bin/maildrop -d ${recipient}  
 
  • 1.
  • 2.
  • 3.
  • 4.

  其中nobody是我们邮件用户使用的uid。

  基于postfix的配置,大致就这些。

  就到这里吧,同学们有兴趣可以继续仔细阅读一下相关的一些文档,以理解整个邮件系统投递邮件的完整过程。

【编辑推荐】

  1. Postfix_setup 全自动安装包发布支持 Linux/FreeBSD
  2. Postfix配置文件和命令
  3. Postfix邮件服务器的安装
  4. Postfix邮件的备份方法
  5. Postfix常用命令
  6. 图文并茂 Postfix如何投递邮件
  7. 图文并茂 Postfix如何接收邮件
责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-01-19 09:16:48

Postfix配置

2011-02-21 13:08:37

postfix配置

2011-01-19 09:55:27

postfix

2010-06-02 17:36:31

postfix概述

2011-01-19 14:00:21

2010-06-07 11:22:28

2009-11-30 10:21:41

2009-10-10 15:54:55

RHEL 4配置Pos

2011-02-21 10:31:54

Postfix命令配置

2011-01-18 15:00:17

Postfix安装

2011-01-18 18:52:14

Postfix结构

2011-01-20 10:20:18

Postfix配置

2010-05-25 14:57:17

postfix安装配置

2011-01-19 09:57:48

Postfix控制

2011-01-19 13:39:38

Postfix邮件监控

2010-06-02 18:17:09

Postfix邮件

2010-07-20 10:49:07

Telnet会话

2010-05-25 18:57:42

启动postfix

2011-01-19 16:12:00

Postfix安装启动

2011-01-20 09:42:29

postfix邮件
点赞
收藏

51CTO技术栈公众号