From 4132c6b6a32adb508144532dcfa5e650f144bf53 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 23 Oct 2007 15:02:19 -0400
Subject: [PATCH] Improved ssh user and apache plugin.
---
interface/web/sites/templates/web_domain_ssl.htm | 6 +-
server/plugins-enabled/apache2_plugin.inc.php | 46 ++++++++--------------
interface/web/sites/templates/shell_user_advanced.htm | 8 ++--
server/plugins-enabled/shelluser_plugin.inc.php | 12 +++---
server/mods-enabled/web_module.inc.php | 1
interface/web/sites/form/web_domain.tform.php | 4 +-
6 files changed, 33 insertions(+), 44 deletions(-)
diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php
index 0ab593b..6f713d9 100644
--- a/interface/web/sites/form/web_domain.tform.php
+++ b/interface/web/sites/form/web_domain.tform.php
@@ -257,8 +257,8 @@
'formtype' => 'TEXT',
'default' => '',
'value' => '',
- 'width' => '30',
- 'maxlength' => '255'
+ 'width' => '2',
+ 'maxlength' => '2'
),
'ssl_request' => array (
'datatype' => 'TEXT',
diff --git a/interface/web/sites/templates/shell_user_advanced.htm b/interface/web/sites/templates/shell_user_advanced.htm
index 3ae6d4f..b7ebc54 100644
--- a/interface/web/sites/templates/shell_user_advanced.htm
+++ b/interface/web/sites/templates/shell_user_advanced.htm
@@ -1,11 +1,11 @@
<table width="500" border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="frmText11">{tmpl_var name='uid_txt'}:</td>
- <td class="frmText11"><input name="uid" type="text" class="text" value="{tmpl_var name='uid'}" size="30" maxlength="255"></td>
+ <td class="frmText11"><input name="puser" type="text" class="text" value="{tmpl_var name='puser'}" size="30" maxlength="255"></td>
</tr>
<tr>
<td class="frmText11">{tmpl_var name='gid_txt'}:</td>
- <td class="frmText11"><input name="gid" type="text" class="text" value="{tmpl_var name='gid'}" size="30" maxlength="255"></td>
+ <td class="frmText11"><input name="pgroup" type="text" class="text" value="{tmpl_var name='pgroup'}" size="30" maxlength="255"></td>
</tr>
<tr>
<td class="frmText11">{tmpl_var name='shell_txt'}:</td>
@@ -23,6 +23,6 @@
<td><input name="btn_save" type="button" class="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/shell_user_edit.php');"><div class="buttonEnding"></div>
<input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/shell_user_list.php');"><div class="buttonEnding"></div>
</td>
- </tr>
-</table>
+ </tr>
+</table>
<input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file
diff --git a/interface/web/sites/templates/web_domain_ssl.htm b/interface/web/sites/templates/web_domain_ssl.htm
index eb22310..c3f2b45 100644
--- a/interface/web/sites/templates/web_domain_ssl.htm
+++ b/interface/web/sites/templates/web_domain_ssl.htm
@@ -17,7 +17,7 @@
</tr>
<tr>
<td class="frmText11">{tmpl_var name='ssl_country_txt'}:</td>
- <td class="frmText11"><input name="ssl_country" type="text" class="text" value="{tmpl_var name='ssl_country'}" size="30" maxlength="255"></td>
+ <td class="frmText11"><input name="ssl_country" type="text" class="text" value="{tmpl_var name='ssl_country'}" size="2" maxlength="2"></td>
</tr>
<tr>
<td class="frmText11">{tmpl_var name='ssl_request_txt'}:</td>
@@ -47,6 +47,6 @@
<td><input name="btn_save" type="button" class="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><div class="buttonEnding"></div>
<input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><div class="buttonEnding"></div>
</td>
- </tr>
-</table>
+ </tr>
+</table>
<input type="hidden" name="id" value="{tmpl_var name='id'}">
\ No newline at end of file
diff --git a/server/mods-enabled/web_module.inc.php b/server/mods-enabled/web_module.inc.php
index 1b4c8b8..7ebed3a 100644
--- a/server/mods-enabled/web_module.inc.php
+++ b/server/mods-enabled/web_module.inc.php
@@ -67,6 +67,7 @@
*/
$app->modules->registerTableHook('web_domain','web_module','process');
+ $app->modules->registerTableHook('shell_user','web_module','process');
// Register service
$app->services->registerService('httpd','web_module','restartHttpd');
diff --git a/server/plugins-enabled/apache2_plugin.inc.php b/server/plugins-enabled/apache2_plugin.inc.php
index d593fc7..a167014 100644
--- a/server/plugins-enabled/apache2_plugin.inc.php
+++ b/server/plugins-enabled/apache2_plugin.inc.php
@@ -98,19 +98,19 @@
output_password = $ssl_password
[ req_distinguished_name ]
- C = $data[new][ssl_country]
- ST = $data[new][ssl_state]
- L = $data[new][ssl_locality]
- O = $data[new][ssl_organisation]
- OU = $data[new][ssl_organisation_unit]
+ C = ".$data['new']['ssl_country']."
+ ST = ".$data['new']['ssl_state']."
+ L = ".$data['new']['ssl_locality']."
+ O = ".$data['new']['ssl_organisation']."
+ OU = ".$data['new']['ssl_organisation_unit']."
CN = $domain
- emailAddress = webmatser@$data[new][domain]
+ emailAddress = webmatser@".$data['new']['domain']."
[ req_attributes ]
challengePassword = A challenge password";
$ssl_cnf_file = $ssl_dir."/openssl.conf";
- file_get_contents($ssl_cnf_file,$ssl_cnf);
+ file_put_contents($ssl_cnf_file,$ssl_cnf);
$rand_file = escapeshellcmd($rand_file);
$key_file = escapeshellcmd($key_file);
@@ -118,34 +118,20 @@
$ssl_days = 3650;
$csr_file = escapeshellcmd($csr_file);
$config_file = escapeshellcmd($ssl_cnf_file);
- $crt_file escapeshellcmd($crt_file);
+ $crt_file = escapeshellcmd($crt_file);
if(is_file($ssl_cnf_file)){
- exec("openssl genrsa -des3 -rand $rand_file \
- -passout pass:$ssl_password \
- -out $key_file 1024 \
- && openssl req -new -passin pass:$ssl_password \
- -passout pass:$ssl_password -key $key_file \
- -out $csr_file -days $ssl_days \
- -config $config_file \
- && openssl req -x509 -passin pass:$ssl_password \
- -passout pass:$ssl_password \
- -key $key_file -in $csr_file \
- -out $crt_file -days $ssl_days \
- -config $config_file \
- && openssl rsa -passin pass:$ssl_password \
- -in $key_file \
- -out $key_file2");
-
+ exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $key_file 1024 && openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -out $csr_file -days $ssl_days -config $config_file && openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -in $csr_file -out $crt_file -days $ssl_days -config $config_file && openssl rsa -passin pass:$ssl_password -in $key_file -out $key_file2");
$app->log("Creating SSL Cert for: $domain",LOGLEVEL_DEBUG);
}
exec("chmod 400 $key_file2");
- unlink($config_file);
- unlink($rand_file);
+ @unlink($config_file);
+ @unlink($rand_file);
$ssl_request = file_get_contents($csr_file);
$ssl_cert = file_get_contents($crt_file);
- $mod->db->query("UPDATE web_domain SET ssl_request = '$ssl_request', ssl_cert = '$ssl_cert' WHERE domain = '".$data["new"]["domain"]."'");
+ $app->db->query("UPDATE web_domain SET ssl_request = '$ssl_request', ssl_cert = '$ssl_cert' WHERE domain = '".$data["new"]["domain"]."'");
+ $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'");
}
//* Save a SSL certificate to disk
@@ -158,6 +144,7 @@
file_put_contents($csr_file,$data["new"]["ssl_request"]);
file_put_contents($crt_file,$data["new"]["ssl_cert"]);
if(trim($data["new"]["ssl_bundle"]) != '') file_put_contents($bundle_file,$data["new"]["ssl_bundle"]);
+ $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'");
$app->log("Saving SSL Cert for: $domain",LOGLEVEL_DEBUG);
}
@@ -171,6 +158,7 @@
unlink($csr_file);
unlink($crt_file);
unlink($bundle_file);
+ $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'");
$app->log("Deleting SSL Cert for: $domain",LOGLEVEL_DEBUG);
}
@@ -298,7 +286,7 @@
$crt_file = $ssl_dir.'/'.$domain.".crt";
$bundle_file = $ssl_dir.'/'.$domain.".bundle";
- if($data["new"]["ssl"] == 'y' && @is_file($crt_file) && @is_file($key_file) {
+ if($data["new"]["ssl"] == 'y' && @is_file($crt_file) && @is_file($key_file)) {
$vhost_data["ssl_enabled"] = 1;
$app->log("Enable SSL for: $domain",LOGLEVEL_DEBUG);
} else {
@@ -398,7 +386,7 @@
if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1);
// create the symlinks, if not exist
if(is_link($tmp_symlink)) {
- unlink($tmp_symlink));
+ unlink($tmp_symlink);
$app->log("Removing symlink: ".$tmp_symlink,LOGLEVEL_DEBUG);
}
}
diff --git a/server/plugins-enabled/shelluser_plugin.inc.php b/server/plugins-enabled/shelluser_plugin.inc.php
index b4967f8..9fa34aa 100644
--- a/server/plugins-enabled/shelluser_plugin.inc.php
+++ b/server/plugins-enabled/shelluser_plugin.inc.php
@@ -28,10 +28,10 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-class apache2_plugin {
+class shelluser_plugin {
- var $plugin_name = 'apache2_plugin';
- var $class_name = 'apache2_plugin';
+ var $plugin_name = 'shelluser_plugin';
+ var $class_name = 'shelluser_plugin';
/*
@@ -45,9 +45,9 @@
Register for the events
*/
- $app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert');
- $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update');
- $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete');
+ $app->plugins->registerEvent('shell_user_insert',$this->plugin_name,'insert');
+ $app->plugins->registerEvent('shell_user_update',$this->plugin_name,'update');
+ $app->plugins->registerEvent('shell_user_delete',$this->plugin_name,'delete');
}
--
Gitblit v1.9.1