Zimbra邮件服务器无登陆邮箱就可发送邮件的漏洞的处理:
配置目的:用户发送邮件必须通过smtp认证,认证通过后,用户发送邮件时的发件人必须和通过认证的用户相一致,
才能发送邮件,防止伪造发件人发送邮件。文章源自运维生存时间-https://www.ttlsa.com/yun_wei_an_li/fix-zimbra-without-login-send-mails-bugs/
一、SMTP认证与mail from绑定
以zimbra用户修改smtpd_sender_restrictions.cf文件文章源自运维生存时间-https://www.ttlsa.com/yun_wei_an_li/fix-zimbra-without-login-send-mails-bugs/
#su - zimbra $vim conf/zmconfigd/smtpd_sender_restrictions.cf 增加以下行: %%contains VAR:zimbraServiceEnabled antivirus^ reject_sender_login_mismatch%% %%contains VAR:zimbraServiceEnabled antivirus^ reject_authenticated_sender_login_mismatch%% %%contains VAR:zimbraServiceEnabled antivirus^ reject_unauthenticated_sender_login_mismatch%% $postconf -e "smtpd_sender_login_maps=hash:/data/zimbra/sender"
执行完,可以从"/opt/zimbra/postfix/conf/main.cf"文件最后一行看到"smtpd_sender_login_maps = hash:/opt/zimbra/sender"文章源自运维生存时间-https://www.ttlsa.com/yun_wei_an_li/fix-zimbra-without-login-send-mails-bugs/
二、导出用户
#/opt/zimbra/bin/ldapsearch -LLL -x -D "uid=zimbra,cn=admins,cn=zimbra" -w "passwd" -H ldap://IP:389 | sed -n 's/^mail: \(\(.*\)@.*\)$/\1 \2/p' > /opt/zimbra/sender example: ... user1@example.com user1 user2@example.com user2 ...
三、生成hash文件sender.db
#/opt/zimbra/postfix/sbin/postmap /opt/zimbra/sender
四、重新加载Postfix
$postfix reload
五、计划任务生成sender.db
Crontab 每天生成一个新的sender.db,以解决后续添加邮箱用户发送邮件失败。文章源自运维生存时间-https://www.ttlsa.com/yun_wei_an_li/fix-zimbra-without-login-send-mails-bugs/
#cat /opt/zimbra/smtp_auth.sh #!/bin/bash /opt/zimbra/bin/ldapsearch -LLL -x -D "uid=zimbra,cn=admins,cn=zimbra" -w "passwd" -H ldap://IP:389 | sed -n 's/^mail: \(\(.*\)@.*\)$/\1 \2/p' > /opt/zimbra/sender /opt/zimbra/postfix/sbin/postmap /opt/zimbra/sender #crontab -l 0 0 * * * bash /opt/zimbra/smtp_auth.sh
感谢运维生存时间的群友上海-Clark分享。文章源自运维生存时间-https://www.ttlsa.com/yun_wei_an_li/fix-zimbra-without-login-send-mails-bugs/ 文章源自运维生存时间-https://www.ttlsa.com/yun_wei_an_li/fix-zimbra-without-login-send-mails-bugs/

评论