Skip to content

Commit 20f478f

Browse files
author
Dominik
committed
Keep reject-sender-mismatch-setting also when updating
Fixed missing parts for greylist, rbl in gentoo
1 parent 79ec423 commit 20f478f

File tree

8 files changed

+60
-15
lines changed

8 files changed

+60
-15
lines changed

install/dist/lib/fedora.lib.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,23 +198,28 @@ function configure_postfix($options = '')
198198
}
199199
}
200200
unset($rbl_hosts);
201-
unset($server_ini_array);
202201

203202
//* If Postgrey is installed, configure it
204203
$greylisting = '';
205204
if($conf['postgrey']['installed'] == true) {
206-
$greylisting = 'check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf';
205+
$greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf';
207206
}
208207

209-
//* These postconf commands will be executed on installation and update
208+
$reject_sender_login_mismatch = '';
209+
if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
210+
$reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch';
211+
}
212+
unset($server_ini_array);
213+
210214
$postconf_placeholders = array('{config_dir}' => $config_dir,
211215
'{vmail_mailbox_base}' => $cf['vmail_mailbox_base'],
212216
'{vmail_userid}' => $cf['vmail_userid'],
213217
'{vmail_groupid}' => $cf['vmail_groupid'],
214218
'{rbl_list}' => $rbl_list,
215219
'{greylisting}' => $greylisting,
220+
'{reject_slm}' => $reject_sender_login_mismatch,
216221
);
217-
222+
218223
$postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_postfix.conf.master', 'tpl/fedora_postfix.conf.master');
219224
$postconf_tpl = strtr($postconf_tpl, $postconf_placeholders);
220225
$postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines

install/dist/lib/gentoo.lib.php

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,40 @@ public function configure_postfix($options = '')
8181
}
8282

8383
//* These postconf commands will be executed on installation and update
84+
$server_ini_rec = $this->db->queryOneRecord("SELECT config FROM `" . $this->db->quote($conf["mysql"]["database"]) . "`.`server` WHERE server_id = ".$conf['server_id']);
85+
$server_ini_array = ini_to_array(stripslashes($server_ini_rec['config']));
86+
unset($server_ini_rec);
87+
88+
//* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update
89+
$rbl_list = '';
90+
if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') {
91+
$rbl_hosts = explode(",", str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list']));
92+
foreach ($rbl_hosts as $key => $value) {
93+
$rbl_list .= ", reject_rbl_client ". $value;
94+
}
95+
}
96+
unset($rbl_hosts);
97+
98+
//* If Postgrey is installed, configure it
99+
$greylisting = '';
100+
if($conf['postgrey']['installed'] == true) {
101+
$greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf';
102+
}
103+
104+
$reject_sender_login_mismatch = '';
105+
if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
106+
$reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch';
107+
}
108+
unset($server_ini_array);
109+
84110
$postconf_placeholders = array('{config_dir}' => $config_dir,
85111
'{vmail_mailbox_base}' => $cf['vmail_mailbox_base'],
86112
'{vmail_userid}' => $cf['vmail_userid'],
87113
'{vmail_groupid}' => $cf['vmail_groupid'],
88-
'{rbl_list}' => $rbl_list);
114+
'{rbl_list}' => $rbl_list,
115+
'{greylisting}' => $greylisting,
116+
'{reject_slm}' => $reject_sender_login_mismatch,
117+
);
89118

90119
$postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/gentoo_postfix.conf.master', 'tpl/gentoo_postfix.conf.master');
91120
$postconf_tpl = strtr($postconf_tpl, $postconf_placeholders);

install/dist/lib/opensuse.lib.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,23 +228,28 @@ function configure_postfix($options = '')
228228
}
229229
}
230230
unset($rbl_hosts);
231-
unset($server_ini_array);
232231

233232
//* If Postgrey is installed, configure it
234233
$greylisting = '';
235234
if($conf['postgrey']['installed'] == true) {
236-
$greylisting = 'check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf';
235+
$greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf';
237236
}
238237

239-
//* These postconf commands will be executed on installation and update
238+
$reject_sender_login_mismatch = '';
239+
if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
240+
$reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch';
241+
}
242+
unset($server_ini_array);
243+
240244
$postconf_placeholders = array('{config_dir}' => $config_dir,
241245
'{vmail_mailbox_base}' => $cf['vmail_mailbox_base'],
242246
'{vmail_userid}' => $cf['vmail_userid'],
243247
'{vmail_groupid}' => $cf['vmail_groupid'],
244248
'{rbl_list}' => $rbl_list,
245249
'{greylisting}' => $greylisting,
250+
'{reject_slm}' => $reject_sender_login_mismatch,
246251
);
247-
252+
248253
$postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_postfix.conf.master', 'tpl/opensuse_postfix.conf.master');
249254
$postconf_tpl = strtr($postconf_tpl, $postconf_placeholders);
250255
$postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines

install/lib/installer_base.lib.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -748,20 +748,26 @@ public function configure_postfix($options = '') {
748748
}
749749
}
750750
unset($rbl_hosts);
751-
unset($server_ini_array);
752751

753752
//* If Postgrey is installed, configure it
754753
$greylisting = '';
755754
if($conf['postgrey']['installed'] == true) {
756-
$greylisting = 'check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf';
755+
$greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf';
756+
}
757+
758+
$reject_sender_login_mismatch = '';
759+
if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) {
760+
$reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch';
757761
}
762+
unset($server_ini_array);
758763

759764
$postconf_placeholders = array('{config_dir}' => $config_dir,
760765
'{vmail_mailbox_base}' => $cf['vmail_mailbox_base'],
761766
'{vmail_userid}' => $cf['vmail_userid'],
762767
'{vmail_groupid}' => $cf['vmail_groupid'],
763768
'{rbl_list}' => $rbl_list,
764769
'{greylisting}' => $greylisting,
770+
'{reject_slm}' => $reject_sender_login_mismatch,
765771
);
766772

767773
$postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_postfix.conf.master', 'tpl/debian_postfix.conf.master');

install/tpl/debian_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf
2424
relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf
2525
smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf
2626
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
27-
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
27+
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re{reject_slm}, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
2828
smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf
2929
smtpd_client_message_rate_limit = 100
3030
maildrop_destination_concurrency_limit = 1

install/tpl/fedora_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf
2121
relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf
2222
smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf
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
24-
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
24+
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re{reject_slm}, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
2525
smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf
2626
smtpd_client_message_rate_limit = 100
2727
maildrop_destination_concurrency_limit = 1

install/tpl/gentoo_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf
2020
relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf
2121
smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf
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
23-
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
23+
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re{reject_slm}, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
2424
smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf
2525
smtpd_client_message_rate_limit = 100
2626
maildrop_destination_concurrency_limit = 1

install/tpl/opensuse_postfix.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf
2323
relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf
2424
smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf
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
26-
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
26+
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re{reject_slm}, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
2727
smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf
2828
smtpd_client_message_rate_limit = 100
2929
maildrop_destination_concurrency_limit = 1

0 commit comments

Comments
 (0)