当前位置: 首页 > 工具软件 > Zimbra > 使用案例 >

zimbra邮件服务器配置,Zimbra邮件服务器无需登录任意邮箱伪造漏洞修复

步炯
2023-12-01

Zimbra邮件服务器无登陆邮箱就可发送邮件的漏洞的处理:

配置目的:用户发送邮件必须通过smtp认证,认证通过后,用户发送邮件时的发件人必须和通过认证的用户相一致,

才能发送邮件,防止伪造发件人发送邮件。

一、SMTP认证与mail from绑定

以zimbra用户修改smtpd_sender_restrictions.cf文件

#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"

1

2

3

4

5

6

7

8

9

10

11

12

#su - zimbra

$vimconf/zmconfigd/smtpd_sender_restrictions.cf

增加以下行:

%%containsVAR:zimbraServiceEnabledantivirus^reject_sender_login_mismatch%%

%%containsVAR:zimbraServiceEnabledantivirus^reject_authenticated_sender_login_mismatch%%

%%containsVAR:zimbraServiceEnabledantivirus^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"

二、导出用户

#/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

...

1

2

3

4

5

6

7

#/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.comuser1

user2@example.comuser2

...

三、生成hash文件sender.db

#/opt/zimbra/postfix/sbin/postmap /opt/zimbra/sender

1

#/opt/zimbra/postfix/sbin/postmap /opt/zimbra/sender

四、重新加载Postfix

$postfix reload

1

$postfixreload

五、计划任务生成sender.db

Crontab 每天生成一个新的sender.db,以解决后续添加邮箱用户发送邮件失败。

#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

1

2

3

4

5

6

7

#cat /opt/zimbra/smtp_auth.sh

#!/bin/bash

/opt/zimbra/bin/ldapsearch-LLL-x-D"uid=zimbra,cn=admins,cn=zimbra"-w"passwd"-Hldap://IP:389 | sed -n 's/^mail: \(\(.*\)@.*\)$/\1 \2/p' > /opt/zimbra/sender

/opt/zimbra/postfix/sbin/postmap/opt/zimbra/sender

#crontab -l

00***bash/opt/zimbra/smtp_auth.sh

感谢运维生存时间的群友上海-Clark分享。

 类似资料: