Neste artigo vou mostrar como autenticar usuários no pfSense usando servidor LDAP no Synology DSM. As etapas incluem criptografia SSL com base nos certificados Let’s Encrypt. Você precisa emitir certificados SSL Let’s Encrypt, configurar certificados SSL em seu pfSense e finalmente configurar certificados SSL no Synology que você emitiu pelo pfSense. Tanto o pfSense quanto o Synology precisam ter os mesmos certificados instalados.
Configure o Servidor LDAP no DSM
Faça login no seu NAS Synology, abra o Centro de pacotes, procure por LDAP e clique no botão Instalar. Uma vez concluída a instalação, clique em Abrir para iniciar a configuração. Em seguida, vá para a guia Configurações , clique em Ativar servidor LDAP e coloque o nome de domínio completo que corresponde ao domínio do certificado SSL na caixa de texto FQDN . Escolha uma senha que todos os seus clientes LDAP devem usar para conectar ao servidor LDAP, incluindo o aparelho pfSense. Clique nas Configurações de Conexão, selecione as três caixas e clique em Ok. Para um contexto extra, aqui está uma breve explicação sobre o que cada caixa de seleção fará em seu servidor LDAP:
- Proibir conexões anônimas: Força usuários a usarem a senha da etapa anterior para se conectar ao servidor LDAP
- Forçar clientes a usar conexões criptografadas permite que autenticação SSL adicione mais segurança à rede
- Mata conexões ociosas (minutos) Mata conexões de clientes que não estão trocando dados ativamente com o servidor
Você pode fazer alterações nessas seleções conforme apropriado, mas recomendo usar todos os três recursos para segurança mais rigorosa. Finalize a configuração clicando em Aplicar. Tome nota de Base DN e Bind DN. na parte inferior da página, pois vamos usá-la, juntamente com FQDN e Senha.
Neste ponto, o servidor LDAP está funcionando. Hora de adicionar usuários e grupos para usá-lo no pfSense. Vá para Gerenciar grupos e clique em Criar botão. Na nova caixa de diálogo do grupo, digite pfsense_admins como nome do grupo e clique em Próximo. Uma tela de confirmação será exibida e você pode clicar em Aplicar para terminar o processo.
Vamos criar um usuário que será capaz de fazer login e gerenciar seu pfSense indo para a guia Gerenciar usuários e clicando em Criar. Na nova caixa de diálogo do usuário, digite um nome de usuário em Nome, E-mail, Senha e certifique-se de que a caixa Desativar essa conta não está selecionada antes de prosseguir para o Próximo passo. A próxima tela mostra uma lista de grupos que o novo usuário pode participar. Certifique-se de que pelo menos pfsense_admins seja selecionado antes de clicar em Próximo. A próxima tela tem um monte de campos opcionais que você pode preencher como quiser. Clique em Próximo para chegar à tela de confirmação, que você pode clicar em Aplicar. Agora você tem um servidor LDAP em execução com um novo usuário que pertence ao grupo pfsense_admins.
Para testar sua conexão, você pode instalar Apache Directory Studio e configurar uma conexão LDAP com o Synology. Uma vez instalado, clique no novo ícone de conexão, que iniciará um assistente. Selecione conexão LDAP na categoria Navegador LDAP e clique em Próximo, digite um nome de conexão significativo e o nome de domínio completo no campo Hostname (deve corresponder ao nome de domínio no certificado SSL). A Porta deve ser 389 e o Método de criptografia deve ser Use extensão StartTLS. Selecione Parâmetro de rede para garantir que seu servidor LDAP possa ser alcançado e vá para a Próxima etapa. Mantenha o Método de autenticação como Autenticação Simples e digite o Bind DN com o valor que anotou durante a configuração do Synology junto com a Senha. Clique em Verificar autenticação para ter certeza de que a autenticação está funcionando e clique em Concluir. Agora você pode se conectar ao seu LDAP e navegar no banco de dados LDAP para ver seu conteúdo. Observe que você encontrará um cn=users e cn-groups com o usuário e o grupo que você criou antes. Agora estamos prontos para configurar pfSense
(opcional) Permitindo a conexão LDAP em roteadores encadeados
Meu homelab tem dois roteadores encadeados (daisy chained), o que cria duas redes diferentes. Se você não tem essa topologia, pode pular esta seção. Optei por essa abordagem, pois gosto dos poderosos Pontos de Acesso da Unifi e da boa integração com o UDM Pro. Mas não confio no UDM Pro para garantir a segurança da minha casa, então deleguei essa responsabilidade e de VPN ao pfSense. Você pode configurar pfSense + UDM Pro para trabalhar juntos através deste post. De qualquer forma, dado o meu cenário, o servidor LDAP está atrás do UDM Pro, que é uma rede diferente do pfSense. O que temos que fazer é 1) criar uma regra de firewall no UDM-Pro para permitir conexão vinda do pfSense passe pelo UDM Pro, 2) encaminhar a porta 389 do UDM Pro para o seu NAS Synology com servidor LDAP e 3) criar uma entrada no DNS do pfSense para resolver manualmente o nome Synology para o IP do UDM Pro.
Vamos começar com a regra do firewall no UDM Pro. Após o login, vá para Configurações >> Rede >> Segurança da Internet >> Firewall. Na guia Regras , clique em WAN e Crie uma nova regra e preencha os campos da seguinte forma:
GERAL
- Tipo: WAN local
- Descrição: Permitir LDAP SSL (hospedado no servidor XXX)
- É importante ter uma descrição que explique por que é necessária para manutenção futura.
- Habilitado: selecionado
- Regra aplicada: Antes das regras predefinidas
- Ação: Aceitar
- Protocolo IPv4: TCP
- Combine todos os protocolos, exceto isso: desmarcado
ORIGEM
- Tipo de fonte: Endereço IP
- Endereço IPv4: pfSense LAN IP (por exemplo, 10.0.0.1)
- Porta: em branco
- Endereço MAC: em branco
DESTINO
- Tipo de fonte: Endereço IP
- Endereço IPv4: UDM Pro LAN IP na rede pfSense (por exemplo, 10.0.0.2)
- Porto: 389
Todas as outras configurações podem permanecer como estão. Clique em Aplicar e você deve ver sua nova regra listada na guia regras WAN .
Para depuração, recomendo que você crie uma regra de firewall semelhante que permite ICMP no campo Protocolo IPv4 e Solicitação Echo (Echo request) no sub-campo IPv4 ICMP Type Name. As configurações de Origem e Destino são as mesmas de antes e uma descrição significativa seria algo como Permitir ICMP no WAN local (pfSense -> UDM Pro).
Nesta fase, qualquer conexão que esteja vindo do seu pfSense para UDM Pro usando a porta TCP 389 é aceita pelo firewall. O próximo passo é fazer com que o UDM Pro encaminhe esta porta para o dispositivo correto, que é o dispositivo Synology (192.168.1.2 neste tutorial).
Vá para Configurações >> Gateway >> encaminhamento da porta e clique em Criar nova regra de encaminhamento de portas e preencher da seguinte forma:
- Nome: Porta SSL LDAP para Synology
- Habilitar a regra de avanço: selecionado
- De: Limitado
- Fonte: pfSense IP (por exemplo, 10.0.0.1)
- Porto: 389
- IP de avanço: IP do Synology na rede UDM Pro (por exemplo, 192.168.1.2)
- Encaminhar Porta: 389
- Protocolo: TCP
- Habilitar o log: desmarcado
Clique em Aplicar e você deve ver sua nova regra de encaminhamento de porta listada. Neste ponto, uma conexão SSL LDAP vinda do pfSense em direção ao servidor Synology deve passar pelo UDM Pro. O último passo é resolver o nome de domínio completo do servidor Synology (por exemplo, synology.lan.domain.com) para o endereço IP UDM Pro. Como o pfSense não conhece nomes resolvidos pela UDM Pro, criaremos uma regra estática para isso.
Configure pfSense
(opcional) Configurando roteadores em cascata
Este primeiro passo pode ser pulado se você não estiver usando roteadores em cascata. Ele fará com que o pfSense resolva o nome da Synology para o UDM Pro IP. Após o login, vá para Serviços >> DNS Resolver e role até a tabela Substituições e clique em Adicionar e preencha da seguinte forma:
- Host: Nome de host do Synology como conhecido pelo UDM Pro (por exemplo, synology)
- Domínio: Nome de domínio do seu UDM Pro (por exemplo, lan.domain.com). Meu pfSense e UDM Pro têm o mesmo nome de domínio, mas este não é um requisito rigoroso
- Endereço IP: Endereço IP UDM Pro na rede pfSense (por exemplo, 10.0.0.2)
- Descrição: Resolução do nome Synology para UDM Pro IP (NAT)
Clique em Salvar e Aplicar alterações para que as alterações entrem em vigor. Teste a entrada do DNS indo ao Diagnóstico >> Ping e digite o nome completo do seu dispositivo Synology e clique em Ping. Se você fez tudo certo, você deve ver que o synology.lan.domain.com foi resolvido para algo como 10.0.0.2 e que houve perda de pacote de 0,0%.
Configurando LDAP como servidor de autenticação
Depois de passar por todas as etapas anteriores, o pfSense pode alcançar o servidor LDAP, que já possui um usuário e um grupo no banco de dados.
Permitir que o pfSense autentique os usuários através do LDAP é um processo de 3 etapas:
Adicionando servidor LDAP como servidor de autenticação
Após o login, vá para Sistema >> Gerenciar de Usuários >> Servidor de Autenticação e clique em Adicionar e fazer o seguinte:
- Nome descritivo: Synology LDAP
- Tipo: LDAP
- Nome do host ou endereço IP: Se estiver usando SSL, digite seu nome de domínio completo do Synology que corresponde ao nome do certificado (por exemplo, synology.lan.domain.com). Se você não selecionar os campos Força clientes usarem conexões criptografadas durante a configuração LDAP na Synology, você pode usar o IP do UDM Pro diretamente
- Porta: 389
- Transporte: TCP – STARTTLS
- Autoridade Certificadora de Pares:Lista global de CA raiz
- Versão do protocolo: 3
- Escopo de pesquisa:
- Nível: Subtree inteiro
- Base DN: Isso pode ser encontrado na página de configurações do servidor LDAP do Synology (por exemplo, dc=synology,dc=lan,dc=domain,dc=com)
- Recipientes de autenticação: cn=usuários
- Consulta estendida: verifique se há segurança melhorada (somente usuários de pfsense_admins grupo poderão autenticar no pfSense)
- Consulta: Prepend ‘memberOf=cn=pfsense_admins,cn=groups’ para a base DN (por exemplo, membroOf=cn=pfsense_admins,cn=groups,dc=synology,dc=lan,dc=domain,dc=com)
- Bind anônimo: desmarcado
- Vincule as credenciais: Use Bind DN e senha da configuração do servidor Synology LDAP (por exemplo, uid=root,cn=users,dc=synology,dc=lan,dc=domain,dc=com)
- Atributo de nomeação do usuário: uid
- Atributo de nomeação do grupo: cn
- Atributo do membro do grupo: membroOf
- RFC 2307 Grupos: desmarcados
- Classe de objetos de grupo: posixGroup
- UTF8 Encode: verificado
- Alterações do nome de usuário: em branco
Clique em Salvar e teste sua conexão indo ao Diagnóstico >> Autenticação e faça o seguinte:
- Servidor de autenticação: Selecione a conexão LDAP da etapa anterior
- Nome de usuário: nome de usuário criado durante a configuração do servidor Synology LDAP
- Senha: senha para o usuário criado no servidor Synology LDAP
Clique em Teste e você deve ver uma mensagem como ‘Usuário <your_user> autenticado com sucesso.Este usuário é um membro de grupos: ‘. Observe que, embora a autenticação tenha sido bem sucedida, seu usuário LDAP não pertence a nenhum grupo reconhecido pelo pfSense. Vamos corrigir isso na próxima etapa
Adicionando grupo remoto do servidor Synology LDAP
Agora que o pfSense pode reconhecer usuários do servidor LDAP da Synology, temos que criar um grupo local que será usado para mapear o grupo remoto no LDAP.
Vá para Sistema >> Gerenciar de usuário >> Grupos, clique em Adicionar e faça o seguinte:
- Nome do grupo: pfsense_admins ou qualquer nome que você usou na configuração do servidor LDAP. O nome do grupo entre Synology e pfSense deve coincidir!
- Escopo: Remoto
- Descrição: Grupo de Synology LDAP
- Adesão ao grupo: não adicione nenhum usuário local aqui
- Privilégios atribuídos: clique em Adicionar, selecione WebCfg – Todas as páginas e clique em Salvar
Clique em Salvar e teste o mapeamento do grupo indo para Diagnóstico >> Autenticação como descrito anteriormente. Se não houver erro de digitação, você deve ver algo como:
O usuário <your_user> autenticado com sucesso.Este usuário é um membro de grupos: pfsense_admins
Atribuindo conexão LDAP ao mecanismo de login pfSense
Agora que o pfSense reconhece seu servidor LDAP e sabe quais grupos procurar autorização, a última etapa é instruir o pfSense a consultar o banco de dados LDAP durante o login do usuário.
Vá para a página Sistema >> Gerenciador de Usuários >> Configurações. No campo Servidor Autenticação selecione a conexão LDAP em oposição ao banco de dados local. Quando você clica em Salvar e Testar, você deve ver um diálogo no qual o pfSense consegue 1) se conectar 2) vincular 3) buscar unidades organizacionais a partir do servidor LDAP. Uma lista com pelo menos três OUs será listada.
Para realizar o último teste, clique no ícone Logout no canto superior esquerdo da tela. Na tela de login, digite seu nome de usuário e senha LDAP e você deve fazer login assim como quando você usa sua conta local no pfSense.