Você está na página 1de 23

Menu

Squid com autenticação via LDAP + SquidGuard com


categorias no PFSense
 By marcelo |  15 de setembro de 2016 |  17 Comentários

Nesse breve tutorial veremos como configurar um servidor proxy no seu PFSense utilizando os pacotes Squid e SquidGuard com
bloqueio por categorias além de autenticação e criação de grupos no AD via LDAP.

Caso você não tenha um servidor Active Directory na sua rede, pode seguir o tutorial apresentado anteriormente que trata do mesmo
assunto, porém usando autenticação local clicando aqui.

O mais importante de falarmos a respeito dessa integração é que, para acessar as informações do AD, o Squid e o SquidGuard precisam
de um usuário e senha do AD. Esse usuário não precisa ter nenhum privilégio, porém é necessário que sua senha não expire e essa
senha também não pode ter caracteres especiais.
Se a senha tiver caracteres especiais não funciona.

Sempre que eu usar a sigla OU, obviamente estou me referindo as Organization Units do AD

Vamos ao cenário referente ao AD.

IP: 10.1.1.12

Domínio: lab.local

Usuário: pfsense

Senha: pfsense123tuto

Então vamos lá. Caso você já tenha o proxy funcionando e queira apenas ver a parte de integração com o AD, pule para o passo 8.

1 – Em System, clique em Package Manager.

2 – Na Aba Available Packages, localize os pacotes Squid e SquidGuard. Instale primeiramente o SquidGuard clicando no botão install.
Confirme e aguarde até que o pacote seja instalado sem sair da página que aparecerá. Faça a mesma coisa com o Squid.
3 – Clique em Services, Squid Proxy Server

4 – Primeiro precisamos acessar a aba Local Cache e clicar em salvar ao final da tela. Assim o Squid criará toda a sua estrutura de
arquivos.
5 – Volte na Aba General, marque a opção Enable Squid Proxy. Escolha as interfaces onde o proxy estará habilitado e a porta que será
utilizada para o serviço.

6 – Para que possamos ter um log do que é acessado e assim, futuramente, gerarmos relatórios marque a opção Enable Access
Logging.

Em Log Store Directory fica o caminho onde serão armazenados os logs, caso você tenha lido o nosso tutorial sobre softupdates, essa é
uma das ocasiões onde o softupdates melhora a performance de um determinado serviço.

Em rotate Logs podemos escolher com qual frequência em dias será feita a rotação dos logs. Essa pratica evita que os arquivos de log
do squid fiquem com um tamanho muito grande.
7 – Em visible hostname podemos colocar um nome de host para aparecer nos erros do squid.

Em Administrator Email’s coloque o email do administrador da rede, aquela pessoa que os usuários ou clientes devem chamar caso
precisem.

Em Error Language escolhemos o idioma da página de erro do squid.

Em Suppress Squid Version marcamos para que a versão do squid não apareça na página de erro.

Clique em save.
8 – Agora vamos até a aba authentication para configurarmos detalhes da autenticação.

Em authentication Method devemos escolher LDAP para que possamos pegar os usuários já existentes no AD.

Em Authentication Server devemos colocar o IP do nosso AD, nesse caso será 10.1.1.12

Em Authentication Server Port colocaremos a porta que o Squid usará para se conectar ao AD, 389 é o padrão.

Em Authentication Prompt podemos colocar a mensagem que virá na tela em que o usuário deve colocar suas credenciais ao tentar
navegar na internet.

Authentication Processes é o número de processos de autenticação que poderão rodar simultaneamente no servidor, se deixarmos 5,
apenas 5 daquelas mensagens perguntando nome e senha aparecerão simultaneamente para todos os usuários da rede. Esse numero
não precisa ser muito grande, pois é improvável que todos os usuários comecem uma nova conexão ao mesmo tempo.

Authentication TTL teoricamente seria quanto tempo o squid considera válido uma combinação de usuário e senha sem que haja
interações do usuário. Após esse tempo, em minutos, o squid pede novamente as credenciais para esse usuário.

Seguindo na mesma tela mais abaixo temos:

LDAP Version: Versão do seu LDAP, nesse caso é o 3.

LDAP Server User DN : Usuário que o squid usará para se conectar ao AD. Onde CN=squid é o nome do usuário. cn=Users é a OU onde
esse usuário se encontra e DC=lab,DC=local é o meu domínio.

