From d78707d22efded921f8e36bcedbba1c741086628 Mon Sep 17 00:00:00 2001 From: latham Date: Thu, 30 Jun 2011 15:21:38 +0000 Subject: [PATCH] Start the iptables upload, disabled in menu, sql coming in a minute --- interface/web/admin/form/iptables.tform.php | 109 ++++++++++++++++++ interface/web/admin/iptables_del.php | 50 ++++++++ interface/web/admin/iptables_edit.php | 58 ++++++++++ interface/web/admin/iptables_list.php | 51 ++++++++ interface/web/admin/lib/lang/en_iptables.lng | 15 +++ .../web/admin/lib/lang/en_iptables_list.lng | 35 ++++++ interface/web/admin/lib/module.conf.php | 12 +- interface/web/admin/list/iptables.list.php | 107 +++++++++++++++++ .../web/admin/templates/iptables_edit.htm | 65 +++++++++++ .../web/admin/templates/iptables_list.htm | 72 ++++++++++++ 10 files changed, 567 insertions(+), 7 deletions(-) create mode 100644 interface/web/admin/form/iptables.tform.php create mode 100644 interface/web/admin/iptables_del.php create mode 100644 interface/web/admin/iptables_edit.php create mode 100644 interface/web/admin/iptables_list.php create mode 100644 interface/web/admin/lib/lang/en_iptables.lng create mode 100644 interface/web/admin/lib/lang/en_iptables_list.lng create mode 100644 interface/web/admin/list/iptables.list.php create mode 100644 interface/web/admin/templates/iptables_edit.htm create mode 100644 interface/web/admin/templates/iptables_list.htm diff --git a/interface/web/admin/form/iptables.tform.php b/interface/web/admin/form/iptables.tform.php new file mode 100644 index 0000000000..87f7b7f830 --- /dev/null +++ b/interface/web/admin/form/iptables.tform.php @@ -0,0 +1,109 @@ + 0 id must match with id of current user +//$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +//$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +//$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +//$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['iptables'] = array ( + 'title' => "Rules", + 'width' => "100", + 'template' => "templates/iptables_edit.htm", + 'fields' => array ( + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name'), + 'value' => '' + ), + 'protocol' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('none'=>'None','tcp'=>'TCP','udp'=>'UDP'), + 'width' => '', + 'maxlength' => '' + ), + 'table' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg' => 'table_error_empty')), + 'default' => 'INPUT', + 'value' => array('INPUT'=>'INPUT','OUTPUT'=>'OUTPUT','FORWARD'=>'FORWARD'), + 'width' => '', + 'maxlength' => '' + ), + 'source_ip' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '', + 'maxlength' => '' + ), + 'destination_ip' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '', + 'maxlength' => '' + ), + 'singleport' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '', + 'maxlength' => '' + ), + 'multiport' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '', + 'maxlength' => '' + ), + 'state' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '', + 'maxlength' => '' + ), + 'target' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg' => 'target_error_empty')), + 'default' => '', + 'value' => array('ACCEPT'=>'ACCEPT','DROP'=>'DROP','REJECT'=>'REJECT'), + 'width' => '', + 'maxlength' => '' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n',1 => 'y') + ), + ) +); +?> \ No newline at end of file diff --git a/interface/web/admin/iptables_del.php b/interface/web/admin/iptables_del.php new file mode 100644 index 0000000000..2f1830fee7 --- /dev/null +++ b/interface/web/admin/iptables_del.php @@ -0,0 +1,50 @@ +auth->check_module_permissions('admin'); + +$app->uses("tform_actions"); +$app->tform_actions->onDelete(); + +?> \ No newline at end of file diff --git a/interface/web/admin/iptables_edit.php b/interface/web/admin/iptables_edit.php new file mode 100644 index 0000000000..cf9152b574 --- /dev/null +++ b/interface/web/admin/iptables_edit.php @@ -0,0 +1,58 @@ +auth->check_module_permissions('admin'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + +} + +$page = new page_action; +$page->onLoad(); + +?> \ No newline at end of file diff --git a/interface/web/admin/iptables_list.php b/interface/web/admin/iptables_list.php new file mode 100644 index 0000000000..71f8887510 --- /dev/null +++ b/interface/web/admin/iptables_list.php @@ -0,0 +1,51 @@ +auth->check_module_permissions('admin'); + +$app->uses('listform_actions'); + +$app->listform_actions->onLoad(); + + +?> \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_iptables.lng b/interface/web/admin/lib/lang/en_iptables.lng new file mode 100644 index 0000000000..c675592f96 --- /dev/null +++ b/interface/web/admin/lib/lang/en_iptables.lng @@ -0,0 +1,15 @@ + diff --git a/interface/web/admin/lib/lang/en_iptables_list.lng b/interface/web/admin/lib/lang/en_iptables_list.lng new file mode 100644 index 0000000000..0b9f68697b --- /dev/null +++ b/interface/web/admin/lib/lang/en_iptables_list.lng @@ -0,0 +1,35 @@ + +templates/iptables_list.htm: {tmpl_var name="add_new_rule_txt"} +templates/iptables_list.htm:
+templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: +templates/iptables_list.htm: {tmpl_var name='delete_txt'} +*/ + +$wb["list_head_txt"] = 'IPTables'; +$wb["add_new_rule_txt"] = 'Add IPTables Rule'; +$wb["server_id_txt"] = 'Server'; +$wb["multiport_txt"] = 'Multi Port'; +$wb["singleport_txt"] = 'Single Port'; +$wb["protocol_txt"] = 'Protocol'; +$wb["table_txt"] = 'Table'; +$wb["target_txt"] = 'Target'; +$wb["state_txt"] = 'State'; +$wb["destination_ip_txt"] = 'Destination Address'; +$wb["source_ip_txt"] = 'Source Address'; +$wb["active_txt"] = 'Active'; +$wb["iptables_error_unique"] = 'There is already a firewall record for this server.'; + +?> diff --git a/interface/web/admin/lib/module.conf.php b/interface/web/admin/lib/module.conf.php index 1ec23dea93..c4e1f5a412 100644 --- a/interface/web/admin/lib/module.conf.php +++ b/interface/web/admin/lib/module.conf.php @@ -84,8 +84,11 @@ $module['nav'][] = array( 'title' => 'System', 'items' => $items); // cleanup unset($items); - /* +$items[] = array( 'title' => 'IPTables', + 'target' => 'content', + 'link' => 'admin/iptables_list.php'); + $items[] = array( 'title' => 'Firewall', 'target' => 'content', 'link' => 'admin/firewall_list.php', @@ -99,17 +102,12 @@ $items[] = array( 'title' => 'Packet Filter', 'target' => 'content', 'link' => 'admin/firewall_filter_list.php'); - $items[] = array( 'title' => 'Port Forward', 'target' => 'content', 'link' => 'admin/firewall_forward_list.php'); - - - - $module['nav'][] = array( 'title' => 'Firewall', - 'open' => 1, + 'open' => "1", 'items' => $items); diff --git a/interface/web/admin/list/iptables.list.php b/interface/web/admin/list/iptables.list.php new file mode 100644 index 0000000000..657f521330 --- /dev/null +++ b/interface/web/admin/list/iptables.list.php @@ -0,0 +1,107 @@ + "active", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array("y" => "
Yes
","n" => "
No
")); + +$liste["item"][] = array( 'field' => "server_id", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'datasource' => array ( 'type' => "SQL", + 'querystring' => "SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND db_server = 1 ORDER BY server_name", + 'keyfield'=> "server_id", + 'valuefield'=> "server_name"), + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "singleport", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "multiport", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "protocol", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('none'=>'None','tcp' => "TCP",'udp' => "UDP")); + +$liste["item"][] = array( 'field' => "table", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('INPUT' => "INPUT",'OUTPUT' => "OUTPUT",'FORWARD' => "FORWARD")); + +$liste["item"][] = array( 'field' => "source_ip", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "16", + 'value' => ""); + +$liste["item"][] = array( 'field' => "destination_ip", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "16", + 'value' => ""); + +$liste["item"][] = array( 'field' => "target", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('ACCEPT' => "ACCEPT",'DROP' => "DROP",'REJECT' => "REJECT",'LOG' => "LOG")); + +$liste["item"][] = array( 'field' => "state", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => ""); +?> \ No newline at end of file diff --git a/interface/web/admin/templates/iptables_edit.htm b/interface/web/admin/templates/iptables_edit.htm new file mode 100644 index 0000000000..66c2e878bb --- /dev/null +++ b/interface/web/admin/templates/iptables_edit.htm @@ -0,0 +1,65 @@ +

+

+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+

{tmpl_var name='active_txt'}

+
+ {tmpl_var name='active'} +
+
+
+ +
+ + +
+
+
diff --git a/interface/web/admin/templates/iptables_list.htm b/interface/web/admin/templates/iptables_list.htm new file mode 100644 index 0000000000..12826c60e6 --- /dev/null +++ b/interface/web/admin/templates/iptables_list.htm @@ -0,0 +1,72 @@ +

+ +
+ +
+
Tools +
+ +
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+
+
{tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="table"}{tmpl_var name="protocol"}{tmpl_var name="singleport"}{tmpl_var name="multiport"}{tmpl_var name="state"}{tmpl_var name="target"} +
+
+
+
-- GitLab