O Squid, como todos sabem, é um serviço de Proxy, onde o mesmo realiza o controle de acesso à sites da Internet, faz cache de páginas,
etc.
Neste artigo, veremos como realizar bloqueios e liberações, utilizando grupos que poderão ou não acessar determinados sites, para isto,
usaremos a autenticação baseada no utilitário do Apache, o 'ncsa_auth'.
Ao instalar o Squid, versão 3, pelo APT-GET, seus arquivos de configurações ficam dentro de “/etc/squid3”, sendo assim, vamos organizar
um pouco melhor este diretório.
Vamos criar dois novos diretórios, um onde conterão os grupos e o outro com uma lista que precisaremos para criar ACLs:
# mkdir /etc/squid3/acls
# mkdir /etc/squid3/grupos
Vamos trabalhar com 3 grupos de exemplo:
- DIRETORIA: Acesso total a internet
- Vendas: Acesso com algumas restrições
- Recepção: Acesso somente a sites específicos
Então, vamos criar e popular os grupos:
# htpasswd -c /etc/squid3/grupos/diretoria humberto.chagas
O comando acima utiliza o HTPASSWD (que também é um utilitário do Apache), que é o programa responsável por criar as senhas.
O parâmetro '-c' cria um novo arquivo, posteriormente indicamos o caminho do novo arquivo, e por último, colocamos o nome do usuário a
ser inserido no arquivo.
Após digitar o comando acima, ele pedirá uma senha para o novo usuário, insira a senha e depois confirme-a.
Para adicionar um novo usuário, digitamos o mesmo comando, porém sem o parâmetro '-c', vejamos:
# htpasswd /etc/squid3/grupos/diretoria carlos.augusto
# htpasswd /etc/squid3/grupos/diretoria geraldo.magela
Mesma coisa, digite a senha para os novos usuários e confirme-as.
Vamos popular os dois grupos restantes:
# htpasswd -c /etc/squid3/grupos/vendas carlos.augusto
# htpasswd /etc/squid3/grupos/vendas jose.bonifacio
# htpasswd -c /etc/squid3/grupos/recepcao tania.maria
Vamos agora realizar uma pré-bloqueio, com ele, podemos ver algumas palavras que não queremos que usuários acessem:
# touch /etc/squid3/acls/palavras_proibidas
Dentro do arquivo acima, vamos inserir algumas palavras:
sexo*
jogo*
jogatina*
facebook*
youtube*
orkut*
Não se esqueçam do ' * ' (Asterisco) ao final de cada palavra, pois como vamos usar a ACL do tipo 'url_regex', o asterisco entra como
expressão regular.
Vamos criar uma lista com sites permitidos para o grupo recepção:
# touch /etc/squid3/acls/sites_recepcao
Insira os seguintes sites ao grupo:
.vivaolinux.com.br*
.siteempresa.com.br*
.cotacoes.com.br*
Novamente, repare no ' . ' (Ponto) antes do site e no ' * ' (Asterisco) ao final. Eles também são expressões regulares, que indicam que
devem liberar todo os subdiretórios do site e tudo o que tiver antes do ponto.
Por exemplo, vamos supor que o site 'meusite.com' tenha as seguintes páginas:
- www2.meusite.com
- www.meusite.com/sexosaude
Se colocássemos somente 'www.meusite.com' em nossa lista, ele não liberaria o 'www2.meusite.com', pois não consta na lista, e também
não liberaria o 'www.meusite.com/sexosaude', pois no nosso bloqueio conteria a palavra sexo. Mas estes conceitos, entenderemos mais
tarde.