diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 6de768f7e5ca7594d863efc721f013209c290bf4..48156e64baf2d9dc3ffb57c918fbe6d6adf3671d 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -449,18 +449,18 @@ class installer_base {
}
$current_db_version = intval($current_db_version);
-
+ $firewall_placeholder = '{"FTP":[20,21,"40110:40210"],"MAIL":[25,110,143,465,587,993,995],"RSPAMD":[11334],"DNS":[53],"WEB":[80,443],"ISPCONFIG":[8080,8081],"CUSTOM_TCP":[""],"CUSTOM_UDP":[""]}';
if($conf['mysql']['master_slave_setup'] == 'y') {
//* Insert the server record in master DB
- $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);";
- $this->dbmaster->query($sql, $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled);
+ $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`, `firewall_placeholder`) VALUES (1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?, ?);";
+ $this->dbmaster->query($sql, $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled, $firewall_placeholder);
$conf['server_id'] = $this->dbmaster->insertID();
$conf['server_id'] = $conf['server_id'];
//* Insert the same record in the local DB
- $sql = "INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (?,1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);";
- $this->db->query($sql, $conf['server_id'], $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled);
+ $sql = "INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`, `firewall_placeholder`) VALUES (?,1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?, ?);";
+ $this->db->query($sql, $conf['server_id'], $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled, $firewall_placeholder);
//* username for the ispconfig user
$conf['mysql']['master_ispconfig_user'] = 'ispcsrv'.$conf['server_id'];
@@ -469,8 +469,8 @@ class installer_base {
} else {
//* Insert the server, if its not a mster / slave setup
- $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);";
- $this->db->query($sql, $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled);
+ $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`, `firewall_placeholder`) VALUES (1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?, ?);";
+ $this->db->query($sql, $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled, $firewall_placeholder);
$conf['server_id'] = $this->db->insertID();
$conf['server_id'] = $conf['server_id'];
}
diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e720d518a30a9ee262e72ef1ce6e4ea7d3649d87 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -0,0 +1,3 @@
+ALTER TABLE `server`
+ADD `firewall_placeholder` TINYTEXT NOT NULL;
+UPDATE `server` SET `firewall_placeholder` = '{"FTP":[20,21,"40110:40210"],"MAIL":[25,110,143,465,587,993,995],"RSPAMD":[11334],"DNS":[53],"WEB":[80,443],"ISPCONFIG":[8080,8081],"CUSTOM_TCP":[""],"CUSTOM_UDP":[""]}';
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 006beb6b53945de3403408dac1bfcbab8b7bb498..3aba2e98d64a979dd0780ce4063a15226309ed02 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1367,6 +1367,7 @@ CREATE TABLE `server` (
`mirror_server_id` int(11) unsigned NOT NULL default '0',
`dbversion` int(11) unsigned NOT NULL default '1',
`active` tinyint(1) NOT NULL default '1',
+ `firewall_placeholder` TINYTEXT NOT NULL,
PRIMARY KEY (`server_id`)
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
diff --git a/interface/lib/classes/plugin_server_firewall_placeholder.inc.php b/interface/lib/classes/plugin_server_firewall_placeholder.inc.php
new file mode 100755
index 0000000000000000000000000000000000000000..8cb628665e0d311dec93220ea876565b357490d7
--- /dev/null
+++ b/interface/lib/classes/plugin_server_firewall_placeholder.inc.php
@@ -0,0 +1,120 @@
+newTemplate('templates/server_config_firewall_placeholder_edit.htm');
+
+ //* Get the data
+ $temp = $app->db->queryOneRecord('SELECT `firewall_placeholder` FROM `server` WHERE `server_id` = ?', $this->form->id);
+ $data = json_decode($temp['firewall_placeholder'], true);
+ foreach($data as $idx=>$val) {
+ $records[$idx] = implode(',',$val);
+ }
+ if(is_array($records)) {
+ foreach($records as $service=>$ports) {
+ $rec['service'] = $app->functions->htmlentities($service);
+ $rec['ports'] = $ports;
+ $records_new[] = $rec;
+ }
+ }
+ $listTpl->setLoop('records',@$records_new);
+ $listTpl->setVar('parent_id',$this->form->id);
+
+
+ // Setting Returnto information in the session
+ $list_name = 'server_firewall_placeholder';
+ $_SESSION['s']['list'][$list_name]['parent_id'] = $this->form->id;
+ $_SESSION['s']['list'][$list_name]['parent_name'] = $app->tform->formDef['name'];
+ $_SESSION['s']['list'][$list_name]['parent_tab'] = $_SESSION['s']['form']['tab'];
+ $_SESSION['s']['list'][$list_name]['parent_script'] = $app->tform->formDef['action'];
+ $_SESSION['s']['form']["return_to"] = $list_name;
+ return $listTpl->grab();
+ }
+
+ function onUpdate() {
+ global $app;
+
+ $dataRecord = $this->form->dataRecord;
+ $server_id = intval($dataRecord['id']);
+ $temp = $app->db->queryOneRecord('SELECT `firewall_placeholder` FROM `server` WHERE `server_id` = ?', $server_id);
+ $data = json_decode($temp['firewall_placeholder'], true);
+ $update = false;
+ $error = '';
+ foreach($data as $idx=>$val) {
+ //* validate updates
+ if($dataRecord[$idx] != implode(',',$val)) {
+ $new = array();
+ $check = explode(',',$dataRecord[$idx]);
+ foreach($check as $_idx=>$validate) {
+ $validate = trim($validate);
+ if($validate != '') {
+ if(!preg_match('/^\d{1,5}(?::\d{1,5})?(?:,\d{1,5}(?::\d{1,5})?)*$/', $validate)) {
+ $error .= "Invalide value $validate for $idx
";
+ } else {
+ $new[] = $validate;
+ }
+ }
+ }
+ if(!empty($new)) $dataRecord[$_idx] = implode(',', $new);
+ $data[$idx] = explode(',',$dataRecord[$_idx]);
+ $update = true;
+ }
+ }
+
+ if($error != '') {
+ $app->error($error);
+ }
+
+ if($update) {
+ $app->db->query('UPDATE `server` SET `firewall_placeholder` = ? WHERE `server_id` = ?', json_encode($data), $server_id);
+ $firewall = $app->db->queryOneRecord('SELECT * FROM `firewall` WHERE `server_id` = ? AND `active` = ?', $server_id, 'y');
+ if($firewall) {
+ $app->db->datalogUpdate('firewall', $firewall, 'firewall_id', $firewall['firewall_id'], true);
+ }
+ }
+
+ }
+
+}
+
diff --git a/interface/lib/classes/sites_database_plugin.inc.php b/interface/lib/classes/sites_database_plugin.inc.php
index 68421d6083ddd0eafaf56c539bcb040d4917fe2c..c3693053c1bda3d52f58c2f107d84e18aa4d1581 100644
--- a/interface/lib/classes/sites_database_plugin.inc.php
+++ b/interface/lib/classes/sites_database_plugin.inc.php
@@ -51,6 +51,14 @@ class sites_database_plugin {
$sql = "UPDATE web_database SET sys_groupid = ?, backup_interval = ?, backup_copies = ? WHERE database_id = ?";
$app->db->query($sql, $sys_groupid, $backup_interval, $backup_copies, $form_page->id);
+
+ if($form_page->dataRecord['remote_access'] == 'y' && $form_page->dataRecord['active'] == 'y') {
+ $firewall = $app->db->queryOneRecord("SELECT * FROM firewall WHERE active = 'y' AND server_id = ?", $form_page->dataRecord['server_id']);
+ if($firewall) {
+ $app->db->datalogUpdate('firewall', $firewall, 'firewall_id', $firewall['firewall_id'], true);
+ file_put_contents("debug", "update fw");
+ }
+ }
}
}
diff --git a/interface/lib/classes/validate_firewall.inc.php b/interface/lib/classes/validate_firewall.inc.php
new file mode 100755
index 0000000000000000000000000000000000000000..f9aed6a07787af38f711f2c4e8e1e080530dcb81
--- /dev/null
+++ b/interface/lib/classes/validate_firewall.inc.php
@@ -0,0 +1,65 @@
+tform->wordbook[$errmsg])) {
+ return $app->tform->wordbook[$errmsg]."
\r\n";
+ } else {
+ return $errmsg."
\r\n";
+ }
+ }
+
+ function check_firewall($field_name, $field_value, $validator) {
+ global $app;
+
+ $temp = $app->db->queryOneRecord('SELECT firewall_placeholder FROM server WHERE server_id = ?', intval($_POST['server_id']));
+ $records = json_decode($temp['firewall_placeholder'], true);
+ foreach($records as $idx=>$val) $placeholder[] = '{'.$idx.'}';
+ $placeholder[] = '{AUTO}';
+
+ if($field_value != '') {
+// print_R($placeholder);
+ $temp = str_replace($placeholder, '', $field_value);
+ $ports = explode(',', $temp);
+ $ports = array_filter($ports, function($value) { return !is_null($value) && $value !== ''; });
+ if(!empty($ports)) {
+ $regex = '/^\d{1,5}(?::\d{1,5})?(?:,\d{1,5}(?::\d{1,5})?)*$/';
+ if(!preg_match($regex, implode(',', $ports))) return $this->get_error($validator['errmsg']);
+ }
+ }
+ }
+
+}
+
diff --git a/interface/web/admin/firewall_edit.php b/interface/web/admin/firewall_edit.php
index 01cad2b815b1c09775bf0a95ac31b57e01dcefec..23008b4b125a8f79644c2b2328052505d5083a84 100644
--- a/interface/web/admin/firewall_edit.php
+++ b/interface/web/admin/firewall_edit.php
@@ -64,7 +64,6 @@ class page_action extends tform_actions {
parent::onShowEnd();
}
-
function onBeforeUpdate() {
global $app, $conf;
diff --git a/interface/web/admin/form/firewall.tform.php b/interface/web/admin/form/firewall.tform.php
index eb7dcb3acf83bf7d603d7a3454fe62b2610b2ee9..9170af72901ff3eb2ab5308196dcbab468dc6462 100644
--- a/interface/web/admin/form/firewall.tform.php
+++ b/interface/web/admin/form/firewall.tform.php
@@ -75,11 +75,15 @@ $form["tabs"]['firewall'] = array (
'tcp_port' => array (
'datatype' => 'VARCHAR',
'formtype' => 'TEXT',
- 'validators' => array ( 0 => array ( 'type' => 'REGEX',
- 'regex' => '/^$|\d{1,5}(?::\d{1,5})?(?:,\d{1,5}(?::\d{1,5})?)*$/',
- 'errmsg'=> 'tcp_ports_error_regex'),
- ),
- 'default' => '20,21,22,25,53,80,110,143,443,465,587,993,995,3306,8080,8081,10000',
+ 'validators' => array (
+ 0 => array (
+ 'type' => 'CUSTOM',
+ 'class' => 'validate_firewall',
+ 'function' => 'check_firewall',
+ 'errmsg'=> 'tcp_ports_error_regex'
+ )
+ ),
+ 'default' => '{AUTO}',
'value' => '',
'width' => '30',
'maxlength' => '255'
@@ -87,11 +91,15 @@ $form["tabs"]['firewall'] = array (
'udp_port' => array (
'datatype' => 'VARCHAR',
'formtype' => 'TEXT',
- 'validators' => array ( 0 => array ( 'type' => 'REGEX',
- 'regex' => '/^$|\d{1,5}(?::\d{1,5})?(?:,\d{1,5}(?::\d{1,5})?)*$/',
- 'errmsg'=> 'udp_ports_error_regex'),
- ),
- 'default' => '53,3306',
+ 'validators' => array (
+ 0 => array (
+ 'type' => 'CUSTOM',
+ 'class' => 'validate_firewall',
+ 'function' => 'check_firewall',
+ 'errmsg'=> 'udp_ports_error_regex'
+ )
+ ),
+ 'default' => '{AUTO}',
'value' => '',
'width' => '30',
'maxlength' => '255'
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 1818b2ef3b6035f24dbdc8b9892d3e37077b73b8..17fd55b6938739379704ffa96b5fe8f358032ebc 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -2072,6 +2072,20 @@ $form["tabs"]['rescue'] = array(
//#################################
)
);
+$form['tabs']['firewall_placeholder'] = array(
+ 'title' => 'firewall_placeholder',
+ 'width' => 80,
+ 'template' => 'templates/server_config_firewall_placeholder.htm',
+ 'readonly' => false,
+ 'plugins' => array (
+ 'placeholder_records' => array (
+ 'class' => 'plugin_server_firewall_placeholder',
+ 'options' => array(
+ )
+ )
+ )
+);
+
/*$mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail');
if(!isset($mail_config['rspamd_available']) || $mail_config['rspamd_available'] != 'y') {
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index b95b3567e643ade50e58d56385c1a96a27f34ca4..d286780a9e54dcba93ce3b3591c82baa1d615cbf 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index fcd34e729236a8ef04c17c9b5f4e40f03dd56fbc..c285fa53bc85c6bef689aa363f225e8bd392bf7f 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index 0e8d43ca8e8aec70ac114f5fd0e541917dd94e8c..1b0698ab5469e37798e4f2da200c188a2754f3be 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Usar links físicos é inseguro, mas eco
$wb['jailkit_hardlinks_allow_txt'] = 'Permitir links físicos enjaulados';
$wb['jailkit_hardlinks_no_txt'] = 'Não, remover arquivos de links físicos';
$wb['jailkit_hardlinks_yes_txt'] = 'Sim, usar links físicos quando possível';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 2e02e31c6bdf2d7da192217840790a6b67cab547..2db680959287496f8a48df41070740a3da4baffe 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index 633db75fbdbb02daa5ddff7d4f4e23c10ba24e75..534cc1f15e2d97768e5419988433a0e55bec5658 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'Ne, odstranit soubory s pevným odkazem';
$wb['jailkit_hardlinks_yes_txt'] = 'Ano, pokud je to možné, použijte pevné odkazy';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index e287b9a622ba535b131ff89973df109f0a6d7478..e8fb52680fc024ba2b2a0a80187b502021a53929 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
index 77a29251d5f04bf555efac9dcc375a292ac4ba65..b7c93665b735a390269dc0ce05a1887e0a36b923 100644
--- a/interface/web/admin/lib/lang/dk_server_config.lng
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index 091362450336ed29a7f1722e0654a1b2742fcff8..b16a3dd6629e6ae56cdace7d5fd5edd6a0a1be8c 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 3df6f02dfb259848bd0acf9bca6c82fcb4d68858..1a1d0e6b2893e5af995f3a5e50a3f1c9ab988bac 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -332,3 +332,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index fadf3180c0e6c3f0df2021d8ddb51afd265141b1..ab0ac1504c5b9049ebacba95bda746e268834881 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index ec974d3249b45ba64ec226973046810ddf75a65d..f8d77d895d07404808231b2da8426a533c23e763 100644
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index a413c4214dd866f64448b7d1d98aebd5e8bd29a8..4b945f050b6662fb69affbb64400bb82bcb9d7cf 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index 4eb3574d45e3ea063957d014bc3401ccfb341ff0..4569be2c6a33664168cba56257cc778ff9fb7403 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 73f0181f3d27408d5e824796d623ae4ff68e4b4e..910a0b7b35bf3e72b1105bee84d4fd767c7ccb8f 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index 3555ba32889e25ef93546a4461a3a797aa004687..f1c9a3dbe0d142bcc35aa003e353b67fd4971e9c 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index 39b7161ddf1f04d054637fc4e19928769f263eda..a5706531eb2488609be2b6eb61a0d457212e6c5c 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index a50922639c704258f945e4060ddf4185d7c3e70a..fbee8a11adbf943c2cdc59b34ef4771b1ef92d85 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index 9ef50bb6c123ade3a360f4fc8db0575b409b8e7c..1f74b8b0f68e0172b30be2fc45b711dc781f7241 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index af839bb2e3bce7e4e77aa651716fae9064b52872..9eec1d3c784dc020bcaeec15a043c36bcb08aa7e 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 6b581c85939cbb7834919da94b4eed0017840a76..da9f5bc9b2e7032fa522a1368a293551348fa3f7 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index e15c99fb675b9cdeec59cc30e8b19e0434a4fa5e..1f17aef2e176179f5e8ffec16ee554dfa7d5a114 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 3465d2120dc1a5d2aca98f5a38a47764931d1230..0b3bb2c44f69b29c93ce1f44e421a2c5643247d6 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index 9bbbcc80ac3c6db18c57385e544563ccd7b43185..f273f51214178a6bd8aa0e192e7986d73beb55c5 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 1b96cf57adb73b731bd17ab070bde1603d079db0..6160565a02430af48a4a49cda2af6aa7ca36a258 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -326,3 +326,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 84210ce9b8229a5eb8461d42089649c7adcc0ba7..c5f376f78ff5621c8590ff23d8e83485f7c6e68f 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -320,3 +320,4 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
$wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
$wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
$wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['firewall_placeholder'] = 'Firewall Placeholder';
diff --git a/interface/web/admin/templates/firewall_edit.htm b/interface/web/admin/templates/firewall_edit.htm
index 07fe3d0ff52e3e3a8e0748b1e13a0b9674aa2b02..bb5b0d921e1421915e81c91fc7a986f1a52266c4 100644
--- a/interface/web/admin/templates/firewall_edit.htm
+++ b/interface/web/admin/templates/firewall_edit.htm
@@ -1,26 +1,33 @@
-
{tmpl_var name="toolsarea_head_txt"}
- - - - - - -{tmpl_var name='search_limit'} | -||||
---|---|---|---|---|
- | - | - | - | - - | -
{tmpl_var name="active"} | -{tmpl_var name="server_id"} | -{tmpl_var name="tcp_port"} | -{tmpl_var name="udp_port"} | -- - | -
{tmpl_var name='globalsearch_noresults_text_txt'} | -||||
{tmpl_var name="toolsarea_head_txt"}
+ +{tmpl_var name='search_limit'} | +||||
---|---|---|---|---|
+ | + | + | + | + + | +
{tmpl_var name="active"} | +{tmpl_var name="server_id"} | +{tmpl_var name="tcp_port"} | +{tmpl_var name="udp_port"} | ++ + | +
{tmpl_var name='globalsearch_noresults_text_txt'} | ||||