Script para adicionar e remover usuários no IMSPECTOR

Publicado por evandro matos couto (última atualização em 14/09/2011)

[ Hits: 5.746 ]

Homepage: tutoriaisgnulinux.com

Download imspector.pl




Pessoal,

Este script foi feito para que utiliza o Imspector como proxy de MSN.
Sua função é principal é adicionar e remover usuários na lista de acl.

Para que esse script funcione, será preciso alterar algumas configurações dentro do arquivo /etc/sudoers.

Mão na massa então!

1 – abra o arquivo /etc/sudoers e adicione a seguinte linha abaixo:

# vim /etc/sudoers
apache ALL=NOPASSWD: /usr/bin/killall, /usr/sbin/imspector

2 – No diretório /var/www/cgi-bin/ crie o diretório firewall e adicione o script abaixo:

# vim imspector.pl

  



Esconder código-fonte

#!/usr/bin/perl 

use Shell;
use CGI qw /:standard/;
use CGI::Carp qw (fatalsToBrowser);


# FUNÇÃO PARA CONSULTAR O MSN
sub consulta_msn {
   my @msn = ();
   open(MSN, "< /usr/etc/imspector/acl.txt");
   while(<MSN>) {
      if($_ =~ /^allow all (.*)\@(.*)/)
      {
      push(@msn, $1 . "@" . $2);
      }

      }
   close(MSN);
   return @msn;
}

# UTILIZANDO A SUB "FUNÇÃO"
@msn = &consulta_msn();

# CADASTRANDO OS NOVOS MSN
if (CGI::param("bt_msnaccept"))
{
   $add_msn = CGI::param("txt_msn");
   push @msn, $add_msn;
   %msn = map { $_ => 1 } @msn;
 
   open(MSN, "+>:encoding(UTF-8)", "/usr/etc/imspector/acl.txt");
   foreach (keys %msn){
   print MSN "allow all " . $_ . "\n";
   }
   print MSN "\n";
   print MSN "deny all\n";
   close(MSN);
   `sudo /usr/bin/killall  /usr/sbin/imspector`;
        `sudo /usr/sbin/imspector`;

   
   print "Status:301\n";
        print "Location:/cgi-bin/firewall/imspector.pl\n\n";
        exit;
}

# REMOVENDO OS USUARIOS DO ARQUIVO /usr/etc/imspector/acl.txt
if(CGI::param("bt_msndrop"))
{
        $rem_msn = CGI::param("sel_msn");
                for ( $i = 0 ; $i <= $#msn; $i++ ) {
                        if ( @msn[$i] =~ /$rem_msn/ )
                                {
                                        delete @msn[$i];
                                        next;
                                }
                }
          %msn = map { $_ => 1 } @msn;
          open(MSN, "+> /usr/etc/imspector/acl.txt");
          foreach (keys %msn){
          print MSN "allow all " . $_ . "\n" if($_ ne '');
          }
          print MSN "\n";
          print MSN "deny all\n";
          close(MSN);
   `sudo /usr/bin/killall  /usr/sbin/imspector`;
   `sudo /usr/sbin/imspector`;

   print "Status:301\n";
          print "Location:/cgi-bin/firewall/imspector.pl\n\n";
          exit;
}

# TRATAMENTO PARA TELA
foreach (sort @msn){
        $msn .= "<option> $_</option>";
        }


print "Content-type: text/html\n\n";
# HTML
print qq~
<html>
<head>
   <title></title>
</head>
<body>
<center><h4> IMSPECTOR PROXY DE MSN<br></H4></center>
<br><br>
   <form METHOD="POST">
      <center>

         <table>
            
      
            <tr>

               <td style="text-align: left; background-color: black; width:350px; height: 15px">
                  <input type="text" name="txt_msn" size="35" style="width:100%">
               </td>
               <td>
                  <input name="bt_msnaccept" type="submit" value="ACCEPT">
               </td>
               
            </tr>
      
         
            <tr>
               <td style="background-color: black;">
                  <select name="sel_msn" style="width:100%" size="15">$msn</select>
               </td>
               <td valign="top">
                  <input name="bt_msndrop" type="submit" value="DROP">
               </td>
            </tr>
            
         </table>
      </center>
   </form>
</body>
</html>
~;

Scripts recomendados

Apaga fila do Exim...

Rsync e Perl: Sincronização de arquivos com gestão de backup incremental integrada

Script que remove palavras de um arquivo.

Adiciona-Altera senhas/usuarios no sistema

Alterar senha no shadow


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts