diff --git a/install/dist/lib/centos52.lib.php b/install/dist/lib/centos52.lib.php index f4aa4dfe9d676663b31ab348e4b82de150b94793..7f8901b1af3d5def8bb649ef8d62c8411a2abdf3 100644 --- a/install/dist/lib/centos52.lib.php +++ b/install/dist/lib/centos52.lib.php @@ -141,13 +141,25 @@ class installer extends installer_dist { } // Append the configuration for amavisd to the master.cf file - if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf', $conf["postfix"]["config_dir"].'/master.cf~'); - $content = rf($conf["postfix"]["config_dir"].'/master.cf'); + if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~'); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); // Only add the content if we had not addded it before - if(!stristr($content, "127.0.0.1:10025")) { + if(!preg_match('/^amavis\s+/m', $content)) { unset($content); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', "tpl/master_cf_amavis.master"); - af($conf["postfix"]["config_dir"].'/master.cf', $content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); } unset($content); diff --git a/install/dist/lib/centos53.lib.php b/install/dist/lib/centos53.lib.php index 93083b518865b19fd624f6354959f19e25760d33..ee586f78d5332ec62a4e47abce56b215f7d2aa84 100644 --- a/install/dist/lib/centos53.lib.php +++ b/install/dist/lib/centos53.lib.php @@ -142,13 +142,25 @@ class installer extends installer_dist { } // Append the configuration for amavisd to the master.cf file - if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf', $conf["postfix"]["config_dir"].'/master.cf~'); - $content = rf($conf["postfix"]["config_dir"].'/master.cf'); + if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~'); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); // Only add the content if we had not addded it before - if(!stristr($content, "127.0.0.1:10025")) { + if(!preg_match('/^amavis\s+/m', $content)) { unset($content); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', "tpl/master_cf_amavis.master"); - af($conf["postfix"]["config_dir"].'/master.cf', $content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); } unset($content); diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 3d86492dca4bafdcd674dd274da184bc3c2b0c22..bbcdfa68fa4cea5f7d568a81d8302b579de00032 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -497,13 +497,25 @@ class installer_dist extends installer_base { } // Append the configuration for amavisd to the master.cf file - if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf', $conf["postfix"]["config_dir"].'/master.cf~'); - $content = rf($conf["postfix"]["config_dir"].'/master.cf'); + if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~'); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); // Only add the content if we had not addded it before - if(!stristr($content, "127.0.0.1:10025")) { + if(!preg_match('/^amavis\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) { unset($content); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', "tpl/master_cf_amavis.master"); - af($conf["postfix"]["config_dir"].'/master.cf', $content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); } unset($content); diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index 7078f83dabd8e826334e8c0ac5bf81fb5020fc82..e7aac8c61fb9c9612bc331427f800d634f7e243b 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -332,14 +332,25 @@ class installer extends installer_base caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } - //* Append the configuration for amavisd to the master.cf file + // Append the configuration for amavisd to the master.cf file $content = rf($conf['postfix']['config_dir'].'/master.cf'); - - if(!stristr($content, '127.0.0.1:10025')) //* Only add the content if we had not addded it before - { + // Only add the content if we had not addded it before + if(!preg_match('/^amavis\s+/m', $content)) { unset($content); $content = $this->get_template_file('master_cf_amavis', true); af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) { + unset($content); + $content = $this->get_template_file('master_cf_amavis10025', true); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) { + unset($content); + $content = $this->get_template_file('master_cf_amavis10027', true); + af($conf['postfix']['config_dir'].'/master.cf', $content); } unset($content); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 9ec6bcf4711d6f7c90cb4f5ec42948d35265ca7c..a052615e43f3366052e55898b9d78516a0e04520 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -533,11 +533,23 @@ class installer_dist extends installer_base { // Append the configuration for amavisd to the master.cf file if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf', $conf["postfix"]["config_dir"].'/master.cf~'); $content = rf($conf["postfix"]["config_dir"].'/master.cf'); - // Only add the content if we had not addded it before - if(!stristr($content, "127.0.0.1:10025")) { + // Only add the content if we had not addded it before + if(!preg_match('/^amavis\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) { unset($content); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', "tpl/master_cf_amavis.master"); - af($conf["postfix"]["config_dir"].'/master.cf', $content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); } unset($content); diff --git a/install/install.php b/install/install.php index 75a8b70dda83b7beb422a50b2d317e45e5569a69..22bd4a780412d1ac6827c73566fa5ba0cb40b0e3 100644 --- a/install/install.php +++ b/install/install.php @@ -344,6 +344,8 @@ if($install_mode == 'standard') { if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'restart').' &> /dev/null'); if($conf['ufw']['installed'] == true && $conf['ufw']['init_script'] != '') system($inst->getinitcommand($conf['ufw']['init_script'], 'restart').' &> /dev/null'); +} else { + //* In expert mode, we select the services in the following steps, only db is always available $conf['services']['mail'] = false; $conf['services']['web'] = false; diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index cdb0a5368070834bbd53f4c378343063af914ad2..61a1fbaabe54118444559e31d5e102010f7582ee 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -669,11 +669,11 @@ class installer_base { //* postfix-dkim $full_file_name=$config_dir.'/tag_as_originating.re'; - if(is_file($full_file_name)) copy($full_file_name, $config_dir.$configfile.'~'); + if(is_file($full_file_name)) copy($full_file_name, $full_file_name.'~'); wf($full_file_name, '/^/ FILTER amavis:[127.0.0.1]:10026'); $full_file_name=$config_dir.'/tag_as_foreign.re'; - if(is_file($full_file_name)) copy($full_file_name, $config_dir.$configfile.'~'); + if(is_file($full_file_name)) copy($full_file_name, $full_file_name.'~'); wf($full_file_name, '/^/ FILTER amavis:[127.0.0.1]:10024'); //* Changing mode and group of the new created config files. @@ -1040,10 +1040,22 @@ class installer_base { if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~'); $content = rf($conf['postfix']['config_dir'].'/master.cf'); // Only add the content if we had not addded it before - if(!stristr($content, '127.0.0.1:10025')) { + if(!preg_match('/^amavis\s+unix\s+/m', $content)) { unset($content); $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master'); af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10025\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + } + if(!preg_match('/^127.0.0.1:10027\s+/m', $content)) { + unset($content); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master'); + af($conf['postfix']['config_dir'].'/master.cf', $content); } unset($content); @@ -1051,18 +1063,18 @@ class installer_base { exec('adduser clamav amavis'); // Create the director for DKIM-Keys - mkdir("/var/lib/amavis/dkim", 0750); + if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750, true); // get shell-user for amavis $amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd'); if(!empty($amavis_user)) { $amavis_user=rtrim($amavis_user, ":"); - exec('chown '.$amavis_user.'/var/lib/amavis/dkim'); + exec('chown '.$amavis_user.' /var/lib/amavis/dkim'); } // get shell-group for amavis $amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group'); if(!empty($amavis_group)) { $amavis_group=rtrim($amavis_group, ":"); - exec('chgrp '.$amavis_group.'/var/lib/amavis/dkim'); + exec('chgrp '.$amavis_group.' /var/lib/amavis/dkim'); } } diff --git a/install/tpl/master_cf_amavis.master b/install/tpl/master_cf_amavis.master index 2dd76f2e4554fd9962294f9f9038bef48d84c19d..54478f3c8046593b09fe569d24894ab7d94e8994 100644 --- a/install/tpl/master_cf_amavis.master +++ b/install/tpl/master_cf_amavis.master @@ -3,16 +3,3 @@ amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -127.0.0.1:10025 inet n - - - - smtpd - -o content_filter= - -o local_recipient_maps= - -o relay_recipient_maps= - -o smtpd_restriction_classes= - -o smtpd_client_restrictions= - -o smtpd_helo_restrictions= - -o smtpd_sender_restrictions= - -o smtpd_recipient_restrictions=permit_mynetworks,reject - -o mynetworks=127.0.0.0/8 - -o strict_rfc821_envelopes=yes - -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks - diff --git a/install/tpl/master_cf_amavis10025.master b/install/tpl/master_cf_amavis10025.master new file mode 100644 index 0000000000000000000000000000000000000000..fb0481b39052dc00e9389d3586eb9bb943a24a30 --- /dev/null +++ b/install/tpl/master_cf_amavis10025.master @@ -0,0 +1,15 @@ + +127.0.0.1:10025 inet n - n - - smtpd + -o content_filter= + -o local_recipient_maps= + -o relay_recipient_maps= + -o smtpd_restriction_classes= + -o smtpd_client_restrictions= + -o smtpd_helo_restrictions= + -o smtpd_sender_restrictions= + -o smtpd_recipient_restrictions=permit_mynetworks,reject + -o mynetworks=127.0.0.0/8 + -o strict_rfc821_envelopes=yes + -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks + -o smtp_send_xforward_command=yes + diff --git a/install/tpl/master_cf_amavis10027.master b/install/tpl/master_cf_amavis10027.master new file mode 100644 index 0000000000000000000000000000000000000000..f24a8b2b1eeab2d2e6b0a1320da6e25b5874bbaa --- /dev/null +++ b/install/tpl/master_cf_amavis10027.master @@ -0,0 +1,18 @@ + +127.0.0.1:10027 inet n - n - - smtpd + -o content_filter= + -o local_recipient_maps= + -o relay_recipient_maps= + -o smtpd_restriction_classes= + -o smtpd_client_restrictions= + -o smtpd_helo_restrictions= + -o smtpd_sender_restrictions= + -o smtpd_recipient_restrictions=permit_mynetworks,reject + -o mynetworks=127.0.0.0/8 + -o strict_rfc821_envelopes=yes + -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks + -o smtp_send_xforward_command=yes + -o milter_default_action=accept + -o milter_macro_daemon_name=ORIGINATING + -o smtpd_milters=inet:127.0.0.1:4445 +