Importação de IPs do Whatsapp como Objeto do Zentyal
Publicado por Willian Itiho Amano (última atualização em 19/01/2015)
[ Hits: 5.207 ]
Sabe-se que o Whatsapp é um grande consumidor de tempo dos funcionários e de banda para empresas que disponibilizam wifi devido aos envios de imagens e vídeos. Com a incumbência de bloquear o Whatsapp fui procurar os IPs utilizados pelo serviço. Esta lista está disponível no endereço: https://www.whatsapp.com/cidr.txt
Veja que é uma lista muito grande para cadastrar manualmente no Firewall. No caso utilizo o Firewall Zentyal 4.0. Pesquisando na internet achei o seguinte script ( http://www.institutmarianao.cat/wordpress/?p=226 ) que importa os dados para dentro do Zentyal.
Crie um arquivo objects.csv com os IPs com o seguinte formato ( disponível em: http://pastebin.com/7JgbbQgA )
WhatsApp,IP1,ipaddr,5.153.52.248,29,
WhatsApp,IP2,ipaddr,31.13.65.14,32,
Após isso crie um arquivo chamado importa.pl com o conteúdo do script no mesmo diretório do csv e dê permissão de execução. Aí é só executar, acessar o Zentyal e criar uma regra bloqueando este objeto.
#!/usr/bin/perl use strict; use warnings; use EBox; use EBox::Global; use EBox::Objects; use Scalar::Util; EBox::init(); open (my $OBJECTS, 'objects.csv'); # File objects.csv format "objecte name", "member name", "member type", "member ip", "member mac o ip" # types : ipaddr | iprange my $module = EBox::Global->getInstance(0)->modInstance(qw(objects)); if (not $module) { EBox::error(qw(objects) . "has impot data but it is not installed, not importing"); return; } my @members; my $object = ''; while (my $line = <$OBJECTS>) { chomp ($line); my $member; my ($objectname, $membername, $membertype, $memberip, $memberipormask, $membermac) = split(',', $line); $membername =~ s/^\s+|\s+$//g; $membertype =~ s/^\s+|\s+$//g; $memberip =~ s/^\s+|\s+$//g; $memberipormask =~ s/^\s+|\s+$//g; if ($membertype eq 'ipaddr') { if ($membermac) { $membermac =~ s/^\s+|\s+$//g; $member = { 'name' => $membername, 'address_selected' => $membertype, 'ipaddr_ip' => $memberip, 'ipaddr_mask' => $memberipormask, 'macaddr' => $membermac }; } else { $member = { 'name' => $membername, 'address_selected' => $membertype, 'ipaddr_ip' => $memberip, 'ipaddr_mask' => $memberipormask }; } } else { $member = { 'name' => $membername, 'address_selected' => $membertype, 'iprange_begin' => $memberip, 'iprange_end' => $memberipormask }; } if ($object ne $objectname) { # canvi objecte if (@members) { # Some member exist. Not first loop print "Adding $object...\n"; $module->addObject('name' => $object, 'members' => \@members); @members = (); } $object = $objectname; } push(@members, $member); } print "Adding $object...\n"; $module->addObject('name' => $object, 'members' => \@members); close ($OBJECTS); 1;
Instalação automatizada do Squid 2.5 STABLE14
Script para Detectar rede Wireless
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (2)
Ubuntu — tentando iniciar o windows? (0)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba