Saltar para o conteudo
Avanet

Ligar um servidor LDAP genérico ao Sophos Firewall

Com o tipo de servidor LDAP server, o Sophos Firewall autentica utilizadores de OpenLDAP, 389 Directory Server, FreeIPA, Google Secure LDAP e outros diretórios LDAP. O processo completo tem quatro partes: criar um grupo local, ligar o servidor LDAP de forma segura, ativar o servidor em Authentication > Services e verificar o início de sessão e a associação ao grupo com um utilizador real.

Para Windows Active Directory com LDAPS, importação de grupos ou AD SSO, é mais adequado Ligar o Active Directory ao Sophos Firewall. A autenticação RADIUS através do Microsoft NPS ou de um gateway MFA é explicada em Configurar um servidor RADIUS no Sophos Firewall.

Quem tiver de substituir o tipo de servidor eDirectory nativo antes do SFOS 23 encontra em Migrar o eDirectory antes do SFOS 23 o processo completo com inventário, seleção do destino, operação paralela e caminho de reversão.

Pré-requisitos

  • acesso WebAdmin ao Sophos Firewall
  • comunicação entre o firewall e o servidor LDAP, normalmente pela porta 389 para STARTTLS ou 636 para SSL/TLS
  • uma conta de bind com acesso de leitura à área necessária do diretório
  • Bind DN e Base DN, por exemplo cn=svc-sophos,ou=service,dc=example,dc=net e ou=people,dc=example,dc=net
  • os atributos de utilizador efetivamente usados, como uid, cn, mail e um atributo de grupo
  • a cadeia de confiança da CA adequada e resolução DNS funcional quando a validação do certificado está ativa

⚠️ Uma conta de bind deve ter apenas acesso de leitura à subárvore necessária. Não é usada para alterações administrativas no diretório, mas apenas para autenticar perante o servidor LDAP as consultas de utilizadores efetuadas pelo firewall.

Adicionar o servidor LDAP

Preparar o grupo LDAP local

  1. Abrir Authentication > Groups e selecionar Add.
  2. Criar um grupo com um nome inequívoco, por exemplo Utilizadores-LDAP.
  3. Definir o acesso, os limites de tempo e as restantes políticas de grupo de acordo com a utilização prevista e guardar.

Este grupo será depois utilizado como Default group. Não impede automaticamente o acesso: as políticas atribuídas ao grupo e as regras do respetivo serviço determinam o que é permitido.

A lógica geral dos grupos com um Default Group restritivo, substituições dos utilizadores, piloto e reversão encontra-se em Gerir grupos de utilizadores da Sophos Firewall em segurança; a atribuição específica de LDAP resulta depois do atributo de grupo e do esquema do diretório.

Configurar a ligação e o bind

  1. Abrir Authentication > Servers e selecionar Add.
  2. Selecionar LDAP server como Server type.
  3. Atribuir um Server name inequívoco, por exemplo LDAP-Empresa.
  4. Em Server IP/domain, introduzir o nome DNS do servidor LDAP. Com a validação do certificado ativa, deve corresponder a um nome no certificado do servidor.
  5. Utilizar Version 3, exceto se o diretório exigir outra versão. O Google Secure LDAP suporta apenas a versão 3.
  6. Para produção, selecionar SSL/TLS ou STARTTLS e a porta correspondente.
  7. Desativar Anonymous login e introduzir o Bind DN e a Password da conta de leitura.
  8. Ativar Append base DN apenas se o servidor LDAP esperar que a Base DN seja acrescentada durante o bind.
  9. Ativar Validate server certificate quando o nome, o DNS e a confiança da CA estiverem corretamente configurados. Só é necessário um Client certificate se o serviço LDAP exigir autenticação mútua por certificados.

Introduzir a base de pesquisa e os atributos

  1. Em Base DN, introduzir o ponto inicial da pesquisa de utilizadores, por exemplo ou=people,dc=example,dc=net. Get base DN pode obter a base de pesquisa disponibilizada pelo servidor.
  2. Definir Authentication attribute como o atributo de início de sessão, normalmente uid ou mail.
  3. Introduzir Display name attribute e Email address attribute de acordo com o objeto de utilizador, por exemplo cn e mail.
  4. Em Group name attribute, introduzir o atributo a partir do qual o firewall recebe as informações de grupo do utilizador. A Sophos recomenda memberOf, mas o valor correto depende do esquema do diretório.
  5. Se o diretório fornecer uma data de expiração da conta, introduzir o Expiry date attribute adequado.
  6. Executar Test connection e guardar com Save.

