Script para adicionar e remover usuários no IMSPECTOR
Publicado por evandro matos couto (última atualização em 14/09/2011)
[ Hits: 5.888 ]
Homepage: tutoriaisgnulinux.com
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
#!/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> ~;
Inserindo sites em Lista do Squid
Eliminando caracteres indesejados
Contagem de linhas em Perl (= wc -l)
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Manjaro 25.0 no permite usar crontab (1)
Como fazer boot em img do debian 12.img da web? (1)
trocar linhas [RESOLVIDO] (11)