O.S: FreeBSD 7.1 Release
因為現在 Google Apps (Google 應用服務)實在太方便了,想要一個有 SSL 的 mail server 不但不用安裝 postfix+Cyrus SASL+smtp... 等等拉拉雜雜的軟體,不但要設定一堆東西,還要提心吊膽什麼時後會被鑽到漏洞變成別人的垃圾信箱發信端。只是需要設定 DNS 而已(這個就不多說了,網路上免費的不少,如果你有自己的 domain 的話,就更方便囉)。不過,如果像我一樣是用 FreeBSD 架伺服器的話,有些 log 信件還是會寄給 root,就算你用 mail alias 也是沒辦法發到正確的信箱。我也不知道為啥,可能是 mail alias 只能選擇本機的帳號吧,我填設定好的 Google Apps 的信箱,怎樣都不能,都出現:
Feb 18 01:17:12 denniswave sm-mta[33034]: n1HHHBeH033034: Losing ./qfn1HHHBeH033034: savemail panic Feb 18 01:17:12 denniswave sm-mta[33034]: n1HHHBeH033034: SYSERR(root): savemail: cannot save rejected email anywhere
所以就去找了個 pop3 的軟體(dovcot。參考:Izero),dovcot 有支援 SSL 連線,安裝又很簡單。
1. 安裝
#cd /usr/ports/mail/dovcot #make install clean (選擇 default 就可以了) [x]KQUEUE kqueue(2) support [x]SSL SSL support [x]IPV6 IPv6 support [x]POP3 POP3 support [x]LDA LDA support
2. 開機自動啟動 dovecot
#ee /etc/rc.conf 加上: dovecot_enable="YES"
3. 設定 dovecot
#ee /usr/local/etc/dovecot.conf protocols = imap imaps pop3 pop3s log_path = /var/log/dovecot.log (要把錯誤訊息放在哪邊) #info_log_path (預設沒有設定,代表是跟錯誤訊息放在同一個檔案裡面) ssl_cert_file = /usr/local/etc/apache22/server.crt (SSL 的主角上場囉) ssl_key_file = /usr/local/etc/apache22/server.key first_valid_gid = 1000 (使用 dovecot 的使用者,他的GID要超過多少)
大致上只要設定你要開啟的服務,紀錄 log 的位置、SSL 憑證的位置和可以使用 dovecot 的使用者的權限就好了(我記得很久之前安裝 pop3 還需要去 inetd 開啟服務,這個不用)。預設有 imap、imaps、pop3、pop3s 這些服務,如果你只想開啟 SSL 的話,就把 imap 和 pop3 刪除。不過要使用 SSL 的話,還需要憑證。如果你已經有其他憑證了(譬如 apache 的),可以直接拿來用。如果不會產生憑證的話,可以參考這裡。另外 dovecot 有個 first GID 的設定,就是使用 dovecot 的使用者,他的 GID 一定要大於這個數字,主要是怕像 root、ftp 等一些系統的帳號會被拿來測試密碼吧(因為這樣的選項安裝下來,其實是直接用 freebsd 的帳號密碼登入,所以比較不安全點)。建議可以新增一個帳號,群組用成 nobody,login shell 改成 /usr/sbin/nologin 就好了。就算猜到密碼,他也進不來伺服器(只是還是可以收信啦)。
另外,設定好了的時候,要把所有信件都轉給這個使用者(預設都是寄給 root 了)。
#ee /etc/mail/aliases 加上: root: pop3user (這樣就可以把所有寄給 root 的信件轉給 pop3user ) #newaliases (把新的 alias 規則寫入 database:檔案在 /etc/mail/aliases.db)
4. 測試
是看看自己發一封信給 root 看看 mail 會不會收到
#mail -s "Subject" root@your.domain < testfile
這樣就會寄給 root 主旨為 "Subject" 內容是 "testfile" 內文的信件。如果你在 /var/mail/pop3user 有看到這封信的話,就成功囉。
其實好像說到 Google Apps 是多餘的,Google Apps 主要是負責收別人寄給你的信和你寄出去的信,而且你要收 Google Apps 的 pop3 伺服器是 pop.gmail.com。跟怎麼收 FreeBSD 裡面的信沒有關係,所以-----好多廢話。
2012.12.15 更新
Google 對於 SSL 憑證的要求變高了,不接受自簽憑證囉!