postfix郵件伺服器安全

來源:互聯網
上載者:User

為防止postfix郵件伺服器被人冒用,使用它發送偽造的垃圾郵件,進行了以下實驗,添加了smtp驗證。

分析smtp發送
把內部IP從郵件 的信任網路中去掉, 然後測試郵件發送(依靠郵件寄件者)

 

  1. root@slackbox[~]# telnet mail.XXXXXX.com 25 
  2. Trying 10.70.253.52... 
  3. Connected to mail.XXXXXX.com. 
  4. Escape character is '^]'. 
  5. 220 mail.XXXXXX.com ESMTP Postfix 
  6. mail from: abc@XXXXXX.com #直接發起郵件, 未進行SMTP認證,並偽造寄件者為abc@XXXXXX.com, abc為實際不存在的使用者 
  7. 250 2.1.0 Ok #伺服器返回OK, 說明伺服器未對sender進行認證 
  8. rcpt to: jhuang@XXXXXX.com  #指定收件者為我本人 
  9. 250 2.1.5 Ok #伺服器返回OK 
  10. data #寫郵件 
  11. 354 End data with <CR><LF>.<CR><LF> 
  12. sfafafdsfafasfasfas 
  13. afsdasfsfasfsafas 
  14. . #結束寫郵件並發送 
  15. 250 2.0.0 Ok: queued as 6C0FC3D5288 #伺服器返回郵件已進入發送隊列 

同時, 郵件伺服器的日誌顯示,郵件已經發送:status=sent,上述實驗表明了 郵件伺服器沒有經過smtp認證。

增加smtp認證, 堵住漏洞
Postfix配置

 

  1. #指定寄件者認證登入 
  2. smtpd_sender_login_maps = ldap:/etc/postfix/ldap-users.cf, 
  3. ldap:/etc/postfix/ldap-mailbox.cf 
  4. #不允許不在列表中的寄件者 
  5. smtpd_reject_unlisted_sender = yes 
  6. #需要helo資訊 
  7. smtp_helo_required = yes 
  8. smtpd_recipient_restrictions 段增加下面內容: 
  9. reject_sender_login_mismatch 
  10. reject_authenticated_sender_login_mismatch, 
  11. reject_unauthenticated_sender_login_mismatch, 
  12. reject_non_fqdn_hostname, 
  13. reject_non_fqdn_sender, 
  14. reject_non_fqdn_recipient, 
  15. reject_invalid_hostname, 

測試一: 試圖不通過驗證直接發郵件

 

  1. #telnet mail.XXXXXX.com 25 
  2. Trying 10.70.253.52... 
  3. connected to mail.XXXXXX.com. 
  4. Escape character is '^]'. 
  5. 220 "mail.XXXXXX.com Mail System" 
  6. mail from: jhuang@XXXXXX.com 
  7. 50 2.1.0 Ok 
  8. rcpt to: jhuang@XXXXXX.com 
  9. 553 5.7.1 <jhuang@XXXXXX.com>: Sender address rejected: not logged in 

證明發送郵件需要作SMTP認證, 沒有認證的不允許發送郵件。

測試二: 試圖SMTP認證, 並以偽造不存在的郵件地址發送郵件

 

  1. # telnet mail.XXXXXX.com 25 
  2. Trying 10.70.253.52... 
  3. Connected to mail.XXXXXX.com. 
  4. Escape character is '^]'. 
  5. 220 "mail.XXXXXX.com Mail System" 
  6. auth login 
  7. 334 VXNlcm5hbWU6 
  8. amh1YW5n 
  9. 334 UGFzc3dvcsfafafafmQ6 
  10. bG92ZXdpbm5pZXlpbg== 
  11. 235 2.7.0 Authentication successful 
  12. mail from: abc@XXXXXX.com 
  13. 250 2.1.0 Ok 
  14. rcpt to: jhuang@XXXXXX.com 
  15. 550 5.1.0 <abc@XXXXXX.com>: Sender address rejected: User unknown in local recipient tabl 

證明不允許偽造不存在的本地郵件地址發郵件

測試三:試圖通過SMTP認證, 並仿冒他人郵件地址發送郵件

 

  1. # telnet mail.XXXXXX.com 25 
  2. Trying 10.70.253.52... 
  3. Connected to mail.XXXXXX.com. 
  4. 220 "mail.XXXXXX.com Mail System" 
  5. auth login 
  6. 334 VXNlcm5hbWU6 
  7. amh1YW5n 
  8. 334 UGFzlllllkokopkc3dvcmQ6 
  9. bG92ZXdpbm5pZXlpbg== 
  10. 235 2.7.0 Authentication successful 
  11. mail from: lxiong@XXXXXX.com 
  12. 250 2.1.0 Ok 
  13. rcpt to: jhuang@XXXXXX.com 
  14. 553 5.7.1 <lxiong@XXXXXX.com>: Sender address rejected: not owned by user jhuang 


證明登入使用者與郵件發送人不一致時, 禁止發送郵件

測試四:禁止漏洞轉發匿名郵件

 

  1. #telnet mail.XXXXXX.com 25 
  2. Trying 10.70.253.52... 
  3. Connected to mail.XXXXXX.com. 
  4. Escape character is '^]'. 
  5. 220 mail.XXXXXX.com ESMTP Postfix 
  6. mail from: address1@163.com 
  7. 250 2.1.0 Ok 
  8. rcpt to: address2@yeah.net 
  9. 554 5.7.1 <address2@yeah.net>: Recipient address rejected: Access denied 

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.