額,這次搭的這個OAmail服務(wù)器主要是參照
鳥哥的說明做的,寫這篇文章的目的在于進(jìn)一步提煉和力求闡明每一步的原因。
首先
安裝postfix和dovecot,直接yum安裝就好
貼一下DNS的zone(DNS和mail在一臺機器上)
- $TTL 600
- @ IN SOA dns luozhaoyu.email.address.. (2011080401 3H 15M 1W 1D)
- @ IN NS dns
- @ IN MX mail
- dns IN A 192.168.56.101
-
- www IN A 172.31.0.103
- mail IN A 172.31.0.105
- smtp IN CNAME mail
- pop3 IN CNAME mail
/etc/postfix/main.cf的
主配置文件修改:
- myhostname = mail.lzy.org # 默認(rèn)通過gethostname()使用FQDN,設(shè)置主機名
- mydomain = lzy.org #
- inet_interfaces = all # 監(jiān)聽所有地址來的服務(wù),不只是127.0.0.1
- inet_protocols = all # 支持IPv6
- mydestination = $myhostname, localhost.$mydomain, localhost # MDA的目的地,能夠收信的主機地址。與mail to相對。如果上面DNS中配了MX,則要把MX內(nèi)容填在這。
- mynetworks = 127.0.0.0/8, 192.168.56.0/24, 172.31.0.0/24, hash:/etc/postfix/access # 受信的network。只有來自這些網(wǎng)絡(luò)的郵件才幫忙Relay,從來源IP的角度過濾
- relay_domains = $mydestination # MTA的目的地,通常為下游Mail地址。從來源域名的角度過濾
- alias_maps = hash:/etc/aliases
- alias_database = hash:/etc/aliases
- # 同時設(shè)置一下郵件和郵箱大小限制
- message_size_limit = 5000000
- mailbox_size_limit = 12000000
- # 設(shè)置虛擬郵件域名
- virtual_alias_domains = virtual.domain
- virtual_alias_maps = hash:/etc/postfix/virtual
- # 在virtual文件中加上
- #virtual.domain anything
- #@virtual.domain @$myhostname
設(shè)置postfix的smtp驗證這里要用到saslauthd軟件
- yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5
查看saslauthd使用的驗證機制/etc/sysconfig/saslauthd
設(shè)置cyrus用saslauthd為smtp服務(wù)
- vim /etc/sasl2/smtpd.conf
- log_level: 3
- pwcheck_method: saslauthd
- mech_list: plain login
設(shè)置postfix使用smtp身份驗證
- vim /etc/postfix/main.cf
- smtpd_sasl_auth_enable = yes
- smtpd_sasl_security_options = noanonymous
- #broken_sasl_auth_clients = yes # 老版本的outlook可能需要這行
-
- smtpd_recipient_restrictions =
- permit_mynetworks, # 放行受信任的網(wǎng)絡(luò)
- permit_sasl_authenticated,
- reject_unknown_sender_domain,
- reject_unknown_recipient_domain,
- reject_unauth_destination,
- #reject #默認(rèn)拒絕一切
- check_relay_domains # 默認(rèn)的策略,必須。比如白名單就使用check_policy_service unix:/var/spool/postfix/postgrey/socket
dovecot設(shè)定一般的pop3與imap在/etc/dovecot/dovecot.conf下修改協(xié)議
設(shè)置dovecot尋找postfix的收件箱位置/etc/dovecot/conf.d/10-mail.conf
- mail_location = mbox:~/mail/:INBOX=/var/spool/mail/%u
注意這里的mbox是類似于一個用于IMAP下多mailbox的存儲目錄,每個用戶都應(yīng)該單獨擁有,不應(yīng)該共享。否則在多郵件客戶端收信下可能將引起收件混亂。而/var/spool/下需要設(shè)置每個獨立用戶的權(quán)限,可能會出現(xiàn)permission error,所以設(shè)置在家目錄下是最省事的。
詳情請看
http://wiki2.dovecot.org/MailLocation/mbox為了使添加的郵箱用戶有在/var/spool/mail目錄下的權(quán)限,需要:
- usermod -g mail testmail0
進(jìn)行普通認(rèn)證的話,關(guān)掉SSL
在/etc/dovecot/conf.d/10-ssl.conf關(guān)閉ssl
并允許明文傳輸
- disable_plaintext_auth = no
進(jìn)行SSL加密的話
先跳到/etc/pki/tls/certs/中制作pem
- make custom-dovecot.pem
- mv custom-dovecot.pem /etc/pki/dovecot/certs/
然后跳到/etc/dovecot/conf.d/中一通改
改10-auth.conf,禁止明文傳輸
- disable_plaintext_auth = yes
改10-ssl.conf
- ssl = required
- ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
- ssl_key = </etc/pki/dovecot/certs/dovecot.pem
改10-master.conf
- inet_listener imap {
- port = 0
- }
- inet_listener pop3 {
- port = 0
- }
改10-mail.conf
- mail_location = mbox:~/mail:INBOX=/var/mail/%u
重啟,注意開防火墻,注意設(shè)置postfix和dovecot開機啟動