線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2733
推到 Plurk!
推到 Facebook!

使用 TLS/SSL 讓你的 sendmail 更安全

尚未結案
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-11 13:20:27 IP:61.221.xxx.xxx 未訂閱
http://netlab.kh.edu.tw/document/張毓麟/sendmail-ssl-auth.txt    張毓麟先生的文件集       Enable Secure-Connection and User-Authentication in Sendmail on FreeBSD ------------------------------------------------------------------------------                                                  by Yu-lin Chang (May.10,2001)      安全連線(Transport Layer Security & Secure Sockets Layer; TLSv1 & SSLv2/v3) 對於公眾網路(Internet) 的使用者傳送資料時的私密性有相當好的保護功能. TLS/SSL 會 將網路上送的資料進行編碼加密, 使得駭客在合理的時間之內無法破解而得知郵件內容, 進而達到保障資料私密性的目的.      使用者身分認證(User-Authentication) 的功能, 則是用來確認發信人的身分, 使得通 過認證的使用者, 不論身在何方, 均可以使用郵件系統上的資源. 也因為身分的認證使得 郵件系統無法為惡意的廣告商人所濫用, 不但減少資源的浪費, 也能避免正常使用者的困 擾.      本文不欲探討安全連線或是身分認證的理論或是技術細節. 僅使用 FreeBSD 4.3-STABLE 為作業系統, 示範於 sendmail 8.11.3 郵件郵件系統上啟動安全連線與使用者認證功能. 安全連線的部分, 使用的是 OpenSSL 安全程式庫所提供的 TLS/SSL 功能. 使用者認證的 部分, 將採用 Carnegie Mellon University 所發展的 Cyrus-SASL 身分認證程式庫.      由於 FreeBSD 系統內建 OpenSSL 安全程式庫, 因此下文將略過 OpenSSL 的安裝程序, 直接說明 Cyrus-SASL 程式庫的安裝, 安全連線金鑰(key-pair)與授權憑證(CA; Certi- fication Autority)的製作, 以及 sendmail 的設定方法.    *) 設定安全連線金鑰(key-pair)與授權憑證(CA; Certification Authority)        通常, 我們會向獨立公正單位(例如 VeriSign 或 GlobalSign 等等公司)購買安全金   鑰以及授權憑證. 但如果不願意花錢購買, 也可以自行製作金鑰以及授權憑證. 自行製   作的安全金鑰與授權憑證, 在功能上與買來的相同, 但是向獨立公正單位購買, 會讓使   用者心理上覺得比較有保障.      安全連線至少需要三個檔案才能啟用. 請將公正單位核發的 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-par, 務必通知公正單位不可將 mykey.pem   做 DES 編碼, 否則 sendmail 將無法於開機時自動啟動.      如果想自行製作 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)   否則將來 user 連線都時候將會出現警告訊息, 造成 user 的困擾.   當螢幕提示輸入 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      這樣就完成了自行建立 key-pair 與 CA 的程序. 這組 key-pair 與 CA 將可被   sendmail 使用於 TLS/SSL 安全連線的資料加密功能上.    *) 安裝 Cyrus-SASL 程式庫        在 FreeBSD 的軟體資料庫(ports-collections) 裡面, 已經收錄了最新的 Cyrus-   SASL, 安裝的方法十分簡單, 只需輸入下列指令, 即可完成安裝:        cd /usr/ports/security/cyrus-sasl     make install      完成上述指令後, Cyrus-SASL 程式庫即可被其他程式使用.    *) 安裝新的 sendmail 程式      FreeBSD 對於系統軟體的編譯時的選項, 統一由 /etc/make.conf 來設定, 以下列指令   產生預設的 /etc/make.conf 檔案        cp /etc/defaults/make.conf /etc/      編輯 /etc/make.conf 在檔案尾部加入以下三行設定        SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL     SENDMAIL_LDFLAGS=-L/usr/local/lib     SENDMAIL_LDADD=-lsasl      以下列指令重新安裝 sendmail 程式        cd /usr/src/usr.sbin/sendmail     make clean     make     make install      完成上述指令後, sendmail 的安全連線與身分認證功能已經被啟動, 但仍需進一部的   設定才能正常運作.    *) 設定 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 install      使用以下的指令建立 CA 的 hash link (建議剪貼以下指令,以免不小心打字失誤)        cd /etc/mail/cert     set C=cacert.pem     ln -s $C `openssl x509 -noout -hash < $C`.0      完成以上設定程序之後, sendmail 的安全連線與認證功能已經被正確的設定完成,   可以進行下一步驟, 檢查是否正確運作.    *) 檢查安全連線與身分認證的功能是否正確運作        首先, 以下列指令重新啟動 sendmail        killall -9 sendmail     /usr/sbin/sendmail -bd -q30m      以下列指令檢查安全連線與身分認證功能是否正確啟動        telnet localhost 25     ehlo localhost      若螢幕上出現的訊息包含以下兩行, 則表示安全連線與身分認證功能已經正確啟動了.        250-AUTH LOGIN PLAIN     250-STARTTLS      若沒有出現這兩個訊息, 表示前述的操做發生了錯誤, 請檢查 /var/log/maillog 內   的訊息, 了解錯誤發生的詳細狀況.    *) 設定郵件程式使用安全連線與身分認證        本節中, 以 Microsoft OutLook Express 郵件程式為範例, 說明如何在讓 user 在   發送郵件的時候, 受到安全連線以及身分認證機制的保護.      [圖片]      [OutLookExpress]-->[工具]-->[帳號]-->[郵件]-->[內容]-->[伺服器]     -->[我的伺服器需要查驗身分] (打勾)      [OutLookExpress]-->[工具]-->[帳號]-->[郵件]-->[內容]-->[進階]     -->[外寄郵件-SMTP]-->[這個伺服器需要安全連線-SSL] (打勾)    *) 檢視原始郵件的標頭(mail header) 確認安全連線與身分認證功能正常運作        使用 TLS/SSL 安全連線與通過使用者認證程序所發出的郵件, 在標頭(mail header)   中會出現如下列的紀錄資料 (以下資料為 OutLook Express 的範例)      Received: from chang (abcd.wsl.sinica.edu.tw [140.109.7.99])           (authenticated)           by xxxx.sinica.edu.tw (8.11.3/8.11.3) with ESMTP id f4B2sEM88174           (using TLSv1/SSLv3 with cipher RC4-MD5 (128 bits) verified NO)           for ; Fri, 11 May 2001 10:54:15 0800 (CST) 標頭中的 authenticated 表示來自 abcd.wsl.sinica.edu.tw 的使用者通過身分認證, 而 TLSv1/SSLv3 表示該使用者使用安全連線進行發信的動作. 如果標頭中沒有這兩行 紀錄, 則表示使用者沒有正確的設定郵件軟體. 以上, 就是 sendmail 完整的安全連線與身分認證設定程序. 搭配合適的用戶端軟體 (例如 Microsoft OutLook 或是 Netscape Messenger) 可以在使用者傳送郵件到主機的過 程中, 保護資料的安全. 另一方面, 如果收件人的主機有支援安全連線功能, 則 sendmail 也會自動的以加密的方式將郵件送到收件人的信箱, 達到全程保密目標. -- 文件到此結束.
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-05-17 16:48:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!