Importação de IPs do Whatsapp como Objeto do Zentyal
Publicado por Willian Itiho Amano (última atualização em 19/01/2015)
[ Hits: 5.650 ]
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;
Script de conectividade wireless
Script para Detectar rede Wireless
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (16)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









