Extraindo os dominios de sites improprios para bloqueio no proxy.
Colaboração: Fabio Maximo
Data de Publicação: 31 de December de 2008
Algumas vezes simplesmente bloquear uma lista gigante de sites improprios pode não ser é suficiente. As vezes essas listas mostram mais sites internacionais que nacionais, então um nivel adicional de alimentação desses dados é necessário.
No meu caso eu precisava checar os logs para identificar os sites que estão sendo acessados como alternativa aos ja bloqueados e que os mesmos fossem progressivamente bloqueados.
Dureza fazer manualmente, ne?
Então segue a solução para essa necessidade que eu tinha.
zcat /path/to/log | egrep -f /etc/squid/palavraschavepornografia | awk '{print $7}' | sed 's/http:\/\///' | sed 's/\/.*$//' | sort | uniq -c
Vamos por partes?? Nessa parte omitirei o | (pipe).
- Como o arquivo estara compactado, uso um zcat no mesmo e mando o conteudo
pelo "encanamento" :-D
zcat /path/to/log
- Uso um egrep
-f
para que cada linha do arquivo indicado pelo parametrof
forneça um padrão para a busca. Nesse arquivo então coloco uma lista de palavras chulas que serão procuradas nas URLs. Uma URL que contenha por exemplo xxx provavelmente tera o conteudo que aparenta.egrep -f /etc/squid/palavraschavepornografia |
- Uso então o awk para que apenas a url seja enviada ao proximo
comando. Dependendo do formato do log, talvez a coluna seja outra.
awk '{print $7}'
- Agora retiro o http:// da URL.
sed 's/http:\/\///'
- Retiro oque vem no final da url (afinal eu quero somente o dominio, para que o bloqueio seja mais abrangente
sed 's/\/.*$//'
- Uso então o sort para ordenar. Na verdade eu quero que ele coloque as
ocorrencias iguais uma apos a outra, em preparação para o
uniq,
que ira exibir apenas uma ocorrencia de cada. Para efeito de anailise, o-c
me mostra quantas vezes cada dominio apareceu no log.sort | uniq -c
Essa saida eu mandei para um arquivo com o nome do dia anterior, e então ao final isso é enviado para meu e-mail. Poderiamos fazer o bloqueio automaticamente, porem uma url legitima poderia ter uma palavra suspeita. Por exeplo um artigo sobre "sexo na terceira idade", que tivesse sua url reescrita faria com que um portal de saúde fosse automaticamente bloqueado, o que não é a intenção.