LDAP Password: Senha do usuário colocado acima. Sempre lembrando que não deve ter caracteres especiais.
LDAP Base Domain: Aqui devemos colocar onde estão os usuários que usarão o proxy. Se todos os usuários estiverem na mesma OU
podemos coloca-la. No meu caso, os usuários estão esparramados em varis OU’s, então eu coloco apenas o dominio. dc=lab,dc=local

Deixe o resto preenchido como na imagem abaixo.

Com isso finalizamos as configurações do Squid. Note que nesse caso não há necessidade de criarmos usuários, pois ele sempre pegará
os que estão no AD. E, sendo assim, os usuários conseguem trocar sua senha através do próprio windows.

No caso dos usuários a senha pode ter caracteres especiais normalmente.

Para que o Squid saiba o que cada usuário pode ou não acessar ele utiliza o SquidGuard. É nesse pacote que configuraremos os grupos
de usuários e quais sites eles podem acessar.

Antes de tudo precisamos ir ao nosso servidor de AD e criar os grupos referentes ao grupos de acesso a internet. Utilizaremos um grupo
chamado Ouro para acesso total, um grupo chamado Prata para acesso com bloqueios e um grupo chamado Bronze para acesso a
apenas alguns endereços liberados por uma Whitelist.

Então vá ate o seu AD e crie apenas os grupos Prata e Ouro. O grupo bronze será para usuários que não possuem acesso. Nesse caso
qualquer usuário que não esteja no grupo prata ou ouro automaticamente cairá no bronze.

Vamos a configuração do SquidGuard.

1 – Clique em Services e depois em SquidGuard Proxy Filter


2 – Na aba General Settings Clique em Enable.

Enable LDAP Filter: Habilite essa opção para que o SquidGuard faça a pesquisa dos grupos através de LDAP

Preencha o restante como na imagem abaixo, usando o mesmo usuário e senha para que o SquidGuard tenha acesso ao AD.

3 – Ainda em General Settings marque as opções que habilitam os logs do SquidGuard. Maque também a opção Blacklist para que
façamos os bloqueios através de lista de categorias e coloque o endereço de onde o pacote ira baixar essa lista
(http://www.shallalist.de/Downloads/shallalist.tar.gz) e clique em save.

4 – Clique na Aba Blacklist, o endereço da lista deve vir preenchido. Caso não esteja basta colocar novamente o endereço citado acima.
Clique em download e aguarde que o sistema baixe e aplique a lista como mostrado abaixo.

5 – Agora vamos criar uma lista branca para servir como o Bronze do nosso projeto. Vá em Target Categories e clique para adicionar
uma nova. Aqui faremos o processo apenas para a lista branca, mas também funciona para lista negra. Se preferir já pode criar as duas
como no exemplo a seguir.
6 – Coloque o nome que deseja para a lista. Nesse exemplo colocaremos ListaBranca para os endereços que serão liberados para
qualquer usuário ou máquina da rede. Para criar uma lista personalizada de bloqueios, o raciocínio é o mesmo. Se quiser, você já pode
criar outra lista com o nome de ListraNegra para incluir endereços de bloqueio. No campo domain list colocaremos domínios ou IP’s
que serão liberado no caso da lista branca ou bloqueados no caso de uma eventual lista negra. Futuramente chegaremos no passo onde
eu digo que a lista branca é liberação e a lista negra é proibição.

7 – Em Url List podemos colocar endereços que serão liberados ou bloqueados e em Regular Expression podemos colocar também
palavras específicas para bloqueio ou liberação. Para funcionar, as palavras devem estar presentes na url.
8 – Em Description podemos colocar uma descrição para a regra e marcamos a opção log para que todos os acessos que passarem por
essa regra sejam adicionados aos logs e relatórios.

9 – A aba Common ACL é o nosso grupo Bronze. O que configurarmos nela acontecerá para todos os acessos que não estejam
especificados nos grupos Prata e Ouro. Por exemplo, se criarmos um usuário e esquecermos de coloca-lo em algum dos grupo,
automaticamente os acessos dele cairão na common acl. Sistemas que não tenham a opção de se configurar acesso através do proxy
também cairão aqui.

Clique no Simbolo + para expandir a lista nela aparecerá a nossa ListaBranca. Caso você tenha feito uma lista negra também aparecerá.
Deixamos a lista Branca como WhiteList. Se desejarmos liberar mais alguma categoria devemos procura-la e colocar como allow.
10 – A ultima linha dessa lista é o Default Access todas as linhas que estiverem como — terão o mesmo comportamento da Default
Access que nesse caso deixaremos como Deny.

Importante: A diferença entre Allow e Whitelist é que, caso adicionemos um endereço na lista branca que já pertença a uma
categoria que esteja como Deny, se a nossa lista branca estiver como Allow, o endereço continuará bloqueado, pois o Deny é
mais “forte” que o Allow. Quando colocamos como WhiteList, o endereço é liberado mesmo que esteja em uma categoria Deny.
Pois o Whitelist é mais “forte” que o Deny.

A opção Do not allow IP-addresses in URL bloqueia qualquer acesso feito no navegador diretamente a um endereço IP.

Em Use SafeSearch engine podemos marcar para que um usuário não consiga navegar num site proibido através de ferramentas de
pesquisa que permitem visualizações prévias das páginas.
11 – Devemos Marcar a opção Log para que os acessos que passem pela Common ACL apareçam nos logs e relatórios. Clique em Save.

12 – Agora vamos criar nossos grupos ouro e prata. Acesse a aba Groups ACL e adicione um novo grupo.

13 – O campo Disable serve para desabilitar o grupo, assim você não precisa deleta-lo para eventuais testes. Em name coloque o nome
do grupo, nesse caso, Ouro. Em Cliente (source) vamos usar um filtro para dizer ao SquidGuard que todos os usuários que estiverem
no grupo Ouro do AD devem ter acesso conforme configurado nos próximos passos.
Use o filtro:

ldapusersearch ldap://10.1.1.12/DC=lab,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)
(memberOf=CN=ouro%2cCN=Users%2cDC=lab%2cDC=local))

