• postfix邮件服务器安全


    为防止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 
  • 相关阅读:
    Linux一些工具命令
    IDC运维_2
    计算机网络基础_1
    Shell编程基础2
    Shell编程进阶3
    注销无效的vcenter/vcsa
    Dapper中,针对MySQL的Like参数化查询
    墨天轮访谈 | 拓扑岭雷鹏:数据库新思维下的弹性压缩与内存计算
    九问 GBase | 如何看待“科技制裁”?如何助力中国数据库国产化落地?
    墨天轮访谈 | 百度云邱学达:GaiaDB如何解决云上场景的业务需求?
  • 原文地址:https://www.cnblogs.com/xd502djj/p/2425299.html
Copyright © 2020-2023  润新知