「幫 sendmail 加入寄件認證 (SMTP AUTH) 功能」修訂間的差異
(未顯示同一使用者於中間所作的 1 次修訂) | |||
行 47: | 行 47: | ||
==設定 sendmail 執行參數== | ==設定 sendmail 執行參數== | ||
− | + | 先產生主機的設定檔: | |
+ | <pre># cd /etc/mail | ||
+ | # make</pre> | ||
+ | |||
+ | 用編輯器開啟 /etc/mail/`hostname`.mc 這個檔案,例如: | ||
<pre># vi /etc/mail/`hostname`.mc</pre> | <pre># vi /etc/mail/`hostname`.mc</pre> | ||
− | + | 在 FEATURE 區段加入以下這行: | |
+ | <pre>FEATURE(`delay_checks')dnl</pre> | ||
+ | 例如: | ||
+ | <pre>FEATURE(blacklist_recipients) | ||
+ | FEATURE(local_lmtp) | ||
+ | FEATURE(mailertable, `hash -o /etc/mail/mailertable') | ||
+ | FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') | ||
+ | FEATURE(`delay_checks')dnl</pre> | ||
+ | |||
+ | 並在檔案內容的最後面加上以下幾行: | ||
<pre>dnl set SASL options | <pre>dnl set SASL options | ||
define(`confRUN_AS_USER',`root:mail')dnl | define(`confRUN_AS_USER',`root:mail')dnl |
於 2008年5月18日 (日) 06:22 的最新修訂
作者:Joe Horn( joehorn AT leobbs DOT net )
授權:[CC授權:姓名標示-非商業性-相同方式分享 2.5]
附註:安裝步驟適用於 FreeBSD 平台,其它 UNIX-Like OS 可能有所不同。
使用軟體:
- [sendmail]
- [Cyrus-SASL]
前言
傳統的 SMTP 主機都由 IP 來判斷使用者是否有送信權,但是這種方式對浮動 IP 的使用者就失去了效用。
若是將 SMTP 主機加入使用者帳號與密碼的認證機制,則無論是固定 IP 還是浮動 IP 都可以使用主機來寄信了。
暫停 sendmail
停掉 sendmail:
# cd /etc/mail # make stop
安裝 Cyrus-SASL
使用以下指令安裝 Cyrus-SASL 認證程式庫:
# cd /usr/ports/security/cyrus-sasl2 # make install clean
再使用以下指令安裝 Cyrus-SASL 認證服務(saslauthd):
# cd /usr/ports/security/cyrus-sasl2-saslauthd # make install clean
加入 sendmail 編譯參數
編輯 /etc/make.conf ,在最尾端加進以下四行:
## SMTP_AUTH 用 ## SENDMAIL_CFLAGS+= -I/usr/local/include -DSASL=2 SENDMAIL_LDFLAGS+= -L/usr/local/lib SENDMAIL_LDADD+= -lsasl2
重新編譯系統中的 sendmail
使用以下指令重新編譯與安裝 sendmail:
# cd /usr/src/usr.sbin/sendmail # make cleandir # make obj # make # make install # cd /etc/mail # make
設定 sendmail 執行參數
先產生主機的設定檔:
# cd /etc/mail # make
用編輯器開啟 /etc/mail/`hostname`.mc 這個檔案,例如:
# vi /etc/mail/`hostname`.mc
在 FEATURE 區段加入以下這行:
FEATURE(`delay_checks')dnl
例如:
FEATURE(blacklist_recipients) FEATURE(local_lmtp) FEATURE(mailertable, `hash -o /etc/mail/mailertable') FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') FEATURE(`delay_checks')dnl
並在檔案內容的最後面加上以下幾行:
dnl set SASL options define(`confRUN_AS_USER',`root:mail')dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confDONT_BLAME_SENDMAIL',`GroupReadableSASLDBFile')dnl
編輯 /etc/access 這個檔案,讓這個檔案只存在以下的內容(中間空白以 Tab 對齊):
127.0.0.1 RELAY (主機IP) RELAY
再來編輯 /etc/mail/local-host-names 這個檔案,填入主機的 domain name 。
例如:某主機有 aaa.bbb 跟 ccc.ddd 兩個 DN 要用來收信([email protected] 與 [email protected]),則填入以下內容:
aaa.bbb ccc.ddd
設定 Cyrus-SASLauthd 啟動狀態
請在 /etc/rc.conf 加進這行:
saslauthd_enable="YES"
安裝 sendmail 設定檔
請使用以下指令:
# cd /etc/mail # make # make cf # make install
啟動 Cyrus-SASLauthd 與 sendmail
啟動 saslauthd 與 sendmail:
# /usr/local/etc/rc.d/saslauthd.sh start # cd /etc/mail # make start
測試
要測試您的主機是否開始支援 SMTP_AUTH 請用 telnet localhost 25 這個指令,輸入以下指令:
ehlo localhost
觀察是否有以下這行出現:
250-AUTH LOGIN
若是有則代表成功。