From 6fe4103fcb9f28ca1382218e0f1c52dbb89cb43d Mon Sep 17 00:00:00 2001 From: Jan-Claas Dirks <jcd@jcd.cc> Date: Thu, 24 Sep 2015 06:47:01 -0400 Subject: [PATCH] Merge branch 'master' of http://git.ispconfig.org/ispconfig/ispconfig3 --- install/lib/installer_base.lib.php | 13 ++++ server/lib/classes/monitor_tools.inc.php | 2 server/plugins-available/mail_plugin_dkim.inc.php | 10 ++- install/dist/tpl/gentoo/amavisd-ispconfig.conf.master | 18 ++++- interface/web/mail/mail_domain_edit.php | 2 install/update.php | 98 ++++++++++++++++++-------------- install/tpl/amavisd_user_config.master | 17 +++-- 7 files changed, 100 insertions(+), 60 deletions(-) diff --git a/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master b/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master index 32ee177..c05ce98 100644 --- a/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master +++ b/install/dist/tpl/gentoo/amavisd-ispconfig.conf.master @@ -94,16 +94,24 @@ $log_level = 0; # (defaults to 0) $inet_socket_port = [10024,10026]; -$forward_method = 'smtp:[127.0.0.1]:10025'; -$notify_method = 'smtp:[127.0.0.1]:10027'; + +# *:* = send to IP/HOST:incoming Port + 1 +$forward_method = 'smtp:*:*'; +$notify_method = 'smtp:*:*'; + $interface_policy{'10026'} = 'ORIGINATING'; $policy_bank{'ORIGINATING'} = { originating => 1, smtpd_discard_ehlo_keywords => ['8BITMIME'], - forward_method => 'smtp:[127.0.0.1]:10027', }; -@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 -192.168.0.0/16); + +# IP-Addresses for internal networks => load policy MYNETS +# - requires -o smtp_send_xforward_command=yes in postfix master.cf +@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 [::1] [FE80::]/10 [FEC0::]/10); + +# Allow SMTP access from IPs in @inet_acl to amvisd SMTP Port +@inet_acl = qw( 127.0.0.1 [::1] 192.168.0.0/16 ); + $signed_header_fields{'received'} = 0; # turn off signing of Received $enable_dkim_verification = 1; $enable_dkim_signing = 1; diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 3ad7bc9..c333a5e 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -175,6 +175,19 @@ return $force; } + public function reconfigure_app($service, $reconfigure_services_answer) { + $reconfigure = false; + if ($reconfigure_services_answer != 'selected') { + $reconfigure = true; + } else { + if(strtolower($this->simple_query("Reconfigure $service", array('y', 'n'), 'y') ) == 'y') { + $reconfigure = true; + } else { + swriteln("Skip reconfigure $service\n"); + } + } + return $reconfigure; + } /** Create the database for ISPConfig */ diff --git a/install/tpl/amavisd_user_config.master b/install/tpl/amavisd_user_config.master index 2e5a73d..c729a7c 100644 --- a/install/tpl/amavisd_user_config.master +++ b/install/tpl/amavisd_user_config.master @@ -76,19 +76,24 @@ $log_level = 0; # (defaults to 0) $inet_socket_port = [10024,10026]; -$forward_method = 'smtp:[127.0.0.1]:10025'; -$notify_method = 'smtp:[127.0.0.1]:10027'; + +# *:* = send to IP/HOST:incoming Port + 1 +$forward_method = 'smtp:*:*'; +$notify_method = 'smtp:*:*'; $interface_policy{'10026'} = 'ORIGINATING'; $policy_bank{'ORIGINATING'} = { originating => 1, smtpd_discard_ehlo_keywords => ['8BITMIME'], - forward_method => 'smtp:[127.0.0.1]:10027', }; -@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 -192.168.0.0/16); + +# IP-Addresses for internal networks => load policy MYNETS +# - requires -o smtp_send_xforward_command=yes in postfix master.cf +@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 [::1] [FE80::]/10 [FEC0::]/10); + +# Allow SMTP access from IPs in @inet_acl to amvisd SMTP Port +@inet_acl = qw( 127.0.0.1 [::1] 192.168.0.0/16 ); # DKIM - $enable_dkim_verification = 1; $enable_dkim_signing = 1; # load DKIM signing code $signed_header_fields{'received'} = 0; # turn off signing of Received diff --git a/install/update.php b/install/update.php index 1fec2cc..970a107 100644 --- a/install/update.php +++ b/install/update.php @@ -300,30 +300,35 @@ //} //** Shall the services be reconfigured during update -$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes','reconfigure_services'); +$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no', 'selected'), 'yes','reconfigure_services'); -if($reconfigure_services_answer == 'yes') { +if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'selected') { if($conf['services']['mail']) { + //** Configure postfix - swriteln('Configuring Postfix'); - $inst->configure_postfix('dont-create-certs'); + if($inst->reconfigure_app('Postfix', $reconfigure_services_answer)) { + swriteln('Configuring Postfix'); + $inst->configure_postfix('dont-create-certs'); + } //** Configure mailman - if($conf['mailman']['installed'] == true) { + if($conf['mailman']['installed'] == true && $inst->reconfigure_app('Mailman', $reconfigure_services_answer)) { swriteln('Configuring Mailman'); $inst->configure_mailman('update'); } //* Configure Jailkit - swriteln('Configuring Jailkit'); - $inst->configure_jailkit(); + if($inst->reconfigure_app('Jailkit', $reconfigure_services_answer)) { + swriteln('Configuring Jailkit'); + $inst->configure_jailkit(); + } - if($conf['dovecot']['installed'] == true) { + if($conf['dovecot']['installed'] == true && $inst->reconfigure_app('Dovecot', $reconfigure_services_answer)) { //* Configure dovecot swriteln('Configuring Dovecot'); $inst->configure_dovecot(); - } else { + } elseif ($conf['courier']['installed'] == true && $inst->reconfigure_app('Courier', $reconfigure_services_answer)) { //** Configure saslauthd swriteln('Configuring SASL'); $inst->configure_saslauthd(); @@ -338,27 +343,25 @@ } //** Configure Spamasassin - swriteln('Configuring Spamassassin'); - $inst->configure_spamassassin(); + if($inst->reconfigure_app('Spamassassin', $reconfigure_services_answer)) { + swriteln('Configuring Spamassassin'); + $inst->configure_spamassassin(); + } //** Configure Amavis - if($conf['amavis']['installed'] == true) { + if($conf['amavis']['installed'] == true && $inst->reconfigure_app('Amavisd', $reconfigure_services_answer)) { swriteln('Configuring Amavisd'); $inst->configure_amavis(); } //** Configure Getmail - swriteln('Configuring Getmail'); - $inst->configure_getmail(); + if ($inst->reconfigure_app('Getmail', $reconfigure_services_answer)) { + swriteln('Configuring Getmail'); + $inst->configure_getmail(); + } } - if($conf['services']['web'] && $conf['pureftpd']['installed'] == true) { - //** Configure Pureftpd - swriteln('Configuring Pureftpd'); - $inst->configure_pureftpd(); - } - - if($conf['services']['dns']) { + if($conf['services']['dns'] && $inst->reconfigure_app('DNS', $reconfigure_services_answer)) { //* Configure DNS if($conf['powerdns']['installed'] == true) { swriteln('Configuring PowerDNS'); @@ -373,37 +376,40 @@ } if($conf['services']['web']) { - if($conf['webserver']['server_type'] == 'apache'){ - //** Configure Apache - swriteln('Configuring Apache'); - $inst->configure_apache(); - //** Configure vlogger - swriteln('Configuring vlogger'); - $inst->configure_vlogger(); - } else { - //** Configure nginx - swriteln('Configuring nginx'); - $inst->configure_nginx(); + if($conf['pureftpd']['installed'] == true && $inst->reconfigure_app('Pureftpd', $reconfigure_services_answer)) { + //** Configure Pureftpd + swriteln('Configuring Pureftpd'); + $inst->configure_pureftpd(); } - //** Configure apps vhost - swriteln('Configuring Apps vhost'); - $inst->configure_apps_vhost(); - } + if($inst->reconfigure_app('Web-Server', $reconfigure_services_answer)) { + if($conf['webserver']['server_type'] == 'apache'){ + //** Configure Apache + swriteln('Configuring Apache'); + $inst->configure_apache(); - if($conf['services']['xmpp']) { + //** Configure vlogger + swriteln('Configuring vlogger'); + $inst->configure_vlogger(); + } else { + //** Configure nginx + swriteln('Configuring nginx'); + $inst->configure_nginx(); + } + + //** Configure apps vhost + swriteln('Configuring Apps vhost'); + $inst->configure_apps_vhost(); + } + } + + if($conf['services']['xmpp'] && $inst->reconfigure_app('XMPP', $reconfigure_services_answer)) { //** Configure Metronome XMPP $inst->configure_xmpp('dont-create-certs'); } - - //* Configure DBServer - swriteln('Configuring Database'); - $inst->configure_dbserver(); - - - if($conf['services']['firewall']) { + if($conf['services']['firewall'] && $inst->reconfigure_app('Firewall', $reconfigure_services_answer)) { if($conf['ufw']['installed'] == true) { //* Configure Ubuntu Firewall $conf['services']['firewall'] = true; @@ -416,6 +422,10 @@ } } + //* Configure DBServer + swriteln('Configuring Database'); + $inst->configure_dbserver(); + /* if($conf['squid']['installed'] == true) { swriteln('Configuring Squid'); diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 3c474aa..d87b921 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -210,7 +210,7 @@ $sql = "SELECT domain, dkim_private, dkim_public, dkim_selector FROM mail_domain WHERE domain_id = ?"; $rec = $app->db->queryOneRecord($sql, $app->functions->intval($_GET['id'])); $dns_key = str_replace(array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----',"\r","\n"),'',$rec['dkim_public']); - $dns_record = '.' . $rec['dkim_selector'] . '_domainkey._' . $rec['domain'] . '. 3600 TXT v=DKIM1; t=s; p=' . $dns_key; + $dns_record = $rec['dkim_selector'] . '._domainkey.' . $rec['domain'] . '. 3600 TXT v=DKIM1; t=s; p=' . $dns_key; $app->tpl->setVar('dkim_selector', $rec['dkim_selector']); $app->tpl->setVar('dkim_private', $rec['dkim_private']); $app->tpl->setVar('dkim_public', $rec['dkim_public']); diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index ce3d4bb..9b706ce 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -702,7 +702,7 @@ $mailSubject = ''; $inHeader = true; for($l = 0; $l < count($lines); $l++) { - if($lines[$l] == '') { + if(trim($lines[$l]) == '') { $inHeader = false; continue; } diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index 7ded684..0e0208a 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -122,8 +122,8 @@ $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); if ( isset($mail_config['dkim_path']) && !empty($mail_config['dkim_path']) && - isset($data['new']['dkim_private']) && - !empty($data['new']['dkim_private']) && +// isset($data['new']['dkim_private']) && +// !empty($data['new']['dkim_private']) && $mail_config['dkim_path'] != '/' ) { if (!is_dir($mail_config['dkim_path'])) { @@ -199,6 +199,10 @@ function write_dkim_key($key_file, $key_value, $key_domain) { global $app, $mailconfig; $success=false; + if ($key_file == '' || $key_value == '' || $key_domain == '') { + $app->log('DKIM internal error for domain '.$key_domain, LOGLEVEL_ERROR); + return $success; + } if ( $app->system->file_put_contents($key_file.'.private', $key_value) ) { $app->log('Saved DKIM Private-key to '.$key_file.'.private', LOGLEVEL_DEBUG); $success=true; @@ -211,7 +215,7 @@ $app->log('Saved DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); else $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); } else { - $app->log('Unable to save DKIM Privte-key to '.$key_file.'.private', LOGLEVEL_ERROR); + $app->log('Unable to save DKIM Private-key to '.$key_file.'.private', LOGLEVEL_ERROR); } return $success; } -- Gitblit v1.9.1