From c97bed4466ec457c9b9bb80f50b73fb3765aafea Mon Sep 17 00:00:00 2001
From: florian030 <florian@schaal-24.de>
Date: Wed, 25 Jul 2018 16:59:12 +0200
Subject: [PATCH] show active for additional php-versions (#5090)

---
 install/dist/lib/fedora.lib.php               | 21 +++++++++++++++++++
 install/dist/lib/gentoo.lib.php               | 21 +++++++++++++++++++
 install/dist/lib/opensuse.lib.php             | 21 +++++++++++++++++++
 install/tpl/debian_postfix.conf.master        |  6 ++++++
 install/tpl/fedora_postfix.conf.master        |  6 ++++++
 install/tpl/gentoo_postfix.conf.master        |  6 ++++++
 install/tpl/opensuse_postfix.conf.master      |  6 ++++++
 install/tpl/server.ini.master                 |  2 +-
 .../web/admin/lib/lang/de_server_php_list.lng |  1 +
 .../web/admin/lib/lang/en_server_php_list.lng |  1 +
 interface/web/admin/list/server_php.list.php  |  9 ++++++++
 .../web/admin/templates/server_php_list.htm   |  5 ++++-
 12 files changed, 103 insertions(+), 2 deletions(-)

diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index f1d57f9c83..8cf13ff19f 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -53,6 +53,14 @@ class installer_dist extends installer_base {
 		$cf = $conf['postfix'];
 		$config_dir = $cf['config_dir'];
 
+		exec('postconf mail_version', $ret);
+		$postfix_version=str_replace('mail_version = ', '', $ret[0]);
+		unset($ret);
+		exec('openssl version', $ret);
+		$openssl_version=$ret[0];
+		unset($ret);
+		$use_pfs=@(version_compare($openssl_version, 'OpenSSL 0.9', '>=') && version_compare($postfix_version, '2.6', '>='))?true:false;
+
 		if(!is_dir($config_dir)){
 			$this->error("The postfix configuration directory '$config_dir' does not exist.");
 		}
@@ -163,6 +171,19 @@ class installer_dist extends installer_base {
 			'{greylisting}' => $greylisting,
 			'{reject_slm}' => $reject_sender_login_mismatch,
 		);
+
+		//* If PFS is possible, configure it
+		if($use_pfs && !file_exists($config_dir.'/dh_512.pem')) exec('openssl gendh -out '.$config_dir.'/dh_512.pem -2 512');
+		if($use_pfs && !file_exists($config_dir.'/dh_2048.pem')) exec('openssl gendh -out '.$config_dir.'/dh_2048.pem -2 2048');
+		if($use_pfs && file_exists($config_dir.'/dh_512.pem') && file_exists($config_dir.'/dh_2048.pem')) {
+			$postconf_placeholders = array_merge($postconf_placeholders, array(
+				'{smtpd_tls_dh512_param_file}' => $config_dir.'/dh_512.pem',
+				'{smtpd_tls_dh1024_param_file}' => $config_dir.'/dh_2048.pem' ));
+		} else {
+			$postconf_placeholders = array_merge($postconf_placeholders, array(
+				'{smtpd_tls_dh512_param_file}' => '',
+				'{smtpd_tls_dh1024_param_file}' => ''));
+		}
 		
 		$postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_postfix.conf.master', 'tpl/fedora_postfix.conf.master');
 		$postconf_tpl = strtr($postconf_tpl, $postconf_placeholders);
diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php
index af692b1689..17c1797ebe 100644
--- a/install/dist/lib/gentoo.lib.php
+++ b/install/dist/lib/gentoo.lib.php
@@ -54,6 +54,14 @@ class installer extends installer_base
 		$cf = $conf['postfix'];
 		$config_dir = $cf['config_dir'];
 
+		exec('postconf mail_version', $ret);
+		$postfix_version=str_replace('mail_version = ', '', $ret[0]);
+		unset($ret);
+		exec('openssl version', $ret);
+		$openssl_version=$ret[0];
+		unset($ret);
+		$use_pfs=@(version_compare($openssl_version, 'OpenSSL 0.9', '>=') && version_compare($postfix_version, '2.6', '>='))?true:false;
+
 		if(!is_dir($config_dir)){
 			$this->error("The postfix configuration directory '$config_dir' does not exist.");
 		}
@@ -116,6 +124,19 @@ class installer extends installer_base
 			'{reject_slm}' => $reject_sender_login_mismatch,
 		);
 
+		//* If PFS is possible, configure it
+		if($use_pfs && !file_exists($config_dir.'/dh_512.pem')) exec('openssl gendh -out '.$config_dir.'/dh_512.pem -2 512');
+		if($use_pfs && !file_exists($config_dir.'/dh_2048.pem')) exec('openssl gendh -out '.$config_dir.'/dh_2048.pem -2 2048');
+		if($use_pfs && file_exists($config_dir.'/dh_512.pem') && file_exists($config_dir.'/dh_2048.pem')) {
+			$postconf_placeholders = array_merge($postconf_placeholders, array(
+				'{smtpd_tls_dh512_param_file}' => $config_dir.'/dh_512.pem',
+				'{smtpd_tls_dh1024_param_file}' => $config_dir.'/dh_2048.pem' ));
+		} else {
+			$postconf_placeholders = array_merge($postconf_placeholders, array(
+				'{smtpd_tls_dh512_param_file}' => '',
+				'{smtpd_tls_dh1024_param_file}' => ''));
+		}
+
 		$postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/gentoo_postfix.conf.master', 'tpl/gentoo_postfix.conf.master');
 		$postconf_tpl = strtr($postconf_tpl, $postconf_placeholders);
 		$postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index b83b24dcfa..99da9742e6 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -53,6 +53,14 @@ class installer_dist extends installer_base {
 		$cf = $conf['postfix'];
 		$config_dir = $cf['config_dir'];
 
+		exec('postconf mail_version', $ret);
+		$postfix_version=str_replace('mail_version = ', '', $ret[0]);
+		unset($ret);
+		exec('openssl version', $ret);
+		$openssl_version=$ret[0];
+		unset($ret);
+		$use_pfs=@(version_compare($openssl_version, 'OpenSSL 0.9', '>=') && version_compare($postfix_version, '2.6', '>='))?true:false;
+
 		if(!is_dir($config_dir)){
 			$this->error("The postfix configuration directory '$config_dir' does not exist.");
 		}
@@ -174,6 +182,19 @@ class installer_dist extends installer_base {
 			'{greylisting}' => $greylisting,
 			'{reject_slm}' => $reject_sender_login_mismatch,
 		);
+
+		//* If PFS is possible, configure it
+		if($use_pfs && !file_exists($config_dir.'/dh_512.pem')) exec('openssl gendh -out '.$config_dir.'/dh_512.pem -2 512');
+		if($use_pfs && !file_exists($config_dir.'/dh_2048.pem')) exec('openssl gendh -out '.$config_dir.'/dh_2048.pem -2 2048');
+		if($use_pfs && file_exists($config_dir.'/dh_512.pem') && file_exists($config_dir.'/dh_2048.pem')) {
+			$postconf_placeholders = array_merge($postconf_placeholders, array(
+				'{smtpd_tls_dh512_param_file}' => $config_dir.'/dh_512.pem',
+				'{smtpd_tls_dh1024_param_file}' => $config_dir.'/dh_2048.pem' ));
+		} else {
+			$postconf_placeholders = array_merge($postconf_placeholders, array(
+				'{smtpd_tls_dh512_param_file}' => '',
+				'{smtpd_tls_dh1024_param_file}' => ''));
+		}
 		
 		$postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_postfix.conf.master', 'tpl/opensuse_postfix.conf.master');
 		$postconf_tpl = strtr($postconf_tpl, $postconf_placeholders);
diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master
index b7dbea6300..82cd9a1548 100644
--- a/install/tpl/debian_postfix.conf.master
+++ b/install/tpl/debian_postfix.conf.master
@@ -44,3 +44,9 @@ smtpd_tls_protocols = !SSLv2,!SSLv3
 smtp_tls_protocols = !SSLv2,!SSLv3
 smtpd_tls_exclude_ciphers = RC4, aNULL
 smtp_tls_exclude_ciphers = RC4, aNULL
+smtpd_tls_dh512_param_file = {smtpd_tls_dh512_param_file}
+smtpd_tls_dh1024_param_file = {smtpd_tls_dh1024_param_file}
+smtpd_tls_eecdh_grade = strong
+tls_preempt_cipherlist = yes
+smtp_tls_loglevel = 1
+smtpd_tls_loglevel = 1
diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master
index f06af82288..28a38994ad 100644
--- a/install/tpl/fedora_postfix.conf.master
+++ b/install/tpl/fedora_postfix.conf.master
@@ -40,3 +40,9 @@ smtpd_tls_protocols = !SSLv2,!SSLv3
 smtp_tls_protocols = !SSLv2,!SSLv3
 smtpd_tls_exclude_ciphers = RC4, aNULL
 smtp_tls_exclude_ciphers = RC4, aNULL
+smtpd_tls_dh512_param_file = {smtpd_tls_dh512_param_file}
+smtpd_tls_dh1024_param_file = {smtpd_tls_dh1024_param_file}
+smtpd_tls_eecdh_grade = strong
+tls_preempt_cipherlist = yes
+smtp_tls_loglevel = 1
+smtpd_tls_loglevel = 1
diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master
index dc20e02c13..3c7015e507 100644
--- a/install/tpl/gentoo_postfix.conf.master
+++ b/install/tpl/gentoo_postfix.conf.master
@@ -39,3 +39,9 @@ smtpd_tls_protocols = !SSLv2,!SSLv3
 smtp_tls_protocols = !SSLv2,!SSLv3
 smtpd_tls_exclude_ciphers = RC4, aNULL
 smtp_tls_exclude_ciphers = RC4, aNULL
+smtpd_tls_dh512_param_file = {smtpd_tls_dh512_param_file}
+smtpd_tls_dh1024_param_file = {smtpd_tls_dh1024_param_file}
+smtpd_tls_eecdh_grade = strong
+tls_preempt_cipherlist = yes
+smtp_tls_loglevel = 1
+smtpd_tls_loglevel = 1
diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master
index 4192f988b5..fb2e911b5b 100644
--- a/install/tpl/opensuse_postfix.conf.master
+++ b/install/tpl/opensuse_postfix.conf.master
@@ -42,3 +42,9 @@ smtpd_tls_protocols = !SSLv2,!SSLv3
 smtp_tls_protocols = !SSLv2,!SSLv3
 smtpd_tls_exclude_ciphers = RC4, aNULL
 smtp_tls_exclude_ciphers = RC4, aNULL
+smtpd_tls_dh512_param_file = {smtpd_tls_dh512_param_file}
+smtpd_tls_dh1024_param_file = {smtpd_tls_dh1024_param_file}
+smtpd_tls_eecdh_grade = strong
+tls_preempt_cipherlist = yes
+smtp_tls_loglevel = 1
+smtpd_tls_loglevel = 1
diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 079d634488..f5dff79405 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -102,7 +102,7 @@ php_fpm_ini_path=/etc/php5/fpm/php.ini
 php_fpm_pool_dir=/etc/php5/fpm/pool.d
 php_fpm_start_port=9010
 php_fpm_socket_dir=/var/lib/php5-fpm
-php_default_name=Default
+php_default_name=default
 set_folder_permissions_on_update=n
 add_web_users_to_sshusers_group=y
 connect_userid_to_webid=n
diff --git a/interface/web/admin/lib/lang/de_server_php_list.lng b/interface/web/admin/lib/lang/de_server_php_list.lng
index d775fc6c00..fe9a72ea15 100644
--- a/interface/web/admin/lib/lang/de_server_php_list.lng
+++ b/interface/web/admin/lib/lang/de_server_php_list.lng
@@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server';
 $wb['add_new_record_txt'] = 'Neue PHP Version hinzufügen';
 $wb['client_id_txt'] = 'Kunde';
 $wb['name_txt'] = 'PHP Name';
+$wb['active_txt'] = 'Aktiv';
 ?>
diff --git a/interface/web/admin/lib/lang/en_server_php_list.lng b/interface/web/admin/lib/lang/en_server_php_list.lng
index b402fd1ed1..62cbe61687 100644
--- a/interface/web/admin/lib/lang/en_server_php_list.lng
+++ b/interface/web/admin/lib/lang/en_server_php_list.lng
@@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server';
 $wb['add_new_record_txt'] = 'Add new PHP version';
 $wb['client_id_txt'] = 'Client';
 $wb['name_txt'] = 'PHP Name';
+$wb['active_txt'] = 'Active';
 ?>
diff --git a/interface/web/admin/list/server_php.list.php b/interface/web/admin/list/server_php.list.php
index ee4ad1ab91..a4a38901ab 100644
--- a/interface/web/admin/list/server_php.list.php
+++ b/interface/web/admin/list/server_php.list.php
@@ -44,6 +44,15 @@ $liste['auth']    = 'no';
 * Suchfelder
 *****************************************************/
 
+$liste['item'][] = array( 'field'  => 'active',
+	'datatype' => 'VARCHAR',
+	'formtype' => 'SELECT',
+	'op'  => '=',
+	'prefix' => '',
+	'suffix' => '',
+	'width'  => '',
+	'value'  => array('y' => $app->lng('yes_txt'), 'n' => $app->lng('no_txt')));
+
 $liste['item'][] = array( 'field'  => 'server_id',
 	'datatype' => 'INTEGER',
 	'formtype' => 'SELECT',
diff --git a/interface/web/admin/templates/server_php_list.htm b/interface/web/admin/templates/server_php_list.htm
index 0fb98965bd..5a6392eea3 100644
--- a/interface/web/admin/templates/server_php_list.htm
+++ b/interface/web/admin/templates/server_php_list.htm
@@ -15,12 +15,14 @@
 <table class="table">
                 <thead class="dark form-group-sm">
                     <tr>
+						<th class="tiny-col" data-column="active"><tmpl_var name="active_txt"></th>
                         <th data-column="server_id"><tmpl_var name="server_id_txt"></th>
                         <th class="small-col" data-column="client_id"><tmpl_var name="client_id_txt"></th>
                         <th data-column="name"><tmpl_var name="name_txt"></th>
                         <th class="text-right">{tmpl_var name='search_limit'}</th>
                     </tr>
                     <tr>
+						<td><select class="form-control" name="search_active">{tmpl_var name='search_active'}</select></td>
                         <td><select class="form-control" name="search_server_id">{tmpl_var name='search_server_id'}</select></td>
                         <td><select class="form-control" name="search_client_id">{tmpl_var name='search_client_id'}</select></td>
                         <td><input class="form-control" type="text" name="search_name" value="{tmpl_var name='search_name'}" /></td>
@@ -32,6 +34,7 @@
                 <tbody>
                     <tmpl_loop name="records">
                         <tr>
+							<td><a href="#" data-load-content="admin/server_php_edit.php?id={tmpl_var name='id'}">{tmpl_var name="active"}</a></td>
                             <td><a href="#" data-load-content="admin/server_php_edit.php?id={tmpl_var name='id'}">{tmpl_var name="server_id"}</a></td>
                             <td><a href="#" data-load-content="admin/server_php_edit.php?id={tmpl_var name='id'}">{tmpl_var name="client_id"}</a></td>
                             <td><a href="#" data-load-content="admin/server_php_edit.php?id={tmpl_var name='id'}">{tmpl_var name="name"}</a></td>
@@ -54,4 +57,4 @@
             </table>
 </div>
         
-    
\ No newline at end of file
+    
-- 
GitLab