Postfix的相關(guān)配置
本文主要講的是postfix的一些相關(guān)配置,包括郵件數(shù)據(jù)的管理、pwcheck for ldap 的配置、postfix的配置。
在這之前我們需要先向我們的openldap目錄里面添加一些東西,這些東西將來也會用到的。主要是設(shè)置一下讀取目錄的權(quán)限。
一、郵件數(shù)據(jù)管理
先準(zhǔn)備在ou=admim,dc=cz8,dc=net 下面,添加一個(gè)人,這個(gè)人將作為整個(gè)郵件系統(tǒng)數(shù)據(jù)的管理員。他對ou=kunmail,dc=cz8,dc=net這個(gè)子樹有寫的權(quán)限。這個(gè)權(quán)限的設(shè)定,我們已經(jīng)在slapd.conf里面指定了,那么我們就添加一個(gè) person 到cn=kunmail,ou=admin,dc=cz8,dc=net,我們?nèi)耘f采用倒入ldif文件的方法來添加數(shù)據(jù)。
admin_cz8.ldif:
- dn: cn=kunmail, ou=admin, dc=cz8,dc=net
- userPassword: cz2004
- objectClass: top
- objectClass: person
- sn: kun
- cn: kunmail
導(dǎo)入之后,我們就可以用cn=kunmail,ou=admin,dc=cz8,dc=net這個(gè)dn作為賬號來讓郵件系統(tǒng)操作ldap目錄了。
二、pwcheck for ldap的配置
pwcheck_ldap的配置,看了配置文件/etc/postfix/pwcheck_ldap.conf就應(yīng)該知道怎么配,這里給我們的配置:
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
三、postfix的配置
總算切入正題了。如上面所說,絕大部分的配置都在/etc/postfix/main.cf里面,有一些關(guān)于maildrop的配置,會需要改動/etc/postfix/master.cf。maildrop是一個(gè)過濾程序,后面會說到的。下面給出我們的配置文件main.cf,旁邊//后面的部分是注釋。
[以上略,都是默認(rèn)配置,沒有改動]
mydomain = cz8.net // 默認(rèn)域
myhostname = home.cz8.net //主機(jī)名
mydestination = $mydomain $myhostname // 默認(rèn)的接受郵件的域
local_recipient_maps = // 不投遞系統(tǒng)賬號郵件
mynetworks = 127.0.0.1, 192.168.0.0/24 // 允許不使用smtp發(fā)信認(rèn)證的網(wǎng)段
relay_domains = $mydestination hash:/etc/postfix/map/relay_domains // 虛擬域列表 (relay_dimains這個(gè)文件內(nèi)容見后)
transport_maps = hash:/etc/postfix/map/transport // 傳輸域列表,定義各個(gè)虛擬域的郵件如何傳輸 (這里我們使用maildrop來投遞郵件)
maildrop_destination_recipient_limit = 1 // maildrop所必要的配置 (見postfix的MAILDROP_README)
mailbox_transport = maildrop // 默認(rèn)的郵件投遞方式 ,這里是maildrop , 投遞方式在master.cf文件里面設(shè)置
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的時(shí)候,不用修改apache的運(yùn)行用戶
virtual_gid_maps = static:65534 // 同上
virtual_mailbox_maps = ldap:kunmailuser // 指定postfix如何去檢索郵件用戶。 這里是采用ldap,具體的ldap配置,讀取kunmailuser開頭的配置。 詳細(xì)的配置說明見 postfix 的 LDAP_README
kunmailuser_timeout=10 // timeout 的時(shí)間
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)) // 檢索郵件賬號的條件,相當(dāng)于sql里面的where子句,就是寫法不大一樣
kunmailuser_result_attribute=userMaildir // 郵件用戶的maildir目錄屬性名。 (在kunmail.schema里面定義的)
kunmailuser_bind=yes // 是否采用認(rèn)證用戶來讀取ldap,(也可以采用匿名方式,這樣速度快,但是安全性差,如果ldap服務(wù)器在內(nèi)網(wǎng),就不怕了)
kunmailuser_bind_dn=cn=kunmail,ou=admin,dc=loveu99,dc=net // 登陸ldap的用戶dn賬號和密碼
kunmailuser_bind_pw=123654
kunmailuser_version=3 // 采用的ldap協(xié)議的版本,應(yīng)該是3 (老的openldap 1.x是2)
message_size_limit = 8388608 // 每封信的最大大小
virtual_mailbox_limit_size = 8388608 // 郵箱的默認(rèn)大小
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 //指定每個(gè)用戶的quota信息,是否要覆蓋全局的默認(rèn)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 // 以上是關(guān)于smtp認(rèn)證的,具體參考SASL_README
- smtpd_banner = Public Mail System v1.0 (based on Postfix) //這個(gè)是定義smtpd banner的。
應(yīng)該不是很難讀懂吧。
下面是跟main.cf有關(guān)的relay_domains文件和transport文件
- $ cat relay_domains
- cz8.net cz8.net
- $ cat transport
- cz8.net maildrop:
很簡單吧,將來要添加虛擬域就是操作這兩個(gè)文件。
完了之后,relay_domains和transport這兩個(gè)文件要做成db文件才能被postfix所讀,這也是問了加快讀取得速度。可以用postmap來做這件事
- $ postmap relay_domains
- $ postmap transport
另外還有/etc/aliases這個(gè)文件,也需要做成db文件,postfix才能正常工作:
- $ postmap /etc/aliases
下面是修改master.cf文件,主要是修改maildrop這一行。我們的maildrop將被安裝在/usr/local/maildrop下,所以要修改一下相關(guān)的設(shè)置。在master.cf文件里,把:
- maildrop unix - n n - - pipe
- flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
改成:
- maildrop unix - n n - - pipe
- flags=R user=nobody argv=/usr/local/maildrop/bin/maildrop -d ${recipient}
其中nobody是我們郵件用戶使用的uid。
基于postfix的配置,大致就這些。
就到這里吧,同學(xué)們有興趣可以繼續(xù)仔細(xì)閱讀一下相關(guān)的一些文檔,以理解整個(gè)郵件系統(tǒng)投遞郵件的完整過程。
【編輯推薦】