Qmail系統下防止濫用mail relay方案(4)

來源:互聯網
上載者:User
relay的意思是:伺服器接受用戶端的smtp請求,將用戶端發往第三方的郵件進行轉寄。 qmail下控制relay很簡單,只要用戶端接入的smtp進程的環境變數裡包含(RELAYCLIENT="")就允許relay ,否則拒收。實現方法是在/etc/tcp.smtp 裡對需要relay的IP逐條設定(RELAYCLIENT=""),然後用tcprules 建置規則表。因為本文要實現SMTP認證後的relay ,不需要對任何IP進行預先設定,所以預設規則設定成"只對本伺服器relay"。/etc/tcp.smtp內容應該為:

  127.0.0.1:allow,RELAYCLIENT=""
  :allow

  重建新的tcp.smtp.cdb檔案:

  /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

  5.設定/home/vpopmail/bin/vchkpw的SetUID和SetGID

  這點很重要,否則認證無法通過。這是因為smtpd 的進程是由qmaild 執行的。而密碼驗證程式原來只使用於pop3進程,分別由root或vpopmail執行,為的是讀shadow或資料庫中的密碼,並取出使用者的郵件目錄。這些操作qmaild 都沒有許可權去做。如果smtp進程要調用密碼驗證程式,則必須要使用 setuid 和setgid 。其實這點大可放心,這兩個密碼驗證程式都是帶原始碼的,本身非常安全,只需要放在安全的目錄裡就可以了(設定其他使用者除qmaild 可執行外都沒有許可權執行;其實如果沒有其他SHELL帳戶,也就不用這麼麻煩了)。

  chmod 4755 /home/vpopmail/bin/vchkpw

  6.修改smtpd啟動命令列

  #!/bin/sh
  QMAILDUID=`id -u qmaild`
  NOFILESGID=`id -g qmaild`
  exec /usr/local/bin/softlimit -m 2000000
  /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb
  -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

  改為:

  #!/bin/sh
  QMAILDUID=qmaild
  NOFILESGID=nofiles
  exec /usr/local/bin/softlimit -m 2000000
  /usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /etc/tcp.smtp.cdb
  -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd
  /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1

  7.其他一些設定:

  設定vpopmail的使用者目錄直到/目錄都被任何使用者可以讀取;

  8.重新啟動qmail

  /etc/rc.d/init.d/qmailstart stop
  /etc/rc.d/init.d/qmailstart start

  9.用戶端測試

  在用戶端上使用 OutlookExpress 和 Netscape 4.6 以上版本的郵件軟體進行檢驗。

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。