首页 运维 正文
Postfix的相关配置

 2022-10-23    486  

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

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

Postfix的相关配置

一、邮件数据管理

  先准备在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=kunmail,ou=admin,dc=cz8,dc=net

  userPassword:cz2004 

  objectClass:top 

  objectClass:person 

  sn:kun 

  cn:kunmail 

  

  导入之后,我们就可以用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 

  #writtenbyhefish@cz8.net 

  # 

  #AUTHTYPELDAP/UNIX 

  AUTHTYPELDAP 

  LDAP_SERVERlocalhost 

  LDAP_PORT389 

  ACCESS_DNcn=kunmail,ou=admin,dc=cz8,dc=net

  ACCESS_PWDcz2004 

  SEARCH_DNou=kunmail,dc=cz8,dc=net

  USER_ATTRuserName 

  PASS_ATTRuserClearpw 

  DEFAULT_DOMAINcz8.net 

  

三、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_mynetworkspermit_sasl_authenticatedperm 

  it_auth_destinationreject 

  smtpd_sasl_security_options=noanonymous

  smtpd_client_restrictions=permit_sasl_authenticated//以上是关于smtp认证的,具体参考SASL_README 

  smtpd_banner=PublicMailSystemv1.0(basedonPostfix)//这个是定义smtpdbanner的。 

  

  应该不是很难读懂吧。

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

  

$catrelay_domains 

  cz8.netcz8.net 

  $cattransport 

  cz8.netmaildrop: 

  

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

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

  

$postmaprelay_domains 

  $postmaptransport 

  

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

  

$postmap/etc/aliases 

 

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

  maildropunix-nn--pipe 

  flags=DRhuuser=vmailargv=/usr/local/bin/maildrop-d${recipient} 

  改成:

  maildropunix-nn--pipe 

  flags=Ruser=nobodyargv=/usr/local/maildrop/bin/maildrop-d${recipient} 

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

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

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

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

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

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