Edite conforme a sua realidade. Note que está escrito acima o IP do meu AD e os dados do grupo conforme o nome do meu domínio. É
importante acertar o caminho da OU onde você criou os grupos. No meu caso criei na OU Users, por isso o trecho referente ao local
ficou:

(memberOf=CN=ouro%2cCN=Users%2cDC=lab%2cDC=local)

14 – Ainda na mesma tela podemos clicar no sinal de + para expandir as categorias, porém como esse grupo é o que terá acesso
totalmente liberado podemos deixar tudo padrão.
15 – O Default Access desse grupo será Allow. As outras opções são as mesmas da Common ACL, porém marcaremos somente a
opção de Log já que o acesso é ilimitado. Clique em Save.
16 – Agora repetiremos o mesmo processo para criarmos o grupo prata. Não se esqueça de editar o filtro trocando

ldapusersearch ldap://10.1.1.12/DC=lab,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)
(memberOf=CN=ouro%2cCN=Users%2cDC=lab%2cDC=local))

Para

ldapusersearch ldap://10.1.1.12/DC=lab,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)
(memberOf=CN=prata%2cCN=Users%2cDC=lab%2cDC=local))

17 – Na mesma página clicaremos no + para expandir e vamos colocar Deny nas categorias que desejarmos. Se quiser saber qual site se
encaixa em qual categoria basta acessar o site http://www.shallalist.de e pesquisar uma URL ou verificar a descrição de cada categoria.
18 – Nesse caso o Default Access também é Allow. Dessa forma será liberado tudo que não está contido em uma categoria com Deny.
Para garantir que um site da nossa lista branca não seja bloqueado vamos colocar a lista branca como Whitelist. Caso você já tenha
feito uma lista negra basta colocar Deny na linha correspondente. As outras opções também são iguais as da Common ACL, aqui
poderemos marca-las ou não. Você é quem decide de acordo com sua realidade.
19 – Agora que nossos grupo já estão prontos clique em Save.

20 – Volte até a aba General Settings e clique em apply para que todas essas configurações entrem em vigor. Não se esqueça desse
passo, sempre que alterações forem feitas no SquidGuard devemos faze-lo novamente.
Não se esqueça de distribuir os usuários do seu AD entre os grupos Ouro e Prata para que eles comecem a navegar pelo Proxy.

Se todos os computadores da sua rede estão logando pelo domínio é possível configurar o proxy através de GPO, logo teremos um
tutorial sobre isso.

Obrigado pela atenção. Qualquer dúvida, crítica, sugestão ou correção, deixe um comentário, por favor.

PFsense | Tags: ad, autenticação, ldap, pfsense, proxy.autenticado, squid, squidguard

Navegação de Post

Squid com autenticação local + SquidGuard com categorias no PFSense VPN Site to Site MultiWan nas duas pontas com PFSense