Segundo a Sophos, Test connection verifica a ligação e as credenciais. Só um início de sessão real permite saber se a Base DN inclui todos os utilizadores necessários e se os grupos são atribuídos corretamente.

Escolher a encriptação correta

O LDAP em texto simples transmite as credenciais sem encriptação e, no máximo, é adequado para um teste isolado. Em produção, a ligação deve ser protegida por SSL/TLS, normalmente na porta 636, ou STARTTLS, normalmente na porta 389.

É necessário distinguir duas funções dos certificados:

  • Validate server certificate verifica a identidade do servidor LDAP remoto. Server IP/domain deve corresponder a um nome DNS válido no certificado, ou seja, ao Common Name ou a um Subject Alternative Name. Se a firewall não conseguir resolver esse nome, deve ser adicionada uma entrada DNS adequada em Network > DNS > DNS host entry. Configurar e testar DNS Host Entries na Sophos Firewall explica o TTL, a pesquisa inversa e o teste do resolvedor. A CA emissora também tem de ser considerada fidedigna.
  • Client certificate identifica o firewall perante um serviço LDAP que exige autenticação mútua por certificados. Este certificado não substitui a validação do certificado do servidor.

Perante um erro TLS, corrigir primeiro o nome do servidor, a resolução DNS, a validade e a cadeia da CA. Desativar a validação do certificado do servidor não deve ser a solução predefinida.

Introduzir corretamente o Bind DN e a Base DN

A causa mais frequente de erros num novo servidor LDAP é uma sintaxe DN mal escrita ou mal interpretada.

  • Um DN vai do objeto específico até à raiz do diretório, por exemplo cn=svc-sophos,ou=service,dc=example,dc=net.
  • A Base DN começa no ponto onde deve iniciar-se a pesquisa de utilizadores. Se os utilizadores estiverem em várias unidades organizacionais, deve ficar suficientemente acima na árvore para os abranger.
  • Uma Base DN demasiado restrita não devolve utilizadores correspondentes, embora o servidor esteja acessível. Uma base de pesquisa desnecessariamente ampla pode tornar as pesquisas mais lentas e incluir objetos indesejados.
  • Append base DN acrescenta a Base DN a um Bind DN incompleto durante o bind. Se o DN já estiver completo, a opção fica normalmente desativada; o comportamento do servidor LDAP é determinante.

Ativar grupos e serviços

Group name attribute não é uma opção universal para todas as estruturas de grupos LDAP. Durante o início de sessão, o firewall lê o atributo configurado no objeto de utilizador e utiliza as informações de grupo devolvidas para a associação. A Sophos recomenda memberOf, e o Google Secure LDAP utiliza este valor. No entanto, OpenLDAP, 389-ds ou FreeIPA podem exigir outro valor, consoante o esquema, o overlay e o objeto de utilizador.

Não se deve deduzir o atributo de utilizador apenas a partir do tipo de grupo groupOfNames ou posixGroup. O que importa é aquilo que o objeto de utilizador real devolve e se o grupo correspondente está corretamente mapeado no firewall. Se o firewall não encontrar uma associação de grupo adequada, o utilizador é colocado no Default group configurado.

Em seguida, ativar o servidor:

  1. Abrir Authentication > Services.
  2. Em Firewall authentication methods, selecionar o servidor LDAP e movê-lo para a posição pretendida em Selected authentication servers. O firewall consulta vários servidores por esta ordem.
  3. Selecionar o grupo Utilizadores-LDAP criado anteriormente como Default group e clicar em Apply.
  4. Se os utilizadores precisarem de iniciar sessão no User Portal, VPN Portal, por SSL VPN, noutro serviço VPN ou como administradores, selecionar também o servidor LDAP no respetivo método de autenticação.

Configurar o Google Secure LDAP

Antes de configurar o firewall, é criado um cliente LDAP na Consola de Administração Google. São definidos os respetivos direitos de acesso, descarregado o certificado com a chave privada e geradas credenciais separadas. A palavra-passe deixa de ser apresentada depois de fechar a caixa de diálogo da Google.

