以下將介紹如何在FreeBSD上安裝Mail Server(Cyrus_SASL + CA + Sendmail )
事前準備工作:
修改/etc/make.conf並加入以下設定。因為使用網路取得檔案時,預設抓取檔案的伺服器通常在國外
,因此修改/etc/make.conf並加入以下四行來指定使用國內的FTP站台。
MASTER_SITE_BACKUP?=
ftp://freebsd.csie.ncu.edu.tw/distfiles/${DIST_SUBDIR}/
ftp://freebsd.csie.nctu.edu.tw/pub/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}
1.安裝 Cyrus_SASL:
#cd /usr/ports/security/cyrus_sasl #make install選擇DB3、OpenLDAP2,及其它選項(不包含MySQL、NDBM、OpenLDAP1),選擇ok就開始install囉~^^~ 2.製作保密連線的金鑰 (key-pair) 與授權憑證與 (CA; Certification Authority) (節錄自 中研院 張毓麟先生之文章,http://www.ascc.net/nl/90/1713/02.txt) 安全連線至少需要三個檔案才能啟用. 請將公正單位核發的key-pair 與CA 放置於下列目錄: server 端的key-pair, 存放於 /etc/mail/cert/mykey.pem server 端的 CA, 存放於/etc/mail/cert/mycert.pem 公正單位的CA, 存放於 /etc/mail/cert/cacert.pem 如果想自行製作key-pair 與 CA,請依照下列指令操作
# mkdir /usr/local/CA # cd /usr/local/CA # mkdir certs crl newcerts private # echo "01" > serial # cp /dev/null index.txt # cp /etc/ssl/openssl.cnf openssl.cnf編輯openssl.cnf 檔案, 將檔案中約第 38 行的路徑設定由 ./demoCA 改成 /usr/local/CA。 接著執行以下指令,假裝自己是公正單位,做一個cacert.pem 出來。請按螢幕上的指示,輸入相關的系統資料,當螢幕上提示輸入公正單位密碼(PEM pass phrase)的時候,請自行設定一個密碼,並請牢記這個密碼,以便日後使用。
# cd /usr/local/CA # openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 365 -config openssl.cnf執行以下指令,建立server 端的CA 與key-pair 。請特別留意,在這個步驟中,當畫面上提示輸入Common Name 的時候,請務必輸入機器的全名(FQDN),否則以後使用者連線的時候將會出現警告訊息,造成使用者的困擾。當螢幕提示輸入PEM pass phrase 的時候,請輸入上一步驟中的公正單位密碼。
# cd /usr/local/CA # openssl req -nodes -new -x509 -keyout mykey.pem -out myreq.pem -days 365 -config openssl.cnf # openssl x509 -x509toreq -in myreq.pem -signkey mykey.pem -out tmp.pem # openssl ca -config openssl.cnf -policy policy_anything -out mycert.pem -infiles tmp.pem # rm -f tmp.pem以下列指令,將key-pair 與CA 複製到 /etc/mail/cert 目錄之下,並設定正確:
# mkdir /etc/mail/cert # cp /usr/local/CA/mykey.pem /etc/mail/cert/ # cp /usr/local/CA/mycert.pem /etc/mail/cert/ # cp /usr/local/CA/cacert.pem /etc/mail/cert/ # chmod og-rwx /etc/mail/cert/mykey.pem # chmod og=r /etc/mail/cert/mycert.pem # chmod og=r /etc/mail/cert/cacert.pem使用以下的指令建立CA 的hash link ,請特別注意引號的方向(建議剪貼以下指令,以免不小心打字失誤)
# cd /etc/mail/cert # ln -s cacert.pem `openssl x509 -noout -hash < cacert.pem`.0這樣就完成了自行建立key-pair 與CA 的程序。這組key-pair 與CA 將可被 sendmail 使用於保密連線的資料加密。 3.重新編譯 Sendmail (節錄自 中研院 張毓麟先生之文章,http://www.ascc.net/nl/90/1713/02.txt, 本單元有根據張毓麟先生的文章做一些些修改) 系統雖然內建Sendmail ,但內建的版本並沒有與Cyrus-SASL 程式庫連結,因此必須加以調整。以下的指令將為調整 Sendmail 做準備
# killall –9 sendmail # cat >> /etc/make.conf SENDMAIL_CFLAGS=-I/usr/local/include/sasl –DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl ^D (同時按Ctrl 鍵與D 字母鍵)以下列指令安裝新的Sendmail 程式
# mv /usr/local/include/sasl1 /usr/local/include/sasl # cd /usr/src/lib/libsmutil # make clean # make # cd /usr/src/lib/libsm # make clean # make # cd /usr/src/usr.sbin/sendmail # make clean # make all install完成上述指令後,sendmail 的安全連線與身分認證已被啟動,但仍需進一部的設定才能正常運作。 編輯 /etc/mail/freebsd.mc 檔案,在檔案末端加入以下11 行設定
dnl The following lines are used to enable the STARTTLS function define(`CERT_DIR', `/etc/mail/cert')dnl define(`confCACERT_PATH', `CERT_DIR')dnl define(`confCACERT', `CERT_DIR/cacert.pem')dnl define(`confSERVER_CERT', `CERT_DIR/mycert.pem')dnl define(`confSERVER_KEY', `CERT_DIR/mykey.pem')dnl define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')dnl define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')dnl dnl The following lines are used to enable CYRUS-SASL function TRUST_AUTH_MECH(`LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl請特別注意大小寫,以及引號的方向,建議使用複製的方式將以上11 行設定貼入 /etc/mail/freebsd.mc 檔案的末端,以免發生意外的打字錯誤。 接下來以下列指令,建立新的sendmail 控制檔案(cf file)
# cd /etc/mail # make cf # make instal l完成以上設定程序之後,sendmail 的保密連線與身分認證弁鄐w經被正確的設定完成,可以進行下一步驟,檢查是否正確運作。 4.檢查保密連線與身分認證的功能否正確運作 (節錄自 中研院 張毓麟先生之文章,http://www.ascc.net/nl/90/1713/02.txt) 首先,以下列指令重新啟動sendmail
# killall -9 sendmail # /usr/sbin/sendmail -bd -q30m以下列指令檢查保密連線與身分認證功能是否正確啟動
# telnet localhost 25 ehlo localhost若螢幕上出現的訊息包含以下兩行,則表示保密連線與身分認證都已經正確啟動了。
250-AUTH LOGIN PLAIN 250-STARTTLS若沒有出現這兩個訊息,表示前述的操做發生了錯誤,請檢查sendmail 的記錄檔 /var/log/maillog 內的訊息,了解錯誤發生的詳細狀況
文章標籤
全站熱搜