17 Reply to “Squid com autenticação via LDAP + SquidGuard com categorias no


PFSense”

Pingback: Squid com autenticação local + SquidGuard com categorias no PFSense - MMoraes Soluções

16 de setembro de 2016 às 11:46


Bom dia Marcelo. Já refiz meu PFsense umas 4 vezes, de acordo com vários tutoriais, INCLUSIVE ESTE SEU ,
Marcio disse: MUITO BOM E SUPER DETALHADO mas sempre dá o mesmo erro. Verificando os logs do squidguard:
15.09.2016 12:09:59 Added LDAP source: maria
15.09.2016 12:09:59 (squidGuard): ldap_simple_bind_s failed: Invalid credentials
Usando Firefox consigo logar com maria , mas nenhuma regra de bloqueio é aplicada.
Com o comando no console , retorna resultado OK
/usr/local/libexec/squid/basic_ldap_auth -v 3 -b dc=if,dc=local -D cn=pfsense,cn=Users,dc=if,dc=local -w M#S02667 -f
“sAMAccountName=%s” -u uid -P 192.168.1.224:389
maria senha@123
OK
Resumindo: após login do user maria, nenhuma regra de bloqueio é aplicada e nos logs o squidguard mostra que houve um erro nas
credenciais. Mas como eu disse , o comando que verifica as credenciais via console, mostra que as mesmas estão OK. Já fiz dezenas de
consultas no Google e até agora , nada!
Responder

1. 19 de setembro de 2016 às 13:30


Se ele esta reconhecendo os usuários corretamente pode ser duas causas. Ele não está reconhecendo que
marcelo disse: aquele usuário é de um grupo que sofre bloqueios, então você teria q revisar os grupo tanto no squidguard
quanto no seu AD. Ou você pode verificar nas suas regras de firewall se está tudo correto para que a navegação saia apenas pelas
porta do firewall.
Responder
16 de setembro de 2016 às 12:33
Amigo, apos fazer os passos, o bloqueio de sites HTTPS aparece o erro de ” Pagina não pode ser exibida”, ao
Mailer disse: contrario de outros sites HTTP que aparecem a mensagem de bloqueio corretamente. Uso Squi + proxy manual
+ Certificado instalado nas maquinas, e dessa maneira consigo bloquear todos os sites que eu quiser e mostar a mensagem de bloqueio.
Algum recomendação para usar squidguard e que apareça de fato a mensagem de bloqueio para qualquer HTTPS também?
Responder

1. 19 de setembro de 2016 às 13:32


Eu não utilizo dessa forma, então teria que testar antes de te ajudar. O que eu posso adiantar é que a única
marcelo disse: forma de funcionar é com os certificados e tem que estar tudo muito correto, sem margem de erro. Assim
que eu fizer uns testes aqui eu aviso.
Responder

13 de dezembro de 2016 às 18:52


Parabéns pelo tuto. Bem detalhado. Bom no meu cenário. Nao consigo fazer o bloqueio. O squid reconhece o
GMC disse: usuário so que ele nao aplica as regras do bloqueio, e como tudo tivesse allow. Voce poderia me ajudar?. No
relatório do squid nao informa problema algum em questao de loguim. Os caminhos do lpad search: ta tudo certinho.
Responder

1. 19 de dezembro de 2016 às 19:28


Verifique a senha do usuário que faz a busca no ldap. Essa senha não pode ter caracteres especiais.
marcelo disse: Responder

3 de março de 2017 às 00:31


Cara muito bom o seu tutorial, me ajudou muito a montar um pfsense em Zentyal!
João Felipe Guariglia disse: Responder

20 de junho de 2017 às 21:21


boa noite , , acredito uma coisa que ficou vaga , é como usar o squidguard do pfsense , com sheduler , ou a
Anderson disse: opção de regras de categoria , por time , como aplicar isso , pelo squidguard, ´uma coisa , que venho
tentando fazer e nunca consegui, poderias fazer um post disso , com imagens , conforme fez com outros posts, aqui
Responder

21 de junho de 2017 às 16:06


Boa tarde.
Phillip disse: Estou utilizando o Pfsense 2.2.4, realizei a configuração de autenticação com AD LDAP(squid+squidguard), ele
consegui validar loga, mas não consegui pegar o user logado, ficando somente o ip e também não realiza os bloqueios configurados no
squidguard. Pode me ajudar?
Responder

3 de agosto de 2017 às 11:46


Olá bom dia,
Fábio Gonçalves disse: Gostei muito do seu tutorial, e já aplique ele de varias formas com o ad do windows server, e tudo
funciona perfeitamente.
Já tentou essa autenticação implementando com o samba4 sendo ele instalado em um linux da vida.
Pretendo colocar em produção dessa forma mais até o momento não consegui um material que me ajude com esse tipo de
implementação.
Grato se poder me dar uma ajuda.
Responder

8 de novembro de 2017 às 15:53


Muito bom o tutorial. Mas configurei um outro servidor aqui e quando ativo o squidGuard a navegação
Hugo Alexandre disse: fica lenta até dar a mensagem de pagina indisponivel. Já até formatei o servidor criando separadas as
partições /var e /usr com Soft-updates e continua lento quando ativo o squidGuard. A minha versão do pfSense é a 2.4.0 com Samba 4
instalado.
Responder
Pingback: Gerenciando whitelist no PFsense – lucasatrindade
Pingback: Squid com autenticação via LDAP + SquidGuard com categorias no PFSense – davipdm

5 de outubro de 2018 às 16:17


Boa tarde, fiz toda a configuração conforme consta. Chega a pedir usuário e senha do proxy, mas
João Luiz Marques disse: não abre as páginas… fica toda hora pedindo usuário e senha! Consegue ter uma ideia do que
poderia ser?
Responder

1. 9 de outubro de 2018 às 05:17


A impressão que eu tenho assim por cima é que ele não está conseguindo validar a o usuário. Cheque a
marcelo disse: conexão com o AD. Certifique-se de que a senha usada não tem caracteres especiais.
Responder

30 de outubro de 2018 às 12:49


Marcelo bom dia.
Doval disse: Parabéns pelo tutorial, no meu ambiente tenho o AD + PfSense 2.4.4 + Squi + SquiGuard, existe sabe informar se
existe a possibilidade do usuário não ter a necessidade de inserir usuário e senha onde o proxy já identificaria o usuário que está
sincronizado com o AD e com certificado digital instalado nas máquinas.
Será que funciona?
Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *
Comentário

Nome *

E-mail *

Site

Publicar comentário

Search... Search

Posts Recentes

Black Friday – Curso PFSense + Zabbix


Certificação Linux – Linux Professional Institute
Customizando e Importando Ícones para o Zabbix
Zabbix Proxy – Instalação e principais características
Zabbix Agent – Principais Características

Comentários

Mauri Carmo em Squid com autenticação local + SquidGuard com categorias no PFSense
Doval em Squid com autenticação via LDAP + SquidGuard com categorias no PFSense
marcelo em Squid com autenticação via LDAP + SquidGuard com categorias no PFSense
João Luiz Marques em Squid com autenticação via LDAP + SquidGuard com categorias no PFSense
Vinicius Vidal em Instalando pfsense pelo pendrive
Arquivos

novembro 2018
outubro 2018
setembro 2018
julho 2018
junho 2018
maio 2018
março 2018
janeiro 2018
dezembro 2017
outubro 2017
setembro 2017
julho 2017
dezembro 2016
setembro 2016
agosto 2016

Categorias

Certificações
Firewall
OS Unix Like
PFsense
populares
Zabbix

Meta

Acessar
Posts RSS
RSS dos comentários
WordPress.org

Search... Search

Posts Recentes

Black Friday – Curso PFSense + Zabbix


Certificação Linux – Linux Professional Institute
Customizando e Importando Ícones para o Zabbix
Zabbix Proxy – Instalação e principais características
Zabbix Agent – Principais Características

Comentários

Mauri Carmo em Squid com autenticação local + SquidGuard com categorias no PFSense
Doval em Squid com autenticação via LDAP + SquidGuard com categorias no PFSense
marcelo em Squid com autenticação via LDAP + SquidGuard com categorias no PFSense
João Luiz Marques em Squid com autenticação via LDAP + SquidGuard com categorias no PFSense
Vinicius Vidal em Instalando pfsense pelo pendrive

Arquivos

novembro 2018
outubro 2018
setembro 2018
julho 2018
junho 2018
maio 2018
março 2018
janeiro 2018
dezembro 2017
outubro 2017
setembro 2017
julho 2017
dezembro 2016
setembro 2016
agosto 2016

Categorias

Certificações
Firewall
OS Unix Like
PFsense
populares
Zabbix

Meta

Acessar
Posts RSS
RSS dos comentários
WordPress.org

Powered by WordPressMMoraes Soluções 2018 | All Rights Reserved.