[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Alterando IPTables com php



Pessoal, segue em anexo o arquivo block.txt, que era block.php
JH

On Tuesday 10 June 2003 18:22, Prof. João Henrique wrote:
> Olá pessoal.
> Tenho um problema curioso e até agora sem solução.
> Meu firewall roda em Debian/Woody/IPTables sem problemas.
> Preciso bloquear seletivamente o acesso à web em alguns laboratórios de
> informática e a solução encontrada foi utilizar um script em PHP que remove
> a regra de nat do firewall para o tal laboratório e o bicho fica isolado,
> como precisamos.
> Acontece que consigo remover a regra mas não consigo restaura-la quando
> termina a aula.
> O script está correto mas não consigo executar algo como 'iptables -A
> laboratorio3 ...'
> 'iptables -F laboratorio3' funciona legal.
> O script está em anexo.
> Alguma luz?
>
> Obrigado,
> João Henrique
<HTML>
<BODY>
<?

if($web=="para" || $web=="libera"){
   $IP=substr($REMOTE_ADDR,0,9);
   if($IP=="10.130.0.27"){
      if($web="para"){
         exec("sudo /sbin/iptables -I laboratorio 1 -p all -s 10.130.0.27/32 -j ACCEPT");
         exec("sudo /sbin/iptables -I laboratorio 2 -p all -s 10.130.0.0/24 -d ! 10.0.0.0/8 -j DROP");
      }
      if($web="libera"){
         exec("sudo /sbin/iptables -D laboratorio -p all -s 10.130.0.27/32 -j ACCEPT");
         exec("sudo /sbin/iptables -D laboratorio -p all -s 10.130.0.0/24 -d ! 10.0.0.0/8 -j DROP");
      }
   }
   if($IP=="10.130.2.27"){
      if($web="para"){
         exec("sudo /sbin/iptables -I laboratorio 1 -s 10.130.2.27 -j ACCEPT");
	 exec("sudo /sbin/iptables -I laboratorio 2 -s 10.130.2.0/24 -d ! 10.0.0.0/8 -j DROP");
      }
      if($web="libera"){
         $i = shell_exec("sudo /sbin/iptables -D laboratorio -s 10.130.2.27 -d ! 10.0.0.0/8 -j ACCEPT");
      }
   }
   if($IP=="10.130.3.51"){
      if($web="para"){
         exec("sudo /sbin/iptables -I laboratorio 1 -p all -s 10.130.3.51/32 -j ACCEPT");
         exec("sudo /sbin/iptables -I laboratorio 2 -p all -s 10.130.3.0/24 -d ! 10.0.0.0/8 -j DROP");
      }
      if($web="libera"){
         exec("sudo /sbin/iptables -D laboratorio -p all -s 10.130.3.51/32 -j ACCEPT");
         exec("sudo /sbin/iptables -D laboratorio -p all -s 10.130.3.0/24 -d ! 10.0.0.0/8 -j DROP");
      }
   }
   if($IP=="10.130.4.55"){
      if($web="para"){
         exec("sudo /sbin/iptables -I laboratorio 1 -p all -s 10.130.4.55/32 -j ACCEPT");
         exec("sudo /sbin/iptables -I laboratorio 2 -p all -s 10.130.4.0/24 -d ! 10.0.0.0/8 -j DROP");
      }
      if($web="libera"){
         exec("sudo /sbin/iptables -D laboratorio -p all -s 10.130.4.55/32 -j ACCEPT");
         exec("sudo /sbin/iptables -D laboratorio -p all -s 10.130.4.0/24 -d ! 10.0.0.0/8 -j DROP");
      }
   }
}
else{
   echo "<body onLoad=history.go(-1)>
   <script language=\"JavaScript\">
      alert(\"Escolha uma das opções: Parar ou Liberar\")
   </script>";
}
?>
</BODY>
</HTML>

Reply to: