getRemoteServer($rhost_id);
if ( $remote_server === FALSE )
{
print_failure(get_lang_f('invalid_remote_host_id',$rhost_id));
$view->refresh("?m=server");
return;
}
echo "
".get_lang_f('editing_firewall_for_remote_server',$remote_server['remote_server_name'])."
";
$firewall_settings = $db->getFirewallSettings($remote_server['remote_server_id']);
$remote = new OGPRemoteLibrary($remote_server['agent_ip'],$remote_server['agent_port'],$remote_server['encryption_key'],$remote_server['timeout']);
$host_stat = $remote->status_chk();
if( isset($_POST['reset_firewall']) )
{
if($host_stat === 1)
{
$remote->sudo_exec($firewall_settings['disable_firewall_command']);
$remote->sudo_exec($firewall_settings['reset_firewall_command']);
$addresses = explode(",",$firewall_settings['default_allowed']);
if(is_array($addresses))
{
$trimed_addresses = array();
foreach($addresses as $key => $address)
{
$address = trim($address);
if(strpos($address,':'))
{
list($ip,$port) = explode(':',$address);
set_firewall($remote, $firewall_settings, 'allow', $port, $ip);
}
else
{
$port = trim($address);
set_firewall($remote, $firewall_settings, 'allow', $port);
}
}
}
$remote->sudo_exec($firewall_settings['enable_firewall_command']);
}
}
if( isset($_POST['save_firewall_settings']) )
{
$addresses = explode(",",$_POST['default_allowed']);
if(is_array($addresses))
{
$trimed_addresses = array();
foreach($addresses as $key => $address)
{
$address = trim($address);
if(strpos($address,':'))
{
list($ip,$port) = explode(':',$address);
if(preg_match('/^[0-9]{1,5}$/',$port)
and $port >= 1 and $port <= 65535
and filter_var($ip, FILTER_VALIDATE_IP)
and !in_array($address,$trimed_addresses))
$trimed_addresses[$key] = $address;
}
else
{
$port = trim($address);
if(preg_match('/^[0-9]{1,5}$/',$port)
and $port >= 1
and $port <= 65535 and
!in_array($port,$trimed_addresses) )
$trimed_addresses[$key] = $port;
}
}
$firewall_settings['default_allowed'] = implode(",",$trimed_addresses);
}
$firewall_settings['allow_port_command'] = trim($_POST['allow_port_command']);
$firewall_settings['deny_port_command'] = trim($_POST['deny_port_command']);
$firewall_settings['allow_ip_port_command'] = trim($_POST['allow_ip_port_command']);
$firewall_settings['deny_ip_port_command'] = trim($_POST['deny_ip_port_command']);
$firewall_settings['enable_firewall_command'] = trim($_POST['enable_firewall_command']);
$firewall_settings['disable_firewall_command'] = trim($_POST['disable_firewall_command']);
$firewall_settings['get_firewall_status_command'] = trim($_POST['get_firewall_status_command']);
$firewall_settings['reset_firewall_command'] = trim($_POST['reset_firewall_command']);
$db->updateFirewallSettings($remote_server['remote_server_id'],$firewall_settings);
}
if( isset($_GET['ch_fw_status']) )
{
$firewall_settings['status'] = $_GET['ch_fw_status'];
if($host_stat === 1)
{
if($_GET['ch_fw_status'] == "enable")
{
$addresses = explode(",",$firewall_settings['default_allowed']);
if(is_array($addresses))
{
$trimed_addresses = array();
foreach($addresses as $key => $address)
{
$address = trim($address);
if(strpos($address,':'))
{
list($ip,$port) = explode(':',$address);
set_firewall($remote, $firewall_settings, 'allow', $port, $ip);
}
else
{
$port = trim($address);
set_firewall($remote, $firewall_settings, 'allow', $port);
}
}
}
$remote->sudo_exec($firewall_settings['enable_firewall_command']);
}
else
{
$remote->sudo_exec($firewall_settings['disable_firewall_command']);
}
}
if($db->updateFirewallSettings($remote_server['remote_server_id'],$firewall_settings))
{
$firewall_settings = $db->getFirewallSettings($remote_server['remote_server_id']);
}
}
if($firewall_settings['status'] == "enable")
{
echo "".get_lang('status')." ".get_lang('on')."
[".get_lang('stop_firewall')."]\n";
}
else
{
echo "".get_lang('status')." ".get_lang('off')."
[".get_lang('start_firewall')."]\n";
}
$ft = new FormTable();
$ft->start_form("?m=server&p=firewall&rhost_id=$rhost_id");
$ft->start_table();
$ft->add_field('text','default_allowed',$firewall_settings['default_allowed']);
$ft->add_field('string','allow_port_command',$firewall_settings['allow_port_command']);
$ft->add_field('string','deny_port_command',$firewall_settings['deny_port_command']);
$ft->add_field('string','allow_ip_port_command',$firewall_settings['allow_ip_port_command']);
$ft->add_field('string','deny_ip_port_command',$firewall_settings['deny_ip_port_command']);
$ft->add_field('string','enable_firewall_command',$firewall_settings['enable_firewall_command']);
$ft->add_field('string','disable_firewall_command',$firewall_settings['disable_firewall_command']);
$ft->add_field('string','get_firewall_status_command',$firewall_settings['get_firewall_status_command']);
$ft->add_field('string','reset_firewall_command',$firewall_settings['reset_firewall_command']);
$ft->end_table();
$ft->add_button('submit','save_firewall_settings',save_firewall_settings);
$ft->end_form();
echo "".firewall_status."
";
echo "";
echo $remote->sudo_exec($firewall_settings['get_firewall_status_command']);
echo "
";
$ft = new FormTable();
$ft->start_form("?m=server&p=firewall&rhost_id=$rhost_id");
$ft->add_button('submit','reset_firewall',reset_firewall);
$ft->end_form();
echo create_back_button($_GET['m']);
}