為 sendmail 的外送信件加入寄件者身份認證資訊

出自啟示錄
於 2006年9月4日 (一) 05:50 由 JoeHorn留言 | 貢獻 所做的修訂
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋

作者:Joe Horn( joehorn AT leobbs DOT net )

授權:[CC授權:姓名標示-非商業性-相同方式分享 2.5]

附註:本文件適用於 FreeBSD 平台,其它 UNIX-Like OS 可能有所不同。


使用軟體:


前言

我在近幾個月看過許多 SPAM mail 的表頭,發現目前已經有越來越多廣告信是 ISP 使用者藉由 ISP 所提供的 mail server 送出。


因為在預設的 sendmail 設定中,並不會讓 sendmail 為外寄信件加上寄件者身份認證資訊,於是當這些 mail server 因為發送不當信件而遭受檢舉時,管理員也難以進行追查。


故在我們為 sendmail 加入寄件認證(SMTP Auth)之後,額外加入寄件者身份認證資訊。


如此便能方便我們追查不當使用者,減少管理員的工作負擔。

更改 sendmail 設定

請用編輯器開啟 /etc/mail/`hostname`.mc 這個檔案,例如:

# vi /etc/mail/`hostname`.mc

在最後面加上以下幾行:

define(`confRECEIVED_HEADER',`$?sfrom $s $.$?_($?s$|from $.$_)
	    $.$?{auth_type}(authenticated $?{auth_authen}user=${auth_authen} $.type=${auth_type} $?{auth_ssf}bits=${auth_ssf}$.)
	    $.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}
	    (version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u
	    for $u; $|;
	    $.$b$?g
	    (envelope-from $g)$.')dnl

安裝 sendmail 設定檔

製作 sendmail.cf 檔,請使用以下指令:

# cd /etc/mail
# make install

重新啟動 sendmail

重新啟動 sendmail ,請使用以下指令:

# cd /etc/mail
# make restart

前後比較

使用 Outlook Express、Outlook、ThunderBird 等軟體並利用身份認證的功能透過主機寄信作測試。

尚未修改設定前,原本的外送信件表頭應該類似這樣:

檔案:SendmailAuthInfo.jpg

修改後的外送信件表頭應該是類似這樣:

檔案:SendmailAuthInfo orig.jpg