| | |
| | | <?php |
| | | |
| | | /* |
| | | Copyright (c) 2008, Till Brehm, projektfarm Gmbh |
| | | Copyright (c) 2007, Till Brehm, projektfarm Gmbh |
| | | All rights reserved. |
| | | |
| | | Redistribution and use in source and binary forms, with or without modification, |
| | |
| | | |
| | | var $plugin_name = 'firewall_plugin'; |
| | | var $class_name = 'firewall_plugin'; |
| | | |
| | | //* This function is called during ispconfig installation to determine |
| | | // if a symlink shall be created for this plugin. |
| | | function onInstall() { |
| | | global $conf; |
| | | |
| | | if($conf['bastille']['installed'] = true && $conf['services']['firewall'] == true) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /* |
| | |
| | | $tcp_ports = ''; |
| | | $udp_ports = ''; |
| | | |
| | | $ports = explode(',',$data["new"]["tcp_port"]); |
| | | $ports = explode(',',$data['new']['tcp_port']); |
| | | if(is_array($ports)) { |
| | | foreach($ports as $p) { |
| | | $p_int = intval($p); |
| | | if($p_int > 0) $tcp_ports .= $p_int . ' '; |
| | | if(strstr($p,':')) { |
| | | $p_parts = explode(':',$p); |
| | | $p_clean = intval($p_parts[0]).':'.intval($p_parts[1]); |
| | | } else { |
| | | $p_clean = intval($p); |
| | | } |
| | | $tcp_ports .= $p_clean . ' '; |
| | | } |
| | | } |
| | | $tcp_ports = trim($tcp_ports); |
| | | |
| | | $ports = explode(',',$data["new"]["udp_port"]); |
| | | $ports = explode(',',$data['new']['udp_port']); |
| | | if(is_array($ports)) { |
| | | foreach($ports as $p) { |
| | | $p_int = intval($p); |
| | | if($p_int > 0) $udp_ports .= $p_int . ' '; |
| | | if(strstr($p,':')) { |
| | | $p_parts = explode(':',$p); |
| | | $p_clean = intval($p_parts[0]).':'.intval($p_parts[1]); |
| | | } else { |
| | | $p_clean = intval($p); |
| | | } |
| | | $udp_ports .= $p_clean . ' '; |
| | | } |
| | | } |
| | | $udp_ports = trim($udp_ports); |
| | | |
| | | |
| | | $app->load('tpl'); |
| | | $tpl = new tpl(); |
| | | $tpl->newTemplate("bastille-firewall.cfg.master"); |
| | | $tpl->newTemplate('bastille-firewall.cfg.master'); |
| | | |
| | | $tpl->setVar("TCP_PUBLIC_SERVICES",$tcp_ports); |
| | | $tpl->setVar("UDP_PUBLIC_SERVICES",$udp_ports); |
| | | $tpl->setVar('TCP_PUBLIC_SERVICES',$tcp_ports); |
| | | $tpl->setVar('UDP_PUBLIC_SERVICES',$udp_ports); |
| | | |
| | | file_put_contents('/etc/Bastille/bastille-firewall.cfg',$tpl->grab()); |
| | | $app->log('Writing firewall configuration /etc/Bastille/bastille-firewall.cfg',LOGLEVEL_DEBUG); |
| | | unset($tpl); |
| | | |
| | | if($data["new"]["active"] == 'y')) { |
| | | exec('/etc/init.d/bastille-firewall restart'); |
| | | if($data['new']['active'] == 'y') { |
| | | exec($conf['init_scripts'] . '/' . 'bastille-firewall restart'); |
| | | if(@is_file('/etc/debian_version')) exec('update-rc.d bastille-firewall defaults'); |
| | | $app->log('Restarting the firewall',LOGLEVEL_DEBUG); |
| | | } else { |
| | | exec('/etc/init.d/bastille-firewall stop'); |
| | | if(@is_file('/etc/debian_version')) exec('update-rc.d bastille-firewall remove'); |
| | | exec($conf['init_scripts'] . '/' . 'bastille-firewall stop'); |
| | | if(@is_file('/etc/debian_version')) exec('update-rc.d -f bastille-firewall remove'); |
| | | $app->log('Stopping the firewall',LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | |
| | | function delete($event_name,$data) { |
| | | global $app, $conf; |
| | | |
| | | exec('/etc/init.d/bastille-firewall stop'); |
| | | if(@is_file('/etc/debian_version')) exec('update-rc.d bastille-firewall remove'); |
| | | exec($conf['init_scripts'] . '/' . 'bastille-firewall stop'); |
| | | if(@is_file('/etc/debian_version')) exec('update-rc.d -f bastille-firewall remove'); |
| | | $app->log('Stopping the firewall',LOGLEVEL_DEBUG); |
| | | |
| | | } |
| | |
| | | |
| | | } // end class |
| | | |
| | | ?> |
| | | ?> |