Parte 1 – Instalação do Squid
Vá no menu ”System > Packages”, na tela que se segue clique em ”Available Packages” e procure na lista o Squid. Clique na setinha ao lado da linha do Squid para instalar o pacote. Com a instalação bem sucedida do Squid vamos à próxima etapa.
Parte 2 – Configurações Básicas do Squid
Vamos realizar a configuração básica do nosso Proxy. Para isso vamos acessar as configurações do Squid no menu ”Services > Proxy Server”.
Na aba “General”, estão localizadas as configurações básicas do nosso servidor proxy. Geralmente não é preciso alterar nada para que o proxy funcione. Então vamos deixar os valores como padrão para a maioria dos campos, alterando somente o campo”Language” para “Portuguese” (isso fará com que o Squid exiba as páginas de erro em Português) e um pouco mais abaixo vamos marcar a opção ”Supress Squid Version”(para que o Squid não mostre a sua versão na página de erros). E por fim clicamos em”Save” para guardar nossas configurações.
Parte 3 – Configurações de Autenticação do Squid
Ainda nas configurações do Squid, vamos até a aba “Auth Settings”. Aqui vamos configurar nosso Squid para que ele utilize a base de dados Local. Então vamos até o campo ”Authentication Method” e vamos escolher a opção “Local”.
Ainda nessa tela temos 3 campos importantes:
“Authentication prompt”: Texto que vai ser exibido na janela que pede o usuário e a senha.
“Authentication processes”: Número de autenticações simultâneas. Ajuste conforme preciso.
“Authentication TTL”: Este campo define o tempo de vida da sessão de um usuário autenticado.
Clicamos em ”Save” e vamos à próxima etapa.
Parte 4 – Cadastro de novos usuários
Nas configurações do proxy na aba “Local Users”, vamos cadastrar os 3 usuários para utilizarmos no nosso exemplo. Para cadastrar um usuário clique no ícone da setinha marcado na figura abaixo.
Na tela que se abre, temos 2 campos obrigatórios: ”Username” e ”Password”. Já o campo “Description” é opcional, porém é muito útil para caráter administrativo. No nosso exemplo eu usei esse campo para definir qual departamento o usuário pertence. Clicamos em “Save” para finalizar essa etapa de cadastro.
Parte 5 – Administrando Usuários: Remover Usuário e Troca de Senha
Ainda em “Local Users”, podemos perceber que na listagem dos usuários cadastrados no sistema, ao lado aparece dois pequenos ícones, eles são a função editar e deletar.
No botão editar você poderá trocar o nome de usuário e a senha. E no de remover, excluímos o usuário do sistema.
No caso de alterar o dados do usuário, o pfSense traz o mesmo formulário só que preenchido com os Dados Originais bastando você alterar aonde necessário.
Parte 6 – Definindo os Grupos e seus respectivos Sites Liberados
Finalmente chegou a hora de fazermos a autenticação por grupos no pfSense. Vamos no menu “Diagnostics > Edit File”. No campo que aparece vamos digitar:“/usr/local/pkg/squid.inc” e apertar no botão “Load”. Uma vez conteúdo do arquivo carregado, vamos procurar (Control + F) pelo seguinte conteúdo: “acl password proxy_auth REQUIRED” (sem as aspas).
Entre a linha “acl password proxy_auth REQUIRED” e a “EOD;” vamos inserir o código abaixo:
### Definição ACLs dos Grupos com Seus Respectivos Usuários ###
acl COMERCIAL proxy_auth “/var/squid/acl/usuarios_comercial.acl”
acl FINANCEIRO proxy_auth “/var/squid/acl/usuarios_financeiro.acl”
acl ADMINISTRATIVO proxy_auth “/var/squid/acl/usuarios_administrativo.acl”
### Definição das ACLs dos Sites Liberados para Cada Grupo ###
acl SITES_COMERCIAL url_regex “/var/squid/acl/sites_comercial.acl”
acl SITES_FINANCEIRO url_regex “/var/squid/acl/sites_financeiro.acl”
acl SITES_ADMINISTRATIVO url_regex “/var/squid/acl/sites_administrativo.acl”
### Liberação do Acesso para os Grupos ###
http_access allow password COMERCIAL SITES_COMERCIAL
http_access allow password FINANCEIRO SITES_FINANCEIRO
http_access allow password ADMINISTRATIVO SITES_ADMINISTRATIVO
http_access deny all
Agora salvamos o arquivo “squid.inc” alterado.
OBSERVAÇÃO
Em nosso ambiente de implementação de autenticação por grupos, cada grupo tem a sua própria lista de site permitidos, há um detalhe muito importante a realçar.
Na interface de configuração do Squid, em “Services > Proxy Server” na aba “Access Control” temos os campos “Whitelist” e “Blacklist”.
Essas duas listas tem precedência sobre as demais liberações ou bloqueios que usamos no “squid.inc”.
DICA
Particularmente, eu uso esse campo “Whitelist” para cadastrar os sites que serão disponíveis para todos os grupos, ou seja, os sites em comum a todos eles. Pois todos terão acesso. Restando a lista personalizada de cada grupo somente àqueles sites que são acessados só por aquele grupo em específico.
Parte 7 – Criação dos arquivos que definem o grupo e os sites que podem ser visitados
O próximo passo é criar e popular os arquivos que referenciamos nas ACLs de grupos e de sites. Vou dar um exemplo com a criação de ambos arquivos para o Grupo Comercial:
Vamos trocar o endereço “/usr/local/pkg/squid.inc” para o endereço”/var/squid/acl/usuarios_comercial.acl” e então apertamos o botão “Load”.
O pfSense vai dar a seguinte mensagem avisando que o arquivo não existe: “File does not exist or is not a regular file.”. Vamos ignorar essa mensagem e iremos povoar o arquivo com o nome do usuário do departamento Comercial, no caso “joao”.
Se houver mais de um usuário por Departamento, iremos manter sempre o padrão de um usuário por linha. Ao término do processo vamos apertar em “Save”. Notaremos então que a mensagem de arquivo inexistente irá ser alterada para “File Save Sucessfully”. Isso irá nos informar que nosso arquivo agora existe e que foi criado com sucesso.
Agora vamos repetir o processo acima alterando o arquivo a ser criado para:“/var/squid/acl/sites_comercial.acl” que é o arquivo que contém a lista dos sites liberados para esse grupo.
Nesse arquivo vamos continuar mantendo o padrão de um site cadastrado por linha.
.uol.com.br/*
Iremos repetir os processos acima para os grupos restantes e suas respectivas listas de sites liberados:
Grupos:
/var/squid/acl/usuarios_financeiro.acl
/var/squid/acl/usuarios_administrativo.acl
Sites Liberados:
/var/squid/acl/sites_financeiro.acl
/var/squid/acl/sites_administrativo.acl
Com tudo devidamente criado, vamos acessar o menu ”Services > Proxy Server”, vamos apenas rolar a tela para baixo e apertar no botão ”Save”. Isso fará que o Squid tenha as suas regras recarregadas, eliminando a necessidade de reiniciar o pfSense ou parar/recarregar o serviço do Squid.
Se tudo foi feito corretamente seu Squid estará funcionando com a autenticação NCSA e políticas de controle de acesso por grupos. Parabéns!
Parte 8 – Soluções de Problemas
Caso o seu Squid não esteja funcionando, vamos até o menu ”Status > Services”. Aqui saberemos o serviço do Squid está iniciado ou parado.
Outra dica importante é ir em “Status > System Logs”, na aba “System” temos os últimos 50 registros de logs do sistema. E ali provavelmente será mostrado o erro do Squid caso o mesmo não venha a ser iniciado corretamente. Se for um erro na ACL ele irá lhe dizer qual a ACL está com o problema.
Criado Por: Daniel Herzer
Fortaleza, 25 de Setembro de 2012
E-mail: [email protected]
Sobre o Autor