sendmail security
Download
Skip this Video
Download Presentation
Sendmail Security

Loading in 2 Seconds...

play fullscreen
1 / 14

Sendmail Security - PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on

Sendmail Security. Shien-Chang Ko [email protected] 交通大學資訊科學系 系計算中心. Outline. 安全漏洞的來源 SMTP 探測器 組態檔 存取模式 Aliases 檔 & 偽造的郵件 其他 使用 OpenSSL 安全連線 & Cyrus-SASL 身分認證 Reference. 安全漏洞的來源. Sendmail 必須以 suid root 的方式執行 錯誤的組態檔設定 執行遞送代理程式 把資料寫到一般檔案中. SMTP 探測器.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Sendmail Security' - taylor-berger


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
sendmail security

Sendmail Security

Shien-Chang Ko

[email protected]

交通大學資訊科學系

系計算中心

outline
Outline
  • 安全漏洞的來源
  • SMTP探測器
  • 組態檔
  • 存取模式
  • Aliases檔 & 偽造的郵件
  • 其他
  • 使用OpenSSL安全連線 & Cyrus-SASL身分認證
  • Reference
slide3
安全漏洞的來源
  • Sendmail 必須以 suid root 的方式執行
  • 錯誤的組態檔設定
  • 執行遞送代理程式
  • 把資料寫到一般檔案中
slide4
SMTP探測器
  • 危險1 – 編譯時定義了SMTPDEBUG, 可使用debug, showq指令
  • 解決 – 不定義 SMTPDEBUG
  • 危險2 – vrfy 和 expn 指令vrfy user: 檢查是否有該使用者expn alias: 展開 alias 名單
  • 解決 – sendmail.cf

O PrivacyOptions=novrfy,noexpn

slide5
組態檔
  • 危險3 – F命令FX/tmp/macro.txtFX|/tmp/macro

sendmail.cf

/tmp/.sh

下指令 /usr/sbin/sendmail –bt < /dev/null

  • 解決 – 組態檔必須為root擁有, 只有root才能寫入

FX|/tmp/.sh

O DefaultUser=0:0

#!/bin/shcp /bin/sh /tmp/.shell

chmod u+s /tmp/.shell

BOM

slide6
組態檔 (cont)
  • 危險4 -- 遞送代理程式 P= 等式

原 sendmail.cf

修改的 sendmail.cf

下指令 /usr/sbin/sendmail q3man

  • 解決 – 組態檔需為root擁有, 只有root可以寫入-- P=等式不要使用相對路徑

Mlocal, P=/bin/mail, F=rlsDFMmnP, S=10, R=20, A=mail –d $u

Mlocal, P=/tmp/mail, U=0, F=SrlsDFMmnP, S=10, R=20, A=mail –d $u

BOM

slide7
組態檔 (cont)
  • 危險5 -- 統計資料檔

sendmail.cf

% cd /usr/tmp

% ln –s vmunix sendmail.st

解決 – sendmail 所要寫入個所有檔案只能有root可以寫入,例如 StateFile, aliases, 檔案所在的目錄也只能有root寫入

OS/usr/tmp/sendmail.st

BOM

slide8
存取模式
  • 危險6 -- :include: 的存取模式

sendmail 在需要時會改變身分成為其他使用者

aliases

-rw-rw-r-- 2 bin prog 704 Sep 21 14:46 /usr/local/lists/proglist

prog group 裡的user 在 proglist 檔中加入

/tmp/x.sh

/tmp/sh 的擁有者為 bin, 任何人都可成為 bin

Newprogs: :include:/usr/locallists/proglist

|/tmp/x.sh

#!/bin/sh

cp /bin/sh /tmp/sh

chmod u+s /tmp/sh

cat - > /dev/null

exit 0

slide9
存取模式 (cont)
  • drwxr-sr-x bin 2500 Sep 22 18:18 /etc-rw-r- -r- - root 8199 Aug 25 07:54 /etc/sendmail.cf

下指令

mv /etc/sendmail.cf /etc/…

mv /tmp/sendmail.cf /etc/sendmail.cf

  • 解決 -- root 所擁有的檔案, 其所在目錄及路徑也必須為root所擁有-- 郵寄名單所在的目錄及路徑只有 root 可寫入, 郵寄名單本身只有擁有者可以寫入-- 當郵寄名單為 root 所擁有, sendmail會改變身分為 DefaultUser, DefaultUser 絕對不能設定成 root
  • 危險7 – 使用者的 ~/.forward 檔 (攻擊方式和危險6一樣)

BOM

al iases
aliases & 偽造郵件
  • 保護 aliases 檔及其 database 檔 aliases.db/usr/sbin/sendmail –oA./aliases -bi
  • 保護序列目錄序列目錄需為root擁有, 只有root能寫入
  • 防止SMTP偽造郵件教育使用者, 收到可疑郵件時不要馬上相信
slide11
其他
  • 設定trusted user (Ctroot daemon)/usr/sbin/sendmail –f i_am_swindler未被信任的使用者使用 –f 開關將會在郵件裡加入 X-Authentication-Warning標頭
  • 使用 smrsh shellMprog P=/usr/local/etc/smrsh, …..Mlocal P=/bin/mail, …..smrsh 會移除要執行的程式’的路徑, 改由到 /usr/adm/sm.bin 去找尋程式, smrsh 也會檔掉一些有可疑字元的指令行 (;)|”cp /bin/sh /home/george/.x ; chmod u+s /home/george/.x”
openssl cyrus sasl
使用OpenSSL安全連線 & Cyrus-SASL身分認證
  • 假設已經取得server 端的 key-pair, 存放於 /etc/mail/cert/mykey.pem server 端的 CA, 存放於 /etc/mail/cert/mycert.pem 公正單位的 CA, 存放於 /etc/mail/cert/cacert.pem
  • FreeBSD已內建OpenSSL
  • 安裝Cyrus-SASL程式庫cd /usr/ports/security/cyrus-sasl make install clean
  • /etc/make.conf
  • 重新make sendmail (cd /usr/src/usr.sbin/sendmail;make;make install)

SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL

SENDMAIL_LDFLAGS=-L/usr/local/lib

SENDMAIL_LDADD=-lsasl

openssl cyrus sasl cont
使用OpenSSL安全連線 & Cyrus-SASL身分認證 (cont)
  • 設定 sendmail 的安全連線與身分認證功能 /etc/mail/your_hostname.mc
  • 建立新的 sendmail 控制檔案(cf file) cd /etc/mail ; make cf ; make install
  • 重跑 sendmail

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

reference
Reference
  • Sendmail安裝管理 chapter 22Bryan Costales with Eric Allman, O’REILLY
  • 張毓麟先生的文件集http://netlab.kh.edu.tw/document/使用 TLS/SSL 讓你的 sendmail 更安全
  • 如何製作 SSL X.509 憑證 http://www.imacat.idv.tw/tech/sslcerts.html#smtp
ad