Skip to content

Commit 1c7afd4

Browse files
committed
reject_sender_login_mismatch after permit_mynetworks
1 parent 0cd9a93 commit 1c7afd4

File tree

9 files changed

+70
-41
lines changed

9 files changed

+70
-41
lines changed

install/dist/lib/fedora.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,10 @@ function configure_postfix($options = '')
153153
}
154154

155155
$reject_sender_login_mismatch = '';
156+
$reject_authenticated_sender_login_mismatch = '';
156157
if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
157158
$reject_sender_login_mismatch = ', reject_sender_login_mismatch';
159+
$reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, ';
158160
}
159161

160162
# placeholder includes comment char
@@ -170,6 +172,7 @@ function configure_postfix($options = '')
170172
'{rbl_list}' => $rbl_list,
171173
'{greylisting}' => $greylisting,
172174
'{reject_slm}' => $reject_sender_login_mismatch,
175+
'{reject_aslm}' => $reject_authenticated_sender_login_mismatch,
173176
$stress_adaptive_placeholder => $stress_adaptive,
174177
);
175178

install/dist/lib/gentoo.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,10 @@ public function configure_postfix($options = '')
102102
}
103103

104104
$reject_sender_login_mismatch = '';
105+
$reject_authenticated_sender_login_mismatch = '';
105106
if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
106107
$reject_sender_login_mismatch = ', reject_sender_login_mismatch';
108+
$reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, ';
107109
}
108110

109111
# placeholder includes comment char
@@ -119,6 +121,7 @@ public function configure_postfix($options = '')
119121
'{rbl_list}' => $rbl_list,
120122
'{greylisting}' => $greylisting,
121123
'{reject_slm}' => $reject_sender_login_mismatch,
124+
'{reject_aslm}' => $reject_authenticated_sender_login_mismatch,
122125
$stress_adaptive_placeholder => $stress_adaptive,
123126
);
124127

install/dist/lib/opensuse.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,10 @@ function configure_postfix($options = '')
164164
}
165165

166166
$reject_sender_login_mismatch = '';
167+
$reject_authenticated_sender_login_mismatch = '';
167168
if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
168169
$reject_sender_login_mismatch = ', reject_sender_login_mismatch';
170+
$reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, ';
169171
}
170172

171173
# placeholder includes comment char
@@ -181,6 +183,7 @@ function configure_postfix($options = '')
181183
'{rbl_list}' => $rbl_list,
182184
'{greylisting}' => $greylisting,
183185
'{reject_slm}' => $reject_sender_login_mismatch,
186+
'{reject_aslm}' => $reject_authenticated_sender_login_mismatch,
184187
$stress_adaptive_placeholder => $stress_adaptive,
185188
);
186189

install/lib/installer_base.lib.php

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,8 +1077,10 @@ public function configure_postfix($options = '') {
10771077
}
10781078

10791079
$reject_sender_login_mismatch = '';
1080+
$reject_authenticated_sender_login_mismatch = '';
10801081
if (isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
10811082
$reject_sender_login_mismatch = ',reject_sender_login_mismatch,';
1083+
$reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, ';
10821084
}
10831085

10841086
# placeholder includes comment char
@@ -1095,8 +1097,8 @@ public function configure_postfix($options = '') {
10951097
}
10961098

10971099
unset($server_ini_array);
1098-
1099-
$tmp = str_replace('.','\.',$conf['hostname']);
1100+
1101+
$myhostname = str_replace('.','\.',$conf['hostname']);
11001102

11011103
$postconf_placeholders = array('{config_dir}' => $config_dir,
11021104
'{vmail_mailbox_base}' => $cf['vmail_mailbox_base'],
@@ -1105,7 +1107,8 @@ public function configure_postfix($options = '') {
11051107
'{rbl_list}' => $rbl_list,
11061108
'{greylisting}' => $greylisting,
11071109
'{reject_slm}' => $reject_sender_login_mismatch,
1108-
'{myhostname}' => $tmp,
1110+
'{reject_aslm}' => $reject_authenticated_sender_login_mismatch,
1111+
'{myhostname}' => $myhostname,
11091112
$stress_adaptive_placeholder => $stress_adaptive,
11101113
'{reject_unknown_client_hostname}' => $reject_unknown_client_hostname,
11111114
'{reject_unknown_helo_hostname}' => $reject_unknown_helo_hostname,
@@ -1692,24 +1695,30 @@ public function configure_rspamd() {
16921695
if(! isset($mail_config['reject_sender_login_mismatch'])) {
16931696
$mail_config['reject_sender_login_mismatch'] = 'n';
16941697
}
1695-
$options = explode(", ", exec("postconf -h smtpd_sender_restrictions"));
1698+
$options = explode(",", exec("postconf -h smtpd_sender_restrictions"));
16961699
$new_options = array();
16971700
foreach ($options as $key => $value) {
1698-
if (trim($value) == '') continue;
1701+
if (($value = trim($value)) == '') continue;
16991702
if (preg_match('/tag_as_(originating|foreign)\.re/', $value)) {
17001703
continue;
17011704
}
1702-
if (!preg_match('/reject_(authenticated_)?sender_login_mismatch/', $value)) {
1703-
$new_options[] = trim($value);
1705+
if (preg_match('/reject_(authenticated_)?sender_login_mismatch/', $value)) {
1706+
continue;
17041707
}
1708+
$new_options[] = $value;
17051709
}
17061710
if ($mail_config['reject_sender_login_mismatch'] == 'y') {
1707-
reset($new_options);
1708-
array_splice($new_options, 0, 0, array('reject_sender_login_mismatch'));
1711+
array_splice($new_options, 0, 0, array('reject_authenticated_sender_login_mismatch'));
1712+
1713+
for ($i = 0; isset($new_options[$i]); $i++) {
1714+
if ($new_options[$i] == 'permit_mynetworks') {
1715+
array_splice($new_options, $i+1, 0, array('reject_sender_login_mismatch'));
1716+
break;
1717+
}
1718+
}
17091719
}
17101720
exec("postconf -e 'smtpd_sender_restrictions = ".implode(", ", $new_options)."'");
17111721

1712-
17131722
$options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions"));
17141723
$new_options = array();
17151724
foreach ($options as $value) {

install/tpl/debian_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_ma
2727
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions
2828
smtpd_helo_required = yes
2929
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit
30-
smtpd_sender_restrictions = {reject_slm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
30+
smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
3131
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
3232
smtpd_etrn_restrictions = permit_mynetworks, reject
3333
smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit

install/tpl/fedora_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_ma
2323
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions
2424
smtpd_helo_required = yes
2525
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit
26-
smtpd_sender_restrictions = {reject_slm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
26+
smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
2727
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
2828
smtpd_etrn_restrictions = permit_mynetworks, reject
2929
smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit

install/tpl/gentoo_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_ma
2222
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions
2323
smtpd_helo_required = yes
2424
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit
25-
smtpd_sender_restrictions = {reject_slm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
25+
smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
2626
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
2727
smtpd_etrn_restrictions = permit_mynetworks, reject
2828
smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit

install/tpl/opensuse_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_ma
2525
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions
2626
smtpd_helo_required = yes
2727
smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit
28-
smtpd_sender_restrictions = {reject_slm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
28+
smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf
2929
smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit
3030
smtpd_etrn_restrictions = permit_mynetworks, reject
3131
smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit

0 commit comments

Comments
 (0)