O certificado de cliente da Google é importado com o respetivo certificado e chave privada em Certificates > Certificates > Add. O Sophos Firewall pode apresentá-lo como não fidedigno por ser autoassinado pela Google, mas continua a funcionar para autenticação do cliente. Esta indicação não diz respeito à validação do certificado do servidor.

Para o servidor LDAP, utilizar os seguintes valores:

  • Server IP/domain: ldap.google.com
  • Version: 3
  • Connection security: SSL/TLS
  • Port: 636
  • Anonymous login: desativado
  • Bind DN e Password: as credenciais LDAP da Google geradas
  • Append base DN: desativado
  • Client certificate: o certificado da Google importado
  • Base DN: introduzir ou obter através de Get base DN
  • Authentication attribute: UID
  • Display name attribute: CN
  • Email address attribute: mail
  • Group name attribute: memberOf
  • Expiry date attribute: expiry

mail é necessário para criar grupos LDAP da Google. Depois de guardar, aplicam-se os mesmos passos que num diretório local: definir o grupo LDAP local, ativar o servidor em Authentication > Services e testar um início de sessão real juntamente com a respetiva associação ao grupo.

Verificar a ligação e a associação aos grupos

Um teste de aceitação fiável abrange vários níveis:

  1. Test connection confirma a ligação e as credenciais de bind.
  2. Um utilizador inicia sessão no serviço previsto, por exemplo no VPN Portal ou Captive Portal.
  3. Em Authentication > Users, verificar se o utilizador e o grupo aparecem conforme esperado.
  4. Se forem utilizados vários grupos LDAP, testar pelo menos um utilizador de cada grupo relevante. Uma política ou regra de teste confirma que tanto o início de sessão como a autorização do respetivo grupo funcionam.
  5. Uma palavra-passe incorreta é rejeitada e o Log viewer apresenta um erro de autenticação compreensível.

Se o esquema não for claro, um administrador pode inspecionar o objeto de utilizador em modo só de leitura a partir de um sistema de administração Linux ou do servidor LDAP:

ldapsearch -LLL -x -H ldaps://ldap.example.net:636 \
  -D 'cn=svc-sophos,ou=service,dc=example,dc=net' -W \
  -b 'ou=people,dc=example,dc=net' \
  '(uid=max.muster)' '*' '+'

-W solicita a palavra-passe de bind de forma interativa, para que não fique guardada no histórico da shell. '*' mostra os atributos normais e '+' os atributos operacionais; se for utilizado outro atributo de início de sessão, adaptar o filtro de pesquisa em conformidade. Este comando não deve ser executado na Advanced Shell do Sophos Firewall. O importante é verificar se o objeto de utilizador devolve efetivamente os atributos e os valores de grupo esperados. A saída pode conter dados pessoais do diretório e tem de ser anonimizada antes de ser anexada a um ticket ou partilhada.

Erros comuns

  • Sem ligação: Verificar o encaminhamento, o DNS, a porta e Connection security. Em seguida, confirmar o Bind DN, a palavra-passe e Anonymous login.
  • Erro TLS ou de certificado: Verificar os nomes DNS no certificado do servidor, a resolução DNS, a validade e a cadeia da CA. Não desativar a validação do certificado do servidor como primeira medida.
  • Test connection funciona, mas o utilizador não é encontrado: A Base DN é frequentemente demasiado restrita ou Authentication attribute não corresponde ao nome de início de sessão.
  • O início de sessão funciona, mas o utilizador fica no Default group: Verificar Group name attribute no objeto de utilizador real, o mapeamento local dos grupos e a respetiva ordem. memberOf é um exemplo comum, mas não é garantido em todos os esquemas.
  • O Google Secure LDAP não efetua o bind: Verificar a versão 3, a porta 636, Anonymous login desativado, Append base DN desativado, as credenciais e o certificado de cliente da Google.
  • O servidor está configurado, mas não é utilizado: Verificar a associação, a ordem e o Default group em Authentication > Services.
  • A pesquisa é lenta ou devolve contas indesejadas: Restringir a Base DN à subárvore necessária.
  • Outro servidor de autenticação responde primeiro: Corrigir a ordem dos servidores selecionados para o serviço em causa.