5 files added
63 files modified
New file |
| | |
| | | <?php |
| | | |
| | | /* |
| | | Copyright (c) 2007, Till Brehm, projektfarm Gmbh |
| | | All rights reserved. |
| | | |
| | | Redistribution and use in source and binary forms, with or without modification, |
| | | are permitted provided that the following conditions are met: |
| | | |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright notice, |
| | | this list of conditions and the following disclaimer in the documentation |
| | | and/or other materials provided with the distribution. |
| | | * Neither the name of ISPConfig nor the names of its contributors |
| | | may be used to endorse or promote products derived from this software without |
| | | specific prior written permission. |
| | | |
| | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
| | | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| | | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| | | IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
| | | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
| | | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| | | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| | | OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| | | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
| | | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| | | */ |
| | | |
| | | //*** Fedora 9 default settings |
| | | |
| | | //* Main |
| | | $conf['language'] = 'en'; |
| | | $conf['distname'] = 'centos72'; |
| | | $conf['hostname'] = 'server1.domain.tld'; // Full hostname |
| | | $conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; |
| | | $conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; |
| | | $conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error |
| | | $conf['ispconfig_log_dir'] = '/var/log/ispconfig'; |
| | | $conf['server_id'] = 1; |
| | | $conf['init_scripts'] = '/etc/init.d'; |
| | | $conf['runlevel'] = '/etc'; |
| | | $conf['shells'] = '/etc/shells'; |
| | | $conf['pam'] = '/etc/pam.d'; |
| | | |
| | | //* Services provided by this server, this selection will be overridden by the expert mode |
| | | $conf['services']['mail'] = true; |
| | | $conf['services']['web'] = true; |
| | | $conf['services']['dns'] = true; |
| | | $conf['services']['file'] = true; |
| | | $conf['services']['db'] = true; |
| | | $conf['services']['vserver'] = true; |
| | | |
| | | //* MySQL |
| | | $conf['mysql']['installed'] = false; // will be detected automatically during installation |
| | | $conf['mysql']['init_script'] = 'mariadb'; |
| | | $conf['mysql']['host'] = 'localhost'; |
| | | $conf['mysql']['ip'] = '127.0.0.1'; |
| | | $conf['mysql']['port'] = '3306'; |
| | | $conf['mysql']['database'] = 'dbispconfig'; |
| | | $conf['mysql']['admin_user'] = 'root'; |
| | | $conf['mysql']['admin_password'] = ''; |
| | | $conf['mysql']['charset'] = 'utf8'; |
| | | $conf['mysql']['ispconfig_user'] = 'ispconfig'; |
| | | $conf['mysql']['ispconfig_password'] = md5(uniqid(rand())); |
| | | $conf['mysql']['master_slave_setup'] = 'n'; |
| | | $conf['mysql']['master_host'] = ''; |
| | | $conf['mysql']['master_database'] = 'dbispconfig'; |
| | | $conf['mysql']['master_admin_user'] = 'root'; |
| | | $conf['mysql']['master_admin_password'] = ''; |
| | | $conf['mysql']['master_ispconfig_user'] = ''; |
| | | $conf['mysql']['master_ispconfig_password'] = md5(uniqid(rand())); |
| | | |
| | | //* Apache |
| | | $conf['apache']['installed'] = false; // will be detected automatically during installation |
| | | $conf['apache']['user'] = 'apache'; |
| | | $conf['apache']['group'] = 'apache'; |
| | | $conf['apache']['init_script'] = 'httpd'; |
| | | $conf['apache']['version'] = '2.2'; |
| | | $conf['apache']['vhost_conf_dir'] = '/etc/httpd/conf/sites-available'; |
| | | $conf['apache']['vhost_conf_enabled_dir'] = '/etc/httpd/conf/sites-enabled'; |
| | | $conf['apache']['vhost_port'] = '8080'; |
| | | $conf['apache']['php_ini_path_apache'] = '/etc/php.ini'; |
| | | $conf['apache']['php_ini_path_cgi'] = '/etc/php.ini'; |
| | | |
| | | //* Website base settings |
| | | $conf['web']['website_basedir'] = '/var/www'; |
| | | $conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; |
| | | $conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; |
| | | |
| | | //* Apps base settings |
| | | $conf['web']['apps_vhost_ip'] = '_default_'; |
| | | $conf['web']['apps_vhost_port'] = '8081'; |
| | | $conf['web']['apps_vhost_servername'] = ''; |
| | | $conf['web']['apps_vhost_user'] = 'ispapps'; |
| | | $conf['web']['apps_vhost_group'] = 'ispapps'; |
| | | |
| | | //* Fastcgi |
| | | $conf['fastcgi']['fastcgi_phpini_path'] = '/etc/'; |
| | | $conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; |
| | | $conf['fastcgi']['fastcgi_bin'] = '/usr/bin/php-cgi'; |
| | | |
| | | //* Postfix |
| | | $conf['postfix']['installed'] = false; // will be detected automatically during installation |
| | | $conf['postfix']['config_dir'] = '/etc/postfix'; |
| | | $conf['postfix']['init_script'] = 'postfix'; |
| | | $conf['postfix']['user'] = 'postfix'; |
| | | $conf['postfix']['group'] = 'postfix'; |
| | | $conf['postfix']['vmail_userid'] = '5000'; |
| | | $conf['postfix']['vmail_username'] = 'vmail'; |
| | | $conf['postfix']['vmail_groupid'] = '5000'; |
| | | $conf['postfix']['vmail_groupname'] = 'vmail'; |
| | | $conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; |
| | | |
| | | //* Mailman |
| | | $conf['mailman']['installed'] = false; // will be detected automatically during installation |
| | | $conf['mailman']['config_dir'] = '/etc/mailman'; |
| | | $conf['mailman']['init_script'] = 'mailman'; |
| | | |
| | | //* Getmail |
| | | $conf['getmail']['installed'] = false; // will be detected automatically during installation |
| | | $conf['getmail']['config_dir'] = '/etc/getmail'; |
| | | $conf['getmail']['program'] = '/usr/bin/getmail'; |
| | | |
| | | //* Courier |
| | | $conf['courier']['installed'] = false; // will be detected automatically during installation |
| | | $conf['courier']['config_dir'] = '/etc/authlib'; |
| | | $conf['courier']['courier-authdaemon'] = 'courier-authlib'; |
| | | $conf['courier']['courier-imap'] = 'courier-imap'; |
| | | $conf['courier']['courier-imap-ssl'] = ''; |
| | | $conf['courier']['courier-pop'] = ''; |
| | | $conf['courier']['courier-pop-ssl'] = ''; |
| | | |
| | | //* Dovecot |
| | | $conf['dovecot']['installed'] = false; // will be detected automatically during installation |
| | | $conf['dovecot']['config_dir'] = '/etc/dovecot'; |
| | | $conf['dovecot']['init_script'] = 'dovecot'; |
| | | |
| | | //* SASL |
| | | $conf['saslauthd']['installed'] = false; // will be detected automatically during installation |
| | | $conf['saslauthd']['config'] = '/etc/sysconfig/saslauthd'; |
| | | $conf['saslauthd']['init_script'] = 'saslauthd'; |
| | | |
| | | //* Amavisd |
| | | $conf['amavis']['installed'] = false; // will be detected automatically during installation |
| | | $conf['amavis']['config_dir'] = '/etc/amavisd'; |
| | | $conf['amavis']['init_script'] = 'amavisd'; |
| | | |
| | | //* ClamAV |
| | | $conf['clamav']['installed'] = false; // will be detected automatically during installation |
| | | $conf['clamav']['init_script'] = 'clamd@amavisd'; |
| | | |
| | | //* Pureftpd |
| | | $conf['pureftpd']['installed'] = false; // will be detected automatically during installation |
| | | $conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; |
| | | $conf['pureftpd']['init_script'] = 'pure-ftpd'; |
| | | |
| | | //* MyDNS |
| | | $conf['mydns']['installed'] = false; // will be detected automatically during installation |
| | | $conf['mydns']['config_dir'] = '/etc'; |
| | | $conf['mydns']['init_script'] = 'mydns'; |
| | | |
| | | //* PowerDNS |
| | | $conf['powerdns']['installed'] = false; // will be detected automatically during installation |
| | | $conf['powerdns']['database'] = 'powerdns'; |
| | | $conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; |
| | | $conf['powerdns']['init_script'] = 'pdns'; |
| | | |
| | | //* BIND DNS Server |
| | | $conf['bind']['installed'] = false; // will be detected automatically during installation |
| | | $conf['bind']['bind_user'] = 'named'; |
| | | $conf['bind']['bind_group'] = 'named'; |
| | | $conf['bind']['bind_zonefiles_dir'] = '/var/named'; |
| | | $conf['bind']['named_conf_path'] = '/etc/named.conf'; |
| | | $conf['bind']['named_conf_local_path'] = '/etc/named.conf.local'; |
| | | $conf['bind']['init_script'] = 'named'; |
| | | |
| | | //* Jailkit |
| | | $conf['jailkit']['installed'] = false; // will be detected automatically during installation |
| | | $conf['jailkit']['config_dir'] = '/etc/jailkit'; |
| | | $conf['jailkit']['jk_init'] = 'jk_init.ini'; |
| | | $conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; |
| | | $conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano'; |
| | | $conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; |
| | | |
| | | //* Squid |
| | | $conf['squid']['installed'] = false; // will be detected automatically during installation |
| | | $conf['squid']['config_dir'] = '/etc/squid'; |
| | | $conf['squid']['init_script'] = 'squid'; |
| | | |
| | | //* Nginx |
| | | $conf['nginx']['installed'] = false; // will be detected automatically during installation |
| | | $conf['nginx']['user'] = 'nginx'; |
| | | $conf['nginx']['group'] = 'nginx'; |
| | | $conf['nginx']['config_dir'] = '/etc/nginx'; |
| | | $conf['nginx']['vhost_conf_dir'] = '/etc/nginx/sites-available'; |
| | | $conf['nginx']['vhost_conf_enabled_dir'] = '/etc/nginx/sites-enabled'; |
| | | $conf['nginx']['init_script'] = 'nginx'; |
| | | $conf['nginx']['vhost_port'] = '8080'; |
| | | $conf['nginx']['cgi_socket'] = '/var/run/fcgiwrap.socket'; |
| | | $conf['nginx']['php_fpm_init_script'] = 'php-fpm'; |
| | | $conf['nginx']['php_fpm_ini_path'] = '/etc/php.ini'; |
| | | $conf['nginx']['php_fpm_pool_dir'] = '/etc/php-fpm.d'; |
| | | $conf['nginx']['php_fpm_start_port'] = 9010; |
| | | $conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php5-fpm'; |
| | | |
| | | //* vlogger |
| | | $conf['vlogger']['config_dir'] = '/etc'; |
| | | |
| | | //* cron |
| | | $conf['cron']['init_script'] = 'crond'; |
| | | $conf['cron']['crontab_dir'] = '/etc/cron.d'; |
| | | $conf['cron']['wget'] = '/usr/bin/wget'; |
| | | |
| | | //* OpenVZ |
| | | $conf['openvz']['installed'] = false; |
| | | |
| | | ?> |
New file |
| | |
| | | <?php |
| | | |
| | | /* |
| | | Copyright (c) 2014, Till Brehm, ISPConfig UG |
| | | All rights reserved. |
| | | |
| | | Redistribution and use in source and binary forms, with or without modification, |
| | | are permitted provided that the following conditions are met: |
| | | |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright notice, |
| | | this list of conditions and the following disclaimer in the documentation |
| | | and/or other materials provided with the distribution. |
| | | * Neither the name of ISPConfig nor the names of its contributors |
| | | may be used to endorse or promote products derived from this software without |
| | | specific prior written permission. |
| | | |
| | | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
| | | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| | | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| | | IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
| | | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
| | | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| | | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| | | OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| | | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
| | | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| | | */ |
| | | |
| | | require_once realpath(dirname(__FILE__)) . '/centos_base.lib.php'; |
| | | |
| | | class installer extends installer_centos { |
| | | |
| | | protected $clamav_socket = '/var/run/clamd.amavisd/clamd.sock'; |
| | | |
| | | public function configure_amavis() { |
| | | global $conf; |
| | | |
| | | // amavisd user config file |
| | | $configfile = 'fedora_amavisd_conf'; |
| | | if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]); |
| | | if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf', $conf["amavis"]["config_dir"].'/amavisd.conf~'); |
| | | if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~'); |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master"); |
| | | $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); |
| | | $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); |
| | | $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); |
| | | $content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content); |
| | | $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); |
| | | $content = str_replace('{hostname}', $conf['hostname'], $content); |
| | | $content = str_replace('/var/spool/amavisd/clamd.sock', $this->clamav_socket, $content); |
| | | wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content); |
| | | chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640); |
| | | exec('chgrp amavis '.$conf['amavis']['config_dir'].'/amavisd.conf'); |
| | | |
| | | // Adding the amavisd commands to the postfix configuration |
| | | $postconf_commands = array ( |
| | | 'content_filter = amavis:[127.0.0.1]:10024', |
| | | 'receive_override_options = no_address_mappings' |
| | | ); |
| | | |
| | | // Make a backup copy of the main.cf file |
| | | copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2'); |
| | | |
| | | // Executing the postconf commands |
| | | foreach($postconf_commands as $cmd) { |
| | | $command = "postconf -e '$cmd'"; |
| | | caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); |
| | | } |
| | | |
| | | $config_dir = $conf['postfix']['config_dir']; |
| | | |
| | | // Adding amavis-services to the master.cf file if the service does not already exists |
| | | $add_amavis = !$this->get_postfix_service('amavis','unix'); |
| | | $add_amavis_10025 = !$this->get_postfix_service('127.0.0.1:10025','inet'); |
| | | $add_amavis_10027 = !$this->get_postfix_service('127.0.0.1:10027','inet'); |
| | | |
| | | if ($add_amavis || $add_amavis_10025 || $add_amavis_10027) { |
| | | //* backup master.cf |
| | | if(is_file($config_dir.'/master.cf')) copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); |
| | | // adjust amavis-config |
| | | if($add_amavis) { |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master'); |
| | | af($config_dir.'/master.cf', $content); |
| | | unset($content); |
| | | } |
| | | if ($add_amavis_10025) { |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master'); |
| | | af($config_dir.'/master.cf', $content); |
| | | unset($content); |
| | | } |
| | | if ($add_amavis_10027) { |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master'); |
| | | af($config_dir.'/master.cf', $content); |
| | | unset($content); |
| | | } |
| | | } |
| | | |
| | | // Create the director for DKIM-Keys |
| | | 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'); |
| | | } |
| | | // 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'); |
| | | } |
| | | |
| | | removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn # REMOVE ME', 1); |
| | | replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1); |
| | | replaceLine('/etc/clamd.d/scan.conf', 'Example', '# Example', 1); |
| | | |
| | | } |
| | | |
| | | // everything else is inherited from installer_centos class |
| | | |
| | | } |
| | | |
| | | ?> |
| | |
| | | if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman'); |
| | | exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman'); |
| | | |
| | | //* Create auxillary postfix conf files |
| | | $configfile = 'helo_access'; |
| | | if(is_file($config_dir.'/'.$configfile)) { |
| | | copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); |
| | | chmod($config_dir.'/'.$configfile.'~', 0400); |
| | | } |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); |
| | | $content = strtr($content, $postconf_placeholders); |
| | | # todo: look up this server's ip addrs and loop through each |
| | | # todo: look up domains hosted on this server and loop through each |
| | | wf($config_dir.'/'.$configfile, $content); |
| | | |
| | | $configfile = 'blacklist_helo'; |
| | | if(is_file($config_dir.'/'.$configfile)) { |
| | | copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); |
| | | chmod($config_dir.'/'.$configfile.'~', 0400); |
| | | } |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); |
| | | $content = strtr($content, $postconf_placeholders); |
| | | wf($config_dir.'/'.$configfile, $content); |
| | | |
| | | //* Make a backup copy of the main.cf file |
| | | copy($config_dir.'/main.cf', $config_dir.'/main.cf~'); |
| | | |
| | |
| | | touch($config_dir.'/nested_header_checks'); |
| | | touch($config_dir.'/body_checks'); |
| | | |
| | | //* Create auxillary postfix conf files |
| | | $configfile = 'helo_access'; |
| | | if(is_file($config_dir.'/'.$configfile)) { |
| | | copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); |
| | | chmod($config_dir.'/'.$configfile.'~', 0400); |
| | | } |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); |
| | | $content = strtr($content, $postconf_placeholders); |
| | | # todo: look up this server's ip addrs and loop through each |
| | | # todo: look up domains hosted on this server and loop through each |
| | | wf($config_dir.'/'.$configfile, $content); |
| | | |
| | | $configfile = 'blacklist_helo'; |
| | | if(is_file($config_dir.'/'.$configfile)) { |
| | | copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); |
| | | chmod($config_dir.'/'.$configfile.'~', 0400); |
| | | } |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); |
| | | $content = strtr($content, $postconf_placeholders); |
| | | wf($config_dir.'/'.$configfile, $content); |
| | | |
| | | //* Make a backup copy of the main.cf file |
| | | copy($config_dir.'/main.cf', $config_dir.'/main.cf~'); |
| | |
| | | if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman'); |
| | | exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman'); |
| | | |
| | | //* Create auxillary postfix conf files |
| | | $configfile = 'helo_access'; |
| | | if(is_file($config_dir.'/'.$configfile)) { |
| | | copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); |
| | | chmod($config_dir.'/'.$configfile.'~', 0400); |
| | | } |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); |
| | | $content = strtr($content, $postconf_placeholders); |
| | | # todo: look up this server's ip addrs and loop through each |
| | | # todo: look up domains hosted on this server and loop through each |
| | | wf($config_dir.'/'.$configfile, $content); |
| | | |
| | | $configfile = 'blacklist_helo'; |
| | | if(is_file($config_dir.'/'.$configfile)) { |
| | | copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); |
| | | chmod($config_dir.'/'.$configfile.'~', 0400); |
| | | } |
| | | $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); |
| | | $content = strtr($content, $postconf_placeholders); |
| | | wf($config_dir.'/'.$configfile, $content); |
| | | |
| | | //* Make a backup copy of the main.cf file |
| | | copy($config_dir.'/main.cf', $config_dir.'/main.cf~'); |
| | | |
| | |
| | | //**************************************************************************************************** |
| | | $inst = new installer(); |
| | | if (!$inst->get_php_version()) die('ISPConfig requieres PHP '.$inst->min_php."\n"); |
| | | $retval=shell_exec("which which"); |
| | | if (empty($retval)) die ("ISPConfig requieres which \n"); |
| | | |
| | | swriteln($inst->lng(' Following will be a few questions for primary configuration so be careful.')); |
| | | swriteln($inst->lng(' Default values are in [brackets] and can be accepted with <ENTER>.')); |
| | |
| | | $conf['services']['dns'] = true; |
| | | } |
| | | */ |
| | | |
| | | //* Configure Bind |
| | | if($conf['bind']['installed']) { |
| | | swriteln('Configuring BIND'); |
| | | $inst->configure_bind(); |
| | | $conf['services']['dns'] = true; |
| | | if(!is_installed('haveged')) { |
| | | swriteln("[INFO] haveged not detected - DNSSEC can fail"); |
| | | } |
| | | } |
| | | //* Configure MyDNS |
| | | if($conf['mydns']['installed']) { |
| | |
| | | swriteln('Configuring BIND'); |
| | | $inst->configure_bind(); |
| | | $conf['services']['dns'] = true; |
| | | if(!is_installed('haveged')) { |
| | | swriteln("[INFO] haveged not detected - DNSSEC can fail"); |
| | | } |
| | | } |
| | | //* Configure MyDNS |
| | | if($conf['mydns']['installed']) { |
| | |
| | | $distid = ''; |
| | | $distbaseid = ''; |
| | | |
| | | //** Debian or Ubuntu |
| | | if(file_exists('/etc/debian_version')) { |
| | | //** Debian or Ubuntu |
| | | if (is_file('/etc/os-release') && stristr(file_get_contents('/etc/os-release'), 'Ubuntu')) { |
| | | $os_release = file_get_contents('/etc/os-release'); |
| | | if (strstr(trim($os_release), 'LTS')) { |
| | | $lts = " LTS"; |
| | | } else { |
| | | $lts = ""; |
| | | } |
| | | |
| | | preg_match("/.*VERSION=\"(.*)\".*/ui", $os_release, $ver); |
| | | $ver = str_replace("LTS", "", $ver[1]); |
| | | $ver = explode(" ", $ver, 2); |
| | | $relname = end($ver); |
| | | $relname = "(" . trim(trim($relname), "()") . ")"; |
| | | $distname = 'Ubuntu'; |
| | | $ver = reset($ver); |
| | | if($ver == "16.04") { |
| | | $distid = 'ubuntu1604'; |
| | | } else { |
| | | $distid = 'debian40'; |
| | | } |
| | | $distbaseid = 'debian'; |
| | | $distver = $ver . $lts . " " . $relname; |
| | | swriteln("Operating System: " . $distver . "\n"); |
| | | } //** Debian / Ubuntu |
| | | elseif(file_exists('/etc/debian_version')) { |
| | | if (strstr(trim(file_get_contents('/etc/issue')), 'Ubuntu')) { |
| | | if (strstr(trim(file_get_contents('/etc/issue')), 'LTS')) { |
| | | $lts=" LTS"; |
| | |
| | | $distid = 'centos53'; |
| | | $distbaseid = 'fedora'; |
| | | swriteln("Operating System: CentOS 6 or compatible\n"); |
| | | } elseif(stristr($content, 'CentOS Linux release 7.2')) { |
| | | $distname = 'CentOS'; |
| | | $distver = 'Unknown'; |
| | | $distid = 'centos72'; |
| | | $distbaseid = 'fedora'; |
| | | swriteln("Operating System: CentOS 7.2\n"); |
| | | } elseif(stristr($content, 'CentOS Linux release 7')) { |
| | | $distname = 'CentOS'; |
| | | $distver = 'Unknown'; |
| | |
| | | `traffic_date` date NOT NULL, |
| | | `in_bytes` bigint(32) unsigned NOT NULL, |
| | | `out_bytes` bigint(32) unsigned NOT NULL, |
| | | PRIMARY KEY (`hostname`,`traffic_date`) |
| | | UNIQUE KEY (`hostname`,`traffic_date`) |
| | | ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; |
| | | |
| | | ALTER TABLE `mail_forwarding` ADD COLUMN `allow_send_as` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `active`; |
New file |
| | |
| | | ALTER TABLE `directive_snippets` ADD `master_directive_snippets_id` int(11) unsigned NOT NULL DEFAULT '0' AFTER `active`; |
| | |
| | | `traffic_date` date NOT NULL, |
| | | `in_bytes` bigint(32) unsigned NOT NULL, |
| | | `out_bytes` bigint(32) unsigned NOT NULL, |
| | | PRIMARY KEY (`hostname`,`traffic_date`) |
| | | UNIQUE KEY (`hostname`,`traffic_date`) |
| | | ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; |
| | | |
| | | -- -------------------------------------------------------- |
| | |
| | | `veid` int(11) NOT NULL DEFAULT '0', |
| | | `traffic_date` date NULL DEFAULT NULL, |
| | | `traffic_bytes` bigint(32) unsigned NOT NULL DEFAULT '0', |
| | | PRIMARY KEY (`veid`,`traffic_date`) |
| | | UNIQUE KEY (`veid`,`traffic_date`) |
| | | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
| | | |
| | | -- |
| | |
| | | `hostname` varchar(255) NOT NULL DEFAULT '', |
| | | `traffic_date` date NULL DEFAULT NULL, |
| | | `traffic_bytes` bigint(32) unsigned NOT NULL default '0', |
| | | PRIMARY KEY (`hostname`,`traffic_date`) |
| | | UNIQUE KEY (`hostname`,`traffic_date`) |
| | | ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; |
| | | |
| | | -- -------------------------------------------------------- |
| | |
| | | |
| | | <VirtualHost _default_:<tmpl_var name="vhost_port">> |
| | | ServerAdmin webmaster@localhost |
| | | |
| | | |
| | | <FilesMatch "\.ph(p3?|tml)$"> |
| | | SetHandler None |
| | | </FilesMatch> |
| | | |
| | | |
| | | <IfModule mod_fcgid.c> |
| | | DocumentRoot /var/www/ispconfig/ |
| | | SuexecUserGroup ispconfig ispconfig |
| | | <Directory /var/www/ispconfig/> |
| | | Options -Indexes +FollowSymLinks +MultiViews +ExecCGI |
| | | AllowOverride AuthConfig Indexes Limit Options FileInfo |
| | | <FilesMatch "\.php$"> |
| | | SetHandler fcgid-script |
| | | </FilesMatch> |
| | | <FilesMatch "\.php$"> |
| | | SetHandler fcgid-script |
| | | </FilesMatch> |
| | | FCGIWrapper /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter .php |
| | | <tmpl_if name='apache_version' op='>' value='2.2' format='version'> |
| | | Require all granted |
| | | <tmpl_else> |
| | | Require all granted |
| | | <tmpl_else> |
| | | Order allow,deny |
| | | Allow from all |
| | | </tmpl_if> |
| | | </tmpl_if> |
| | | </Directory> |
| | | IPCCommTimeout 7200 |
| | | MaxRequestLen 15728640 |
| | | MaxRequestLen 15728640 |
| | | </IfModule> |
| | | |
| | | |
| | | <IfModule mpm_itk_module> |
| | | DocumentRoot /usr/local/ispconfig/interface/web/ |
| | | AssignUserId ispconfig ispconfig |
| | | AssignUserId ispconfig ispconfig |
| | | AddType application/x-httpd-php .php |
| | | <Directory /usr/local/ispconfig/interface/web> |
| | | # php_admin_value open_basedir "/usr/local/ispconfig/interface:/usr/share:/tmp" |
| | | Options +FollowSymLinks |
| | | AllowOverride None |
| | | <tmpl_if name='apache_version' op='>' value='2.2' format='version'> |
| | | Require all granted |
| | | <tmpl_else> |
| | | Require all granted |
| | | <tmpl_else> |
| | | Order allow,deny |
| | | Allow from all |
| | | </tmpl_if> |
| | | php_value magic_quotes_gpc 0 |
| | | </tmpl_if> |
| | | php_value magic_quotes_gpc 0 |
| | | </Directory> |
| | | </IfModule> |
| | | |
| | | |
| | | # ErrorLog /var/log/apache2/error.log |
| | | # CustomLog /var/log/apache2/access.log combined |
| | | ServerSignature Off |
| | | |
| | | |
| | | <IfModule mod_security2.c> |
| | | SecRuleEngine Off |
| | | </IfModule> |
| | | |
| | | # SSL Configuration |
| | | <tmpl_var name="ssl_comment">SSLEngine On |
| | | <tmpl_if name='apache_version' op='>=' value='2.3.16' format='version'> |
| | | <tmpl_var name="ssl_comment">SSLProtocol All -SSLv3 |
| | | <tmpl_else> |
| | | <tmpl_var name="ssl_comment">SSLProtocol All -SSLv2 -SSLv3 |
| | | </tmpl_if> |
| | | <tmpl_var name="ssl_comment">SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt |
| | | <tmpl_var name="ssl_comment">SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key |
| | | <tmpl_var name="ssl_bundle_comment">SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle |
| | | |
| | | <tmpl_var name="ssl_comment">SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4 |
| | | <tmpl_var name="ssl_comment">SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS |
| | | <tmpl_var name="ssl_comment">SSLHonorCipherOrder On |
| | | <tmpl_if name='apache_version' op='>=' value='2.4.3' format='version'> |
| | | <tmpl_var name="ssl_comment">SSLCompression Off |
| | | </tmpl_if> |
| | | <tmpl_if name='apache_version' op='>=' value='2.4.11' format='version'> |
| | | <tmpl_var name="ssl_comment">SSLSessionTickets Off |
| | | </tmpl_if> |
| | | |
| | | <IfModule mod_headers.c> |
| | | Header always add Strict-Transport-Security "max-age=15768000" |
| | | </IfModule> |
| | | |
| | | <tmpl_if name='apache_version' op='>=' value='2.4' format='version'> |
| | | <tmpl_var name="ssl_comment">SSLUseStapling on |
| | | <tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'> |
| | | <tmpl_var name="ssl_comment">SSLUseStapling On |
| | | <tmpl_var name="ssl_comment">SSLStaplingResponderTimeout 5 |
| | | <tmpl_var name="ssl_comment">SSLStaplingReturnResponderErrors off |
| | | </tmpl_if> |
| | | <tmpl_var name="ssl_comment">SSLStaplingReturnResponderErrors Off |
| | | </tmpl_if> |
| | | </VirtualHost> |
| | | |
| | | <tmpl_if name='apache_version' op='>=' value='2.4' format='version'> |
| | | <tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'> |
| | | <IfModule mod_ssl.c> |
| | | <tmpl_var name="ssl_comment">SSLStaplingCache shmcb:/var/run/ocsp(128000) |
| | | </IfModule> |
| | | </tmpl_if> |
| | | |
| | | <Directory /var/www/php-cgi-scripts> |
| | | AllowOverride None |
| | | <tmpl_if name='apache_version' op='>' value='2.2' format='version'> |
| | | Require all denied |
| | | <tmpl_else> |
| | | Order Deny,Allow |
| | | Deny from all |
| | | </tmpl_if> |
| | | AllowOverride None |
| | | <tmpl_if name='apache_version' op='>' value='2.2' format='version'> |
| | | Require all denied |
| | | <tmpl_else> |
| | | Order Deny,Allow |
| | | Deny from all |
| | | </tmpl_if> |
| | | </Directory> |
| | | |
| | | <Directory /var/www/php-fcgi-scripts> |
| | | AllowOverride None |
| | | <tmpl_if name='apache_version' op='>' value='2.2' format='version'> |
| | | Require all denied |
| | | <tmpl_else> |
| | | Order Deny,Allow |
| | | Deny from all |
| | | </tmpl_if> |
| | | </Directory> |
| | | AllowOverride None |
| | | <tmpl_if name='apache_version' op='>' value='2.2' format='version'> |
| | | Require all denied |
| | | <tmpl_else> |
| | | Order Deny,Allow |
| | | Deny from all |
| | | </tmpl_if> |
| | | </Directory> |
| | |
| | | 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 |
| | | smtpd_helo_required = yes |
| | | smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname, check_helo_access regexp:{config_dir}/blacklist_helo |
| | | smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re |
| | | smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re |
| | | smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf |
| | | smtpd_client_message_rate_limit = 100 |
| | | maildrop_destination_concurrency_limit = 1 |
| | |
| | | |
| | | $myhostname = '{hostname}'; |
| | | |
| | | $notify_method = 'smtp:[127.0.0.1]:10027'; |
| | | $forward_method = 'smtp:[127.0.0.1]:10025'; # set to undef with milter! |
| | | $notify_method = 'smtp:*:*'; |
| | | $forward_method = 'smtp:*:*'; # set to undef with milter! |
| | | |
| | | # $os_fingerprint_method = 'p0f:127.0.0.1:2345'; # to query p0f-analyzer.pl |
| | | |
| | |
| | | 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 |
| | | smtpd_helo_required = yes |
| | | smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname, check_helo_access regexp:{config_dir}/blacklist_helo |
| | | smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re |
| | | smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re |
| | | smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf |
| | | smtpd_client_message_rate_limit = 100 |
| | | maildrop_destination_concurrency_limit = 1 |
| | |
| | | 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 |
| | | smtpd_helo_required = yes |
| | | smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname, check_helo_access regexp:{config_dir}/blacklist_helo |
| | | smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re |
| | | smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re |
| | | smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf |
| | | smtpd_client_message_rate_limit = 100 |
| | | maildrop_destination_concurrency_limit = 1 |
| | |
| | | |
| | | $myhostname = 'linux-jfp8.site'; |
| | | |
| | | $notify_method = 'smtp:[127.0.0.1]:10027'; |
| | | $forward_method = 'smtp:[127.0.0.1]:10025'; # set to undef with milter! |
| | | $notify_method = 'smtp:*:*'; |
| | | $forward_method = 'smtp:*:*'; # set to undef with milter! |
| | | |
| | | # $final_virus_destiny = D_DISCARD; |
| | | # $final_banned_destiny = D_BOUNCE; |
| | |
| | | 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 |
| | | smtpd_helo_required = yes |
| | | smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_invalid_hostname, reject_non_fqdn_hostname, check_helo_access regexp:{config_dir}/blacklist_helo |
| | | smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re |
| | | smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re |
| | | smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf |
| | | smtpd_client_message_rate_limit = 100 |
| | | maildrop_destination_concurrency_limit = 1 |
| | |
| | | } elseif($conf['bind']['installed'] == true) { |
| | | swriteln('Configuring BIND'); |
| | | $inst->configure_bind(); |
| | | if(!is_installed('haveged')) { |
| | | swriteln("[INFO] haveged not detected - DNSSEC can fail"); |
| | | } |
| | | } else { |
| | | swriteln('Configuring MyDNS'); |
| | | $inst->configure_mydns(); |
| | |
| | | $keys = array_keys($_GET); |
| | | $method = reset($keys); |
| | | $params = array(); |
| | | |
| | | if(is_array($_POST)) { |
| | | foreach($_POST as $key => $val) { |
| | | $tmp = json_decode($val); |
| | | if(!$tmp) $params[] = $val; |
| | | else $params[] = (array)$tmp; |
| | | } |
| | | } |
| | | |
| | | |
| | | $raw = file_get_contents("php://input"); |
| | | $json = json_decode($raw, true); |
| | | if(!is_array($json)) $this->_return_json('invalid_data', 'The JSON data sent to the api is invalid'); |
| | | |
| | | if(array_key_exists($method, $this->methods) == false) { |
| | | $this->_return_json('invalid_method', 'Method ' . $method . ' does not exist'); |
| | | } |
| | |
| | | if(method_exists($this->classes[$class_name], $method) == false) { |
| | | $this->_return_json('invalid_method', 'Method ' . $method . ' does not exist in the class it was expected (' . $class_name . ')'); |
| | | } |
| | | |
| | | |
| | | $methObj = new ReflectionMethod($this->classes[$class_name], $method); |
| | | foreach($methObj->getParameters() as $param) { |
| | | $pname = $param->name; |
| | | if(isset($json[$pname])) $params[] = $json[$pname]; |
| | | else $params[] = null; |
| | | } |
| | | |
| | | try { |
| | | $this->_return_json('ok', '', call_user_func_array(array($this->classes[$class_name], $method), $params)); |
| | | } catch(SoapFault $e) { |
| | |
| | | } |
| | | |
| | | //* Add slashes to all records, when we encode data which shall be inserted into mysql. |
| | | if($dbencode == true) $new_record[$key] = $app->db->quote($new_record[$key]); |
| | | if($dbencode == true && !is_null($new_record[$key])) $new_record[$key] = $app->db->quote($new_record[$key]); |
| | | } |
| | | } |
| | | return $new_record; |
| | |
| | | $this->errorMessage .= $errmsg."<br />\r\n"; |
| | | } |
| | | } |
| | | break; |
| | | case 'ISEMAIL': |
| | | $error = false; |
| | | if($validator['allowempty'] != 'y') $validator['allowempty'] = 'n'; |
| | | if($validator['allowempty'] == 'y' && $field_value == '') { |
| | | //* Do nothing |
| | | } else { |
| | | if(function_exists('filter_var')) { |
| | | if(filter_var($field_value, FILTER_VALIDATE_EMAIL) === false) { |
| | | $error = true; |
| | | } else { |
| | | if (!preg_match("/^[^\\+]+$/", $field_value)) { // * disallow + in local-part |
| | | $error = true; |
| | | } |
| | | } |
| | | if ($error) { |
| | | $errmsg = $validator['errmsg']; |
| | | if(isset($this->wordbook[$errmsg])) { |
| | | $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; |
| | |
| | | $this->errorMessage .= $errmsg."<br />\r\n"; |
| | | } |
| | | } |
| | | |
| | | } else $this->errorMessage .= "function filter_var missing <br />\r\n"; |
| | | } |
| | | unset($error); |
| | | break; |
| | | case 'ISINT': |
| | | if(function_exists('filter_var') && $field_value < 2147483647) { |
| | |
| | | break; |
| | | case 'V6PREFIXLENGTH': |
| | | // find shortes ipv6 subnet can`t be longer |
| | | $sql_v6 = $app->db->queryOneRecord("SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' ORDER BY CHAR_LENGTH(ip_address) ASC LIMIT 0,1;"); |
| | | $sql_v6 = $app->db->queryOneRecord("SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' ORDER BY CHAR_LENGTH(ip_address) ASC LIMIT 0,1"); |
| | | $sql_v6_explode=explode(':',$sql_v6['ip_address']); |
| | | $explode_field_value = explode(':',$field_value); |
| | | if (count($sql_v6_explode) < count($explode_field_value) && isset($sql_v6['ip_address'])) { |
| | |
| | | } |
| | | } else { |
| | | $sql_insert_key .= "`$key`, "; |
| | | $sql_insert_val .= "'".$record[$key]."', "; |
| | | $sql_insert_val .= (is_null($record[$key]) ? 'NULL' : "'".$record[$key]."'") . ", "; |
| | | } |
| | | } else { |
| | | if($field['formtype'] == 'PASSWORD') { |
| | |
| | | $sql_update .= "`$key` = '".$record[$key]."', "; |
| | | } |
| | | } else { |
| | | $sql_update .= "`$key` = '".$record[$key]."', "; |
| | | $sql_update .= "`$key` = " . (is_null($record[$key]) ? 'NULL' : "'".$record[$key]."'") . ", "; |
| | | } |
| | | } |
| | | } else { |
| | |
| | | $wb['backup_mode_txt'] = 'Backupmodus'; |
| | | $wb['backup_mode_userzip'] = 'Backup Dateien gehören dem Web Benutzer (.zip Datei)'; |
| | | $wb['backup_mode_rootgz'] = 'Backup aller Dateien des Webverzeichnisses als Root Benutzer'; |
| | | $wb['backup_time_txt'] = 'Backupzeit'; |
| | | $wb['firewall_txt'] = 'Firewall'; |
| | | $wb['mailbox_quota_stats_txt'] = 'E-Mailkonto Beschränkung Statistiken'; |
| | | $wb['enable_ip_wildcard_txt'] = 'IP Adressen Wildcard (*) aktivieren'; |
| | |
| | | $wb["backup_mode_txt"] = 'Backup mode'; |
| | | $wb["backup_mode_userzip"] = 'Backup web files owned by web user as zip'; |
| | | $wb["backup_mode_rootgz"] = 'Backup all files in web directory as root user'; |
| | | $wb["backup_time_txt"] = 'Backup time'; |
| | | $wb["server_type_txt"] = 'Server Type'; |
| | | $wb["nginx_vhost_conf_dir_txt"] = 'Nginx Vhost config dir'; |
| | | $wb["nginx_vhost_conf_enabled_dir_txt"] = 'Nginx Vhost config enabled dir'; |
| | |
| | | <tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if> |
| | | |
| | | <div class="form-group"> |
| | | <div style="float:left;width:100%"> |
| | | <p class="label" style="width:270px">{tmpl_var name='use_domain_module_txt'}</p> |
| | | <div class="col-sm-9"> |
| | | {tmpl_var name='use_domain_module'} |
| | | </div> |
| | | <div class="col-sm-3 text-right"> |
| | | {tmpl_var name='use_domain_module'} |
| | | </div> |
| | | <div style="float:left;width:500px;margin-top:20px">{tmpl_var name='use_domain_module_hint'}</div> |
| | | <div class="col-sm-9"> |
| | | <p><strong>{tmpl_var name='use_domain_module_txt'}</strong></p> |
| | | <p>{tmpl_var name='use_domain_module_hint'}</p> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">{tmpl_var name='new_domain_txt'}</label> |
| | |
| | | 'class'=> 'custom_datasource', |
| | | 'function'=> 'client_servers' |
| | | ), |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'no_mail_server_error'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_client', |
| | | 'function' => 'check_used_servers', |
| | | 'errmsg'=> 'mail_servers_used'), |
| | |
| | | 'class'=> 'custom_datasource', |
| | | 'function'=> 'client_servers' |
| | | ), |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'no_web_server_error'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_client', |
| | | 'function' => 'check_used_servers', |
| | | 'errmsg'=> 'web_servers_used'), |
| | |
| | | 'class'=> 'custom_datasource', |
| | | 'function'=> 'client_servers' |
| | | ), |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'no_dns_server_error'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_client', |
| | | 'function' => 'check_used_servers', |
| | | 'errmsg'=> 'dns_servers_used'), |
| | |
| | | 'class'=> 'custom_datasource', |
| | | 'function'=> 'client_servers' |
| | | ), |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'no_db_server_error'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_client', |
| | | 'function' => 'check_used_servers', |
| | | 'errmsg'=> 'db_servers_used'), |
| | |
| | | 'keyfield'=> 'server_id', |
| | | 'valuefield'=> 'server_name' |
| | | ), |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'no_mail_server_error'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_client', |
| | | 'function' => 'check_used_servers', |
| | | 'errmsg'=> 'mail_servers_used'), |
| | |
| | | 'keyfield'=> 'server_id', |
| | | 'valuefield'=> 'server_name' |
| | | ), |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'no_web_server_error'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_client', |
| | | 'function' => 'check_used_servers', |
| | | 'errmsg'=> 'web_servers_used'), |
| | |
| | | 'keyfield'=> 'server_id', |
| | | 'valuefield'=> 'server_name' |
| | | ), |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'no_dns_server_error'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_client', |
| | | 'function' => 'check_used_servers', |
| | | 'errmsg'=> 'dns_servers_used'), |
| | |
| | | 'keyfield'=> 'server_id', |
| | | 'valuefield'=> 'server_name' |
| | | ), |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'no_db_server_error'), |
| | | 1 => array ( 'type' => 'CUSTOM', |
| | | 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', |
| | | 'class' => 'validate_client', |
| | | 'function' => 'check_used_servers', |
| | | 'errmsg'=> 'db_servers_used'), |
| | |
| | | </a> |
| | | </h4> |
| | | </div> |
| | | <div id="collapseMail" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingMail> |
| | | <div id="collapseMail" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingMail"> |
| | | <div class="panel-body"> |
| | | <div class="form-group"> |
| | | <label for="limit_maildomain" class="col-sm-3 control-label">{tmpl_var name='limit_maildomain_txt'}</label> |
| | |
| | | |
| | | <tfoot> |
| | | <tr> |
| | | <td colspan="4"><tmpl_var name="paging"></td> |
| | | <td colspan="3"><tmpl_var name="paging"></td> |
| | | </tr> |
| | | </tfoot> |
| | | </table> |
| | | </div> |
| | | |
| | | |
| | | |
| | |
| | | <div class='title'>{tmpl_var name='modules_title'}</div> |
| | | </div> |
| | | </div> |
| | | <a href='#' class='btn btn-default button' data-capp='{tmpl_var name="modules_name"}'>Go to {tmpl_var name='modules_title'}</a> |
| | | <a href='#' class='btn btn-default button' data-capp='{tmpl_var name="modules_name"}'>{tmpl_var name='go_to_txt'} {tmpl_var name='modules_title'}</a> |
| | | </li> |
| | | </tmpl_loop> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Available Modules'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Налични Модули'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Módulos Disponíveis'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Modules disponibles'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Dostupné moduly'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Verfügbare Module'; |
| | | $wb['go_to_txt'] = 'Gehe zu'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Διαθέσιμα αρθρώματα'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = "Available Modules"; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Módulos disponibles'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Available Modules'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Modules disponibles'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Dostupni moduli'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Elérhető Modulok'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Modul yang tersedia'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Moduli disponibili'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Available Modules'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Beschikbare modules'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Dostępne moduły'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Available Modules'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Available Modules'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Доступные модули'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Tillgängliga moduler'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Available Modules'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | <?php |
| | | $wb['available_modules_txt'] = 'Kullanılabilecek Modüller'; |
| | | $wb['go_to_txt'] = 'Go to'; |
| | | ?> |
| | |
| | | } |
| | | $spf_ip = trim($this->dataRecord['spf_ip']); |
| | | if (!empty($spf_ip)) { |
| | | $rec = split(' ', $spf_ip); |
| | | $rec = explode(' ', $spf_ip); |
| | | foreach ($rec as $ip) { |
| | | $temp_ip = explode('/', $ip); |
| | | if (filter_var($temp_ip[0], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { |
| | |
| | | } |
| | | $spf_hostname = trim($this->dataRecord['spf_hostname']); |
| | | if (!empty($spf_hostname)) { |
| | | $rec = split(' ', $spf_hostname); |
| | | $rec = explode(' ', $spf_hostname); |
| | | foreach ($rec as $hostname) { |
| | | if (preg_match('/^[a-zA-Z0-9\\.\\-\\*]{0,64}$/', $hostname)) |
| | | $spf_record[] = 'a:' . $hostname; |
| | |
| | | } |
| | | $spf_domain = trim($this->dataRecord['spf_domain']); |
| | | if (!empty($spf_domain)) { |
| | | $rec = split(' ', $spf_domain); |
| | | $rec = explode(' ', $spf_domain); |
| | | foreach ($rec as $domain) { |
| | | if (preg_match('/^[_a-zA-Z0-9\\.\\-\\*]{0,64}$/', $domain)) |
| | | $spf_record[] = 'include:' . $domain; |
| | |
| | | elseif(isset($_POST['ns2']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9]{2,30}$/', $_POST['ns2'])) $error .= $app->lng('error_ns2_regex').'<br />'; |
| | | |
| | | if(isset($_POST['email']) && $_POST['email'] == '') $error .= $app->lng('error_email_empty').'<br />'; |
| | | elseif(isset($_POST['email']) && !preg_match('/^\w+[\w.-]*\w+@\w+[\w.-]*\w+\.[a-z0-9\-]{2,30}$/i', $_POST['email'])) $error .= $app->lng('error_email_regex').'<br />'; |
| | | elseif(isset($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) $error .= $app->lng('error_email_regex').'<br />'; |
| | | |
| | | // make sure that the record belongs to the client group and not the admin group when admin inserts it |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($_POST['client_group_id'])) { |
| | |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'name_error_empty'), |
| | | 1 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[a-zA-Z0-9\.\-]{1,255}$/', |
| | | 'regex' => '/^[a-zA-Z0-9\.\-\_]{1,255}$/', |
| | | 'errmsg'=> 'name_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'mbox_error_empty'), |
| | | 1 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[a-zA-Z0-9\.\-\_]{0,255}\.$/', |
| | | 'regex' => '/^[a-zA-Z0-9\.\-\_\+]{0,255}\.$/', |
| | | 'errmsg'=> 'mbox_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | <tmpl_loop name="records"> |
| | | <tr> |
| | | <td><a target="_blank" href="http://{tmpl_var name="domain"}/stats">{tmpl_var name="domain"}</a></td> |
| | | <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="this_month"} MB</a></td> |
| | | <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="last_month"} MB</a></td> |
| | | <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="this_year"} MB</a></td> |
| | | <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="last_year"} MB</a></td> |
| | | <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="this_month"}</a></td> |
| | | <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="last_month"}</a></td> |
| | | <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="this_year"}</a></td> |
| | | <td><a href="#" data-load-content="sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}">{tmpl_var name="last_year"}</a></td> |
| | | <td class="text-right"></td> |
| | | </tr> |
| | | </tmpl_loop> |
| | |
| | | </tmpl_unless> |
| | | <tr> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_txt"}</a></td> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_this_month"} MB</a></td> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_last_month"} MB</a></td> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_this_year"} MB</a></td> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_last_year"} MB</a></td> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_this_month"}</a></td> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_last_month"}</a></td> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_this_year"}</a></td> |
| | | <td><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_last_year"}</a></td> |
| | | <td class="text-right"></td> |
| | | </tr> |
| | | </tbody> |
| | |
| | | {tmpl_var name='ip_address'} |
| | | </select></div> |
| | | </div> |
| | | <div class="form-group" style="display:none"> |
| | | <div class="form-group"> |
| | | <label for="ipv6_address" class="col-sm-3 control-label">{tmpl_var name='ipv6_address_txt'}</label> |
| | | <div class="col-sm-9"><select name="ipv6_address" id="ipv6_address" class="form-control"> |
| | | {tmpl_var name='ipv6_address'} |
| | |
| | | * Now we have to check, if we should use the domain-module to select the domain |
| | | * or not |
| | | */ |
| | | $settings = $app->getconf->get_global_config('domains'); |
| | | if ($settings['use_domain_module'] == 'y') { |
| | | /* |
| | | * The domain-module is in use. |
| | |
| | | transition: background ease 500ms; } |
| | | .table tbody tr:last-child { |
| | | border-radius: 4px; } |
| | | .table tbody tr td { |
| | | text-overflow: ellipsis; |
| | | overflow-x: hidden; } |
| | | |
| | | .tfooter { |
| | | margin-top: -1px; |
| | |
| | | body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:normal}.control-label:after{content:":"}.formbutton-default{padding:6px 30px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform>div{position:relative;display:table}#searchform>div>div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:bold}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar>div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:bold;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:bold;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:bold}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:bold;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs>li>a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:0;font-weight:bold;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:normal}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:bold;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:bold;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:normal}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:bold}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url("../images/flags_sprite.png");background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#logo{background-image:url("../images/logo@2x.png");background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0} |
| | | body{overflow-y:scroll}.left{float:left}.right{float:right}.clear:after{content:"";display:table;clear:both}.marginTop15{margin-top:15px}.paddingX5{padding-left:5px!important;padding-right:5px!important}.width65{width:65px}.form-group input[type='checkbox']{margin-top:10px}.control-label{font-weight:normal}.control-label:after{content:":"}.formbutton-default{padding:6px 30px;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-success,.formbutton-danger{padding:6px 30px;border-style:solid;border-width:1px;border-bottom-width:solid;font-size:12px;font-weight:bold;transition:all ease 500ms}.formbutton-narrow{padding:6px 8px;margin-left:2px;margin-right:2px}.formbutton-narrower{padding:4px 6px}#main-wrapper{margin:0 auto;width:95%;max-width:1260px}#logo{float:left;width:200px;height:65px;margin-top:10px}#logo a{display:block;width:100%;height:100%}#headerbar{float:right}#searchform{float:right;margin-top:16px}#searchform>div{position:relative;display:table}#searchform>div>div{display:table-cell;padding-right:8px;vertical-align:top}#searchform .icon{padding:0 2px;font-size:16px}#logout-button{float:right;margin-top:16px;margin-left:25px;border-bottom-style:solid;border-bottom-width:2px;transition:all ease 500ms}#main-navigation{margin-top:24px}#main-navigation a{padding:0 12px;height:70px;border-bottom-style:solid;botder-bottom-width:2px;transition:all ease 500ms}#main-navigation .icon{font-size:32px}#main-navigation .title{margin-top:2px;font-weight:bold}.btn-group-justified .btn{border-right-width:0}.btn-group-justified .btn:last-of-type{border-right-width:1px}#content{width:78%}#passBar,#passText{display:inline-block;vertical-align:middle}#passBar{height:11px;padding:0}#passBar>div{height:100%;padding:0}#sidebar{margin-top:27px;width:18%;border-style:solid;border-width:1px;border-radius:4px}#sidebar header{margin:1px;padding:0 10px;height:40px;line-height:40px;font-weight:bold;border-top-left-radius:2px;border-top-right-radius:2px}#sidebar ul{margin:0;padding:0;list-style:none}#sidebar li{padding:10px;border-top-style:solid;border-top-width:1px;font-size:12px}#sidebar a{text-decoration:none;transition:color ease 500ms}.page-header{margin:20px 0;padding:0}.alert-notification a{font-weight:bold;text-decoration:none;transition:color ease 500ms}.alert-label,.alert-content{display:inline-block;vertical-align:top}.alert-label{width:60px}.modules{margin:0;padding:0;list-style:none}.modules li{float:left;margin-right:15px;margin-bottom:15px;padding:8px;width:200px;border-radius:4px;border-style:solid;border-width:1px}.modules .icon{float:left;margin-right:15px;font-size:50px}.modules .left{margin-top:5px}.modules .title{margin-top:6px;margin-left:20px;font-size:16px;font-weight:bold}.modules .button{margin-top:10px;width:100%;border-bottom-style:solid;border-bottom-width:2px;font-size:12px;font-weight:bold;transition:all ease 500ms}.modules a{text-decoration:none}.table-wrapper{margin-bottom:20px;border-radius:4px;border-style:solid;border-width:1px}.table{table-layout:fixed;margin-bottom:1px}.table caption{padding:5px 10px;text-align:left;font-weight:bold;font-size:18px;border-bottom-style:solid;border-bottom-width:1px}.table tbody tr{border-top-style:solid;border-top-width:1px;transition:background ease 500ms}.table tbody tr:last-child{border-radius:4px}.table tbody tr td{text-overflow:ellipsis;overflow-x:hidden}.tfooter{margin-top:-1px;height:40px;border-top-style:solid;border-top-width:1px}.pagination{margin:10px 0}.progress{display:inline-block;margin-bottom:0;width:150px;height:10px}p.fieldset-legend{display:none}.content-tab-wrapper{border-style:solid;border-width:1px;border-radius:4px}.content-tab-wrapper .nav-tabs>li>a{border-radius:0;border:none!important;border-right-style:solid!important;border-right-width:1px!important;outline:0;font-weight:bold;transition:background ease 500ms}.content-tab-wrapper .nav-tabs li:not(:first-child) a{margin-left:-2px}.tab-content{padding:25px 10px}.input-group-btn .icon-calendar{font-size:18px}thead.dark th{height:40px;line-height:40px;font-weight:normal}thead.dark th.small-col{width:14%}thead.dark th.tiny-col{width:8%;overflow:hidden;text-overflow:ellipsis}thead.dark th[data-column]{cursor:pointer}thead.dark th[data-column][data-ordered]{font-weight:bold;position:relative}thead.dark th[data-column][data-ordered]:before{content:"";display:block;position:absolute;right:5px;top:16px;width:0;height:0;vertical-align:middle;border-bottom:5px solid #fff;border-top:5px solid transparent;border-right:5px solid transparent;border-left:6px solid transparent;line-height:inherit}thead.dark th[data-column][data-ordered="desc"]:before{top:21px;border-bottom:5px solid transparent;border-top:5px solid #fff}thead.dark td input,thead.dark td select{width:100%}#footer{margin:20px 0;padding-top:20px;border-top-style:solid;border-top-width:1px;text-align:center;font-size:10px}.menu-btn{display:none;cursor:pointer}.df-container,.gs-container{position:relative}.gs-container:after{content:"";display:table;clear:both}ul.df-resultbox,ul.gs-resultbox{display:block;position:absolute;left:0;top:100%;margin:0;padding:0 0 10px;min-width:250px;max-width:500px;z-index:999999;background:#fff;list-style:none;box-shadow:2px 2px 5px #c5c5c5;border-radius:5px}ul.df-resultbox li,ul.gs-resultbox li{float:none;display:block;cursor:pointer;padding:0 10px}ul.gs-resultbox li{padding:3px 10px;line-height:1.1;font-size:.9em}ul.df-resultbox li:nth-child(even),ul.gs-resultbox li:nth-child(even){background:#f2f5f7}ul.df-resultbox li.df-cheader,ul.gs-resultbox li.gs-cheader{background:#fff;padding-top:10px;margin-bottom:10px}ul.df-resultbox li p,ul.gs-resultbox li p{margin-bottom:0;color:inherit}ul.df-resultbox li.df-cheader p.df-cheader-title,ul.gs-resultbox li.gs-cheader p.gs-cheader-title{font-weight:bold;margin-bottom:0}ul.df-resultbox li.df-cheader p.df-cheader-limit,ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{font-weight:normal}ul.df-resultbox li.df-cdata img,ul.gs-resultbox li.gs-cdata img{margin-right:12px}ul.df-resultbox li.df-cdata p span.df-cdata-title,ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{font-weight:bold}ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{display:block}ul.df-resultbox li:first-child,ul.gs-resultbox li:first-child{border-top-left-radius:5px;border-top-right-radius:5px}ul.df-resultbox li:last-child,ul.gs-resultbox li:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}span.flags{background-image:url("../images/flags_sprite.png");background-repeat:no-repeat;min-height:20px;padding-left:27px;vertical-align:middle}span.flag-el{background-position:0 -1475px}span.flag-ad{background-position:0 -1px}span.flag-ae{background-position:0 -23px}span.flag-af{background-position:0 -45px}span.flag-ag{background-position:0 -67px}span.flag-ai{background-position:0 -89px}span.flag-al{background-position:0 -111px}span.flag-am{background-position:0 -133px}span.flag-an{background-position:0 -155px}span.flag-ao{background-position:0 -177px}span.flag-aq{background-position:0 -199px}span.flag-ar{background-position:0 -221px}span.flag-as{background-position:0 -243px}span.flag-at{background-position:0 -265px}span.flag-au{background-position:0 -287px}span.flag-aw{background-position:0 -309px}span.flag-ax{background-position:0 -331px}span.flag-az{background-position:0 -353px}span.flag-ba{background-position:0 -375px}span.flag-bb{background-position:0 -397px}span.flag-bd{background-position:0 -419px}span.flag-be{background-position:0 -441px}span.flag-bf{background-position:0 -463px}span.flag-bg{background-position:0 -485px}span.flag-bh{background-position:0 -507px}span.flag-bi{background-position:0 -529px}span.flag-bj{background-position:0 -551px}span.flag-bm{background-position:0 -573px}span.flag-bn{background-position:0 -595px}span.flag-bo{background-position:0 -617px}span.flag-br{background-position:0 -639px}span.flag-bs{background-position:0 -661px}span.flag-bt{background-position:0 -683px}span.flag-bv{background-position:0 -705px}span.flag-bw{background-position:0 -727px}span.flag-by{background-position:0 -749px}span.flag-bz{background-position:0 -771px}span.flag-ca{background-position:0 -793px}span.flag-cc{background-position:0 -837px}span.flag-cd{background-position:0 -859px}span.flag-cf{background-position:0 -881px}span.flag-cg{background-position:0 -903px}span.flag-ch{background-position:0 -925px}span.flag-ci{background-position:0 -947px}span.flag-ck{background-position:0 -969px}span.flag-cl{background-position:0 -991px}span.flag-cm{background-position:0 -1013px}span.flag-cn{background-position:0 -1035px}span.flag-co{background-position:0 -1057px}span.flag-cr{background-position:0 -1079px}span.flag-cs{background-position:0 -1101px}span.flag-cu{background-position:0 -1123px}span.flag-cv{background-position:0 -1145px}span.flag-cx{background-position:0 -1167px}span.flag-cy{background-position:0 -1189px}span.flag-cz{background-position:0 -1211px}span.flag-de{background-position:0 -1233px}span.flag-dj{background-position:0 -1255px}span.flag-dk{background-position:0 -1277px}span.flag-dm{background-position:0 -1299px}span.flag-do{background-position:0 -1321px}span.flag-dz{background-position:0 -1343px}span.flag-ec{background-position:0 -1365px}span.flag-ee{background-position:0 -1387px}span.flag-eg{background-position:0 -1409px}span.flag-eh{background-position:0 -1431px}span.flag-er{background-position:0 -1475px}span.flag-es{background-position:0 -1497px}span.flag-et{background-position:0 -1519px}span.flag-fi{background-position:0 -1585px}span.flag-fj{background-position:0 -1607px}span.flag-fk{background-position:0 -1629px}span.flag-fm{background-position:0 -1651px}span.flag-fo{background-position:0 -1673px}span.flag-fr{background-position:0 -1695px}span.flag-ga{background-position:0 -1717px}span.flag-gb,span.flag-en{background-position:0 -1739px}span.flag-gd{background-position:0 -1761px}span.flag-ge{background-position:0 -1783px}span.flag-gf{background-position:0 -1805px}span.flag-gh{background-position:0 -1827px}span.flag-gi{background-position:0 -1849px}span.flag-gl{background-position:0 -1871px}span.flag-gm{background-position:0 -1893px}span.flag-gn{background-position:0 -1915px}span.flag-gp{background-position:0 -1937px}span.flag-gq{background-position:0 -1959px}span.flag-gr{background-position:0 -1981px}span.flag-gs{background-position:0 -2003px}span.flag-gt{background-position:0 -2025px}span.flag-gu{background-position:0 -2047px}span.flag-gw{background-position:0 -2069px}span.flag-gy{background-position:0 -2091px}span.flag-hk{background-position:0 -2113px}span.flag-hm{background-position:0 -2135px}span.flag-hn{background-position:0 -2157px}span.flag-hr{background-position:0 -2179px}span.flag-ht{background-position:0 -2201px}span.flag-hu{background-position:0 -2223px}span.flag-id{background-position:0 -2245px}span.flag-ie{background-position:0 -2267px}span.flag-il{background-position:0 -2289px}span.flag-in{background-position:0 -2311px}span.flag-io{background-position:0 -2333px}span.flag-iq{background-position:0 -2355px}span.flag-ir{background-position:0 -2377px}span.flag-is{background-position:0 -2399px}span.flag-it{background-position:0 -2421px}span.flag-jm{background-position:0 -2443px}span.flag-jo{background-position:0 -2465px}span.flag-jp{background-position:0 -2487px}span.flag-ke{background-position:0 -2509px}span.flag-kg{background-position:0 -2531px}span.flag-kh{background-position:0 -2553px}span.flag-ki{background-position:0 -2575px}span.flag-km{background-position:0 -2597px}span.flag-kn{background-position:0 -2619px}span.flag-kp{background-position:0 -2641px}span.flag-kr{background-position:0 -2663px}span.flag-kw{background-position:0 -2685px}span.flag-ky{background-position:0 -2707px}span.flag-kz{background-position:0 -2729px}span.flag-la{background-position:0 -2751px}span.flag-lb{background-position:0 -2773px}span.flag-lc{background-position:0 -2795px}span.flag-li{background-position:0 -2817px}span.flag-lk{background-position:0 -2839px}span.flag-lr{background-position:0 -2861px}span.flag-ls{background-position:0 -2883px}span.flag-lt{background-position:0 -2905px}span.flag-lu{background-position:0 -2927px}span.flag-lv{background-position:0 -2949px}span.flag-ly{background-position:0 -2971px}span.flag-ma{background-position:0 -2993px}span.flag-mc{background-position:0 -3015px}span.flag-md{background-position:0 -3037px}span.flag-me{background-position:0 -3059px}span.flag-mg{background-position:0 -3081px}span.flag-mh{background-position:0 -3103px}span.flag-mk{background-position:0 -3125px}span.flag-ml{background-position:0 -3147px}span.flag-mm{background-position:0 -3169px}span.flag-mn{background-position:0 -3191px}span.flag-mo{background-position:0 -3213px}span.flag-mp{background-position:0 -3235px}span.flag-mq{background-position:0 -3257px}span.flag-mr{background-position:0 -3279px}span.flag-ms{background-position:0 -3301px}span.flag-mt{background-position:0 -3323px}span.flag-mu{background-position:0 -3345px}span.flag-mv{background-position:0 -3367px}span.flag-mw{background-position:0 -3389px}span.flag-mx{background-position:0 -3411px}span.flag-my{background-position:0 -3433px}span.flag-mz{background-position:0 -3455px}span.flag-na{background-position:0 -3477px}span.flag-nc{background-position:0 -3499px}span.flag-ne{background-position:0 -3521px}span.flag-nf{background-position:0 -3543px}span.flag-ng{background-position:0 -3565px}span.flag-ni{background-position:0 -3587px}span.flag-nl{background-position:0 -3609px}span.flag-no{background-position:0 -3631px}span.flag-np{background-position:0 -3653px}span.flag-nr{background-position:0 -3675px}span.flag-nu{background-position:0 -3697px}span.flag-nz{background-position:0 -3719px}span.flag-om{background-position:0 -3741px}span.flag-pa{background-position:0 -3763px}span.flag-pe{background-position:0 -3785px}span.flag-pf{background-position:0 -3807px}span.flag-pg{background-position:0 -3829px}span.flag-ph{background-position:0 -3851px}span.flag-pk{background-position:0 -3873px}span.flag-pl{background-position:0 -3895px}span.flag-pm{background-position:0 -3917px}span.flag-pn{background-position:0 -3939px}span.flag-pr{background-position:0 -3961px}span.flag-ps{background-position:0 -3983px}span.flag-pt{background-position:0 -4005px}span.flag-pw{background-position:0 -4027px}span.flag-py{background-position:0 -4049px}span.flag-qa{background-position:0 -4071px}span.flag-re{background-position:0 -4093px}span.flag-ro{background-position:0 -4115px}span.flag-rs{background-position:0 -4137px}span.flag-ru{background-position:0 -4159px}span.flag-rw{background-position:0 -4181px}span.flag-sa{background-position:0 -4203px}span.flag-sb{background-position:0 -4225px}span.flag-sc{background-position:0 -4247px}span.flag-sd{background-position:0 -4291px}span.flag-se{background-position:0 -4313px}span.flag-sg{background-position:0 -4335px}span.flag-sh{background-position:0 -4357px}span.flag-si{background-position:0 -4379px}span.flag-sj{background-position:0 -4401px}span.flag-sk{background-position:0 -4423px}span.flag-sl{background-position:0 -4445px}span.flag-sm{background-position:0 -4467px}span.flag-sn{background-position:0 -4489px}span.flag-so{background-position:0 -4511px}span.flag-sr{background-position:0 -4533px}span.flag-st{background-position:0 -4555px}span.flag-sv{background-position:0 -4577px}span.flag-sy{background-position:0 -4599px}span.flag-sz{background-position:0 -4621px}span.flag-tc{background-position:0 -4643px}span.flag-td{background-position:0 -4665px}span.flag-tf{background-position:0 -4687px}span.flag-tg{background-position:0 -4709px}span.flag-th{background-position:0 -4731px}span.flag-tj{background-position:0 -4753px}span.flag-tk{background-position:0 -4775px}span.flag-tl{background-position:0 -4797px}span.flag-tm{background-position:0 -4819px}span.flag-tn{background-position:0 -4841px}span.flag-to{background-position:0 -4863px}span.flag-tr{background-position:0 -4885px}span.flag-tt{background-position:0 -4907px}span.flag-tv{background-position:0 -4929px}span.flag-tw{background-position:0 -4951px}span.flag-tz{background-position:0 -4973px}span.flag-ua{background-position:0 -4995px}span.flag-ug{background-position:0 -5017px}span.flag-um{background-position:0 -5039px}span.flag-us{background-position:0 -5061px}span.flag-uy{background-position:0 -5083px}span.flag-uz{background-position:0 -5105px}span.flag-va{background-position:0 -5127px}span.flag-vc{background-position:0 -5149px}span.flag-ve{background-position:0 -5171px}span.flag-vg{background-position:0 -5193px}span.flag-vi{background-position:0 -5215px}span.flag-vn{background-position:0 -5237px}span.flag-vu{background-position:0 -5259px}span.flag-wf{background-position:0 -5303px}span.flag-ws{background-position:0 -5325px}span.flag-ye{background-position:0 -5347px}span.flag-yt{background-position:0 -5369px}span.flag-za{background-position:0 -5391px}span.flag-zm{background-position:0 -5413px}span.flag-zw{background-position:0 -5435px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#logo{background-image:url("../images/logo@2x.png");background-size:200px 65px}}.input-group-field{display:table-cell;vertical-align:middle;border-radius:4px;min-width:1%;white-space:nowrap}.input-group-field .form-control{border-radius:inherit!important}.input-group-field:not(:first-child):not(:last-child){border-radius:0}.input-group-field:not(:first-child):not(:last-child) .form-control{border-left-width:0;border-right-width:0}.input-group-field:last-child{border-top-left-radius:0;border-bottom-left-radius:0} |
New file |
| | |
| | | <?php |
| | | |
| | | |
| | | $remote_user = 'test'; |
| | | $remote_pass = 'apipassword'; |
| | | $remote_url = 'https://yourserver.com:8080/remote/json.php'; |
| | | |
| | | function restCall($method, $data) { |
| | | global $remote_url; |
| | | |
| | | if(!is_array($data)) return false; |
| | | $json = json_encode($data); |
| | | |
| | | $curl = curl_init(); |
| | | curl_setopt($curl, CURLOPT_POST, 1); |
| | | |
| | | if($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $json); |
| | | |
| | | // needed for self-signed cert |
| | | curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); |
| | | curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); |
| | | // end of needed for self-signed cert |
| | | |
| | | curl_setopt($curl, CURLOPT_URL, $remote_url . '?' . $method); |
| | | curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); |
| | | |
| | | $result = curl_exec($curl); |
| | | curl_close($curl); |
| | | |
| | | return $result; |
| | | } |
| | | |
| | | $result = restCall('login', array('username' => $remote_user, 'password' => $remote_pass, 'client_login' => false)); |
| | | if($result) { |
| | | $data = json_decode($result, true); |
| | | if(!$data) die("ERROR!\n"); |
| | | |
| | | $session_id = $data['response']; |
| | | |
| | | $result = restCall('client_get', array('session_id' => $session_id, 'client_id' => array('username' => 'abcde'))); |
| | | if($result) var_dump(json_decode($result, true)); |
| | | else print "Could not get client_get result\n"; |
| | | |
| | | // or by id |
| | | $result = restCall('client_get', array('session_id' => $session_id, 'client_id' => 2)); |
| | | if($result) var_dump(json_decode($result, true)); |
| | | else print "Could not get client_get result\n"; |
| | | |
| | | // or all |
| | | $result = restCall('client_get', array('session_id' => $session_id, 'client_id' => array())); |
| | | if($result) var_dump(json_decode($result, true)); |
| | | else print "Could not get client_get result\n"; |
| | | |
| | | $result = restCall('logout', array('session_id' => $session_id)); |
| | | if($result) var_dump(json_decode($result, true)); |
| | | else print "Could not get logout result\n"; |
| | | } |
| | |
| | | LogFormat "%v %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig |
| | | CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig |
| | | |
| | | <IfModule mod_headers.c> |
| | | <LocationMatch "/.well-known/acme-challenge/*"> |
| | | Header set Content-Type "text/plain" |
| | | </LocationMatch> |
| | | </IfModule> |
| | | |
| | | <Directory /var/www/clients> |
| | | AllowOverride None |
| | | <tmpl_if name='apache_version' op='>' value='2.2' format='version'> |
| | |
| | | Order Deny,Allow |
| | | Deny from all |
| | | </tmpl_if> |
| | | |
| | | <IfModule mod_headers.c> |
| | | <LocationMatch "/.well-known/acme-challenge/*"> |
| | | Header set Content-Type "text/plain" |
| | | </LocationMatch> |
| | | </IfModule> |
| | | |
| | | </Directory> |
| | | |
| | | # Do not allow access to the root file system of the server for security reasons |
| | |
| | | } |
| | | </tmpl_if> |
| | | |
| | | location /\.well-known/acme-challenge { |
| | | root /usr/local/ispconfig/interface/acme/.well-known/acme-challenge; |
| | | location ~ /\.well-known/acme-challenge/ { |
| | | root /usr/local/ispconfig/interface/acme/; |
| | | index index.html index.htm; |
| | | try_files $uri =404; |
| | | } |
| | |
| | | |
| | | server_name <tmpl_var name='rewrite_domain'>; |
| | | |
| | | location /\.well-known/acme-challenge { |
| | | root /usr/local/ispconfig/interface/acme-challenge; |
| | | location ~ /\.well-known/acme-challenge/ { |
| | | root /usr/local/ispconfig/interface/acme/; |
| | | index index.html index.htm; |
| | | try_files $uri =404; |
| | | } |
| | |
| | | global $app, $conf; |
| | | |
| | | if(file_exists("/root/.local/share/letsencrypt/bin/letsencrypt")) { |
| | | exec('/root/.local/share/letsencrypt/bin/letsencrypt renew'); |
| | | exec('/root/.local/share/letsencrypt/bin/letsencrypt -n renew'); |
| | | $app->services->restartServiceDelayed('httpd', 'reload'); |
| | | } |
| | | |
| | | parent::onRunJob(); |
| | |
| | | //* check if we have already a Let's Encrypt cert |
| | | if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) { |
| | | $app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG); |
| | | |
| | | |
| | | $success = false; |
| | | if(file_exists("/root/.local/share/letsencrypt/bin/letsencrypt")) { |
| | | $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme"); |
| | | $success = $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme"); |
| | | } |
| | | }; |
| | | if(!$success) { |
| | | // error issuing cert |
| | | $app->log('Let\'s Encrypt SSL Cert for: ' . $domain . ' could not be issued.', LOGLEVEL_WARN); |
| | | $data['new']['ssl_letsencrypt'] = 'n'; |
| | | if($data['old']['ssl'] == 'n') $data['new']['ssl'] = 'n'; |
| | | /* Update the DB of the (local) Server */ |
| | | $app->db->query("UPDATE web_domain SET `ssl` = ?, `ssl_letsencrypt` = ? WHERE `domain` = ?", $data['new']['ssl'], 'n', $data['new']['domain']); |
| | | /* Update also the master-DB of the Server-Farm */ |
| | | $app->dbmaster->query("UPDATE web_domain SET `ssl` = ?, `ssl_letsencrypt` = ? WHERE `domain` = ?", $data['new']['ssl'], 'n', $data['new']['domain']); |
| | | } |
| | | } |
| | | |
| | | //* check is been correctly created |
| | | if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) { |
| | |
| | | |
| | | /* we don't need to store it. |
| | | /* Update the DB of the (local) Server */ |
| | | $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '$ssl_cert', ssl_key = '$ssl_key' WHERE domain = '".$data['new']['domain']."'"); |
| | | $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'"); |
| | | $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '', ssl_key = '' WHERE domain = ?", $data['new']['domain']); |
| | | $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); |
| | | /* Update also the master-DB of the Server-Farm */ |
| | | $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '$ssl_cert', ssl_key = '$ssl_key' WHERE domain = '".$data['new']['domain']."'"); |
| | | $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'"); |
| | | $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '', ssl_key = '' WHERE domain = ?", $data['new']['domain']); |
| | | $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); |
| | | } |
| | | } |
| | | |
| | |
| | | //* Wrapper for exec function for easier debugging |
| | | private function _exec($command) { |
| | | global $app; |
| | | $out = array(); |
| | | $ret = 0; |
| | | $app->log('exec: '.$command, LOGLEVEL_DEBUG); |
| | | exec($command); |
| | | exec($command, $out, $ret); |
| | | if($ret != 0) return false; |
| | | else return true; |
| | | } |
| | | |
| | | private function _checkTcp ($host, $port) { |
| | |
| | | $file_system = explode(" ", $df_output)[0]; |
| | | $primitive_root = explode(" ", $df_output)[1]; |
| | | |
| | | if ( $file_system , array('ext2','ext3','ext4') ) { |
| | | if ( in_array($file_system , array('ext2','ext3','ext4'), true) ) { |
| | | exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null'); |
| | | exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null'); |
| | | } elseif ($file_system == 'xfs') { |
| | |
| | | //* check if we have already a Let's Encrypt cert |
| | | if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) { |
| | | $app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG); |
| | | |
| | | |
| | | $success = false; |
| | | if(file_exists("/root/.local/share/letsencrypt/bin/letsencrypt")) { |
| | | $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme"); |
| | | $success = $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme"); |
| | | } |
| | | }; |
| | | if(!$success) { |
| | | // error issuing cert |
| | | $app->log('Let\'s Encrypt SSL Cert for: ' . $domain . ' could not be issued.', LOGLEVEL_WARN); |
| | | $data['new']['ssl_letsencrypt'] = 'n'; |
| | | if($data['old']['ssl'] == 'n') $data['new']['ssl'] = 'n'; |
| | | /* Update the DB of the (local) Server */ |
| | | $app->db->query("UPDATE web_domain SET `ssl` = ?, `ssl_letsencrypt` = ? WHERE `domain` = ?", $data['new']['ssl'], 'n', $data['new']['domain']); |
| | | /* Update also the master-DB of the Server-Farm */ |
| | | $app->dbmaster->query("UPDATE web_domain SET `ssl` = ?, `ssl_letsencrypt` = ? WHERE `domain` = ?", $data['new']['ssl'], 'n', $data['new']['domain']); |
| | | } |
| | | } |
| | | |
| | | //* check is been correctly created |
| | | if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) { |
| | |
| | | |
| | | /* we don't need to store it. |
| | | /* Update the DB of the (local) Server */ |
| | | $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '', ssl_key = '' WHERE domain = '".$data['new']['domain']."'"); |
| | | $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'"); |
| | | $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '', ssl_key = '' WHERE domain = ?", $data['new']['domain']); |
| | | $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); |
| | | /* Update also the master-DB of the Server-Farm */ |
| | | $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '', ssl_key = '' WHERE domain = '".$data['new']['domain']."'"); |
| | | $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'"); |
| | | $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '', ssl_key = '' WHERE domain = ?", $data['new']['domain']); |
| | | $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = ?", $data['new']['domain']); |
| | | } |
| | | }; |
| | | |
| | |
| | | //* Wrapper for exec function for easier debugging |
| | | private function _exec($command) { |
| | | global $app; |
| | | $out = array(); |
| | | $ret = 0; |
| | | $app->log('exec: '.$command, LOGLEVEL_DEBUG); |
| | | exec($command); |
| | | exec($command, $out, $ret); |
| | | if($ret != 0) return false; |
| | | else return true; |
| | | } |
| | | |
| | | private function _checkTcp ($host, $port) { |