* É possivel utilizar usuários do LDAP para gerenciar o pfSense, para isto configure conforme abaixo:
System > User Manager > Authentication Servers
Add
Descriptive name
Hostname or IP address
Search scope:
Level: Entire Subtree
Base DN: DC=domain,DC=com
Authentication containers: OU=Accounts
Bind anonymous: Unchecked
Bind credentials: DOMAIN\<usuário para pesquisa> - Password
RFC 2307 Groups: Unchecked
Save
Acesse o servidor criado e clique no botão Select container e selecione as OU que realizará pesquisa de usuários.
Save
Diagnostics > Authentication
Authentication Server
Username
Password
Test
System > User Manager > Groups
Add
Group name: Grupo do AD <- Tamanho maximo do nome de 16 caracteres
Scope: Remote
Save
Edite
Assigned privileges: WebCfg - All pages
Save
System > User Manager > Settings
Authentication Server: Selecione o server AD
Save
* Faça logout do web configurador e realize teste de acesso utilizando uma conta LDAP configurada.
* Caso apresente a mensagem "No page assigned to this user! Click here to logout.", demonstra que o usuário que esta tentando conectar não possui privilégios para acessar algum recurso do pfSense.
* Crie uma nova entrada Servidor de Autenticação em System > User Manager > Authentication Servers com as mesmas configurações de conexão LDAP/AD adicionando um novo server com o nome GG_ALLOW_VPN-AD1 e habilite o parâmetro Extended query: adicionando a linha abaixo no campo
Extended query: &(objectCategory=user)(memberOf=CN=GG_ALLOW_VPN,OU=Groups,DC=domain,DC=com,DC=br)
* Edite a entrada OpenVPN configurada em VPN > OpenVPN > Servers e altere
Backend for authentication: GG_ALLOW_VPN-AD1
Save
Nota: É possível criar mais de uma entrada de autenticação LDAP/AD e selecionar múltiplas fontes de autenticação na opção Backend for authentication utilizando a tecla CTRL.
* Baixe o cliente VPN, acesse OpenVPN > Client Export Utility, escolha a versão do arquivo e realize do download e distribua aos usuários
* Acesse Services > Squid Proxy Server > Authentication e ajuste conforme abaixo o método de autenticação com LDAP
Authentication Method: LDAP
Save
Authentication Server: domain.com.br
Authentication server port: 389
Authentication Prompt: Por favor entre com suas credenciais para acessar o proxy
Authentication Processes: 10
Authentication TTL: 480 <- equivalente a 8 horas
LDAP version: 3
LDAP Server User DN: DOMINIO\<Usuário_Consulta> ou CN=binddnldap,DC=domain,DC=com,DC=br
LDAP Password: <PASSWORD> <- formato aceito valid format: [a-zA-Z\/][a-zA-Z0-9/_\-\.\/\:\%\+\?=&] - Não usar senha com @
LDAP Base Domain: OU=Accounts,DC=domain,DC=com,DC=br
LDAP Username DN Attribute: uid ou sAMAccountName
LDAP Search Filter: (sAMAccountName=%s) <- Somente usuários
Ou
LDAP Search Filter: (&(memberOf=CN=<GG_ALLOW_INTERNET>,OU=Groups,DC=domain,DC=com,DC=br)(sAMAccountName=%s)) <- para grupos
Save
* O retorno das variáveis %? são as seguintes:
%a Informa o endereço IP do cliente.
%i Retorna o Usuário (ID) do cliente.
%s Retorna o grupo do usuário
%n Retorna o domínio do cliente.
%u Variável que armazena o URL solicitada pelo cliente.
* Validar a integração com LDAP
[root@pfSense]/root: squid -k parse
Configurar o browser com proxy e testar o acesso.
* No console do pfSense é possivel acompanhar o fluxo de uso que passa pelo Squid
[root@pfSense]/root: tail -f /var/squid/logs/access.log
* Acesse Services > SquidGuard Proxy Filter > General settings
Enable LDAP Filter: Check
LDAP DN: CN=binddnldap,DC=domain,DC=com,DC=br <- tem que usar a formatação DN completa
LDAP DN Password: <PASSWORD> <- formato aceito valid format: [a-zA-Z\/][a-zA-Z0-9/_\-\.\/\:\%\+\?=&] - Não usar senha com @
Strip NT domain name: Check
Strip Kerberos Realm: Check
LDAP Version: 3
Save
* Acesse Groups ACL e adicione uma nova ACL
Clique em +Add
Name: ALLOW_INTERNET <- Máximo de 16 caracteres
Client (source): ldapusersearch ldap://<IP_AD>:3268/DC=domain,DC=com,DC=br?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=GG_ALLOW_INTERNET%2cOU=Groups%2cDC=domain%2cDC=com%2cDC=br))
Target Rules List: Clique no +
e defina a permissão para cada categoria.
Redirect mode: int error page (enter error message)
Redirect: Pagina bloquead.
Ou
Redirect mode: ext url redirect (enter URL)
302:http://www.site.com.br
Save
Nota: Utilizar número IP para configurar a linha ldapusersearch, quando usado nome pode ocorrer falha na consulta com a base LDAP/AD. Caso tenha mais de um servidor LDAP/AD basta adicionar na sequencia outra linha de ldapusersearch separada por espaço.
APPLY
Agora clique no botão em General settings para aplicar as alterações no serviço SquidGuard.