Sendmail security
This presentation is the property of its rightful owner.
Sponsored Links
1 / 14

Sendmail Security PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Sendmail Security

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


Sendmail security

安全漏洞的來源

  • Sendmail 必須以 suid root 的方式執行

  • 錯誤的組態檔設定

  • 執行遞送代理程式

  • 把資料寫到一般檔案中


Sendmail security

SMTP探測器

  • 危險1 – 編譯時定義了SMTPDEBUG, 可使用debug, showq指令

  • 解決 – 不定義 SMTPDEBUG

  • 危險2 – vrfy 和 expn 指令vrfy user: 檢查是否有該使用者expn alias: 展開 alias 名單

  • 解決 – sendmail.cf

O PrivacyOptions=novrfy,noexpn


Sendmail security

組態檔

  • 危險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


Sendmail security

組態檔 (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


Sendmail security

組態檔 (cont)

  • 危險5 -- 統計資料檔

    sendmail.cf

    % cd /usr/tmp

    % ln –s vmunix sendmail.st

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

OS/usr/tmp/sendmail.st

BOM


Sendmail security

存取模式

  • 危險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


Sendmail security

存取模式 (cont)

  • drwxr-sr-x bin2500 Sep 22 18:18 /etc-rw-r- -r- - root8199 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偽造郵件教育使用者, 收到可疑郵件時不要馬上相信


Sendmail security

其他

  • 設定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


  • Login