Rede SWL (V): Debian Wheezy e ClearOS. Autenticação SSSD contra LDAP nativo.

Olá amigos!. Por favor, repito, leia antes «Introdução a uma Rede com Software Livre (I): Apresentação do ClearOS»E baixe o pacote de imagens de instalação Step-by-Step do ClearOS (1,1 mega), para saber do que estamos falando. Sem essa leitura será difícil nos acompanhar.

Daemon de serviço de segurança do sistema

O programa SSSD o Daemon para o serviço de segurança do sistema, é um projeto de Fedora, que nasceu de outro projeto -também do Fedora- chamado IPA grátis. Segundo seus próprios criadores, uma definição curta e traduzida livremente seria:

SSSD é um serviço que fornece acesso a diferentes provedores de identidade e autenticação. Ele pode ser configurado para um domínio LDAP nativo (provedor de identidade baseado em LDAP com autenticação LDAP) ou para um provedor de identidade LDAP com autenticação Kerberos. SSSD fornece a interface para o sistema por meio de NSS y PAMe um back-end inserível para conectar a origens de contas múltiplas e diferentes.

Acreditamos estar diante de uma solução mais abrangente e robusta para a identificação e autenticação de usuários registrados em um OpenLDAP, do que as abordadas nos artigos anteriores, aspecto que fica ao critério de todos e de suas próprias experiências.

A solução proposta neste artigo é a mais recomendada para computadores móveis e laptops, pois nos permite trabalhar desconectados, já que o SSSD armazena as credenciais no computador local.

Rede de exemplo

  • Controlador de domínio, DNS, DHCP: ClearOS Enterprise 5.2sp1.
  • Nome do controlador: centos
  • Nome do domínio: friends.cu
  • IP do controlador: 10.10.10.60
  • ---------------
  • Versão Debian: Chiado.
  • Nome da equipe: debian7.
  • Direção IP: Usando DHCP

Verificamos se o servidor LDAP está funcionando

Nós modificamos o arquivo /etc/ldap/ldap.conf e instale o pacote LDAP-utils:

: ~ # nano /etc/ldap/ldap.conf
[----] BASE dc = amigos, dc = cu URI ldap: //centos.amigos.cu [----]
: ~ # aptitude install ldap-utils: ~ $ ldapsearch -x -b 'dc = amigos, dc = cu' '(objectclass = *)': ~ $ ldapsearch -x -b dc = amigos, dc = cu 'uid = passos largos
: ~ $ ldapsearch -x -b dc = amigos, dc = cu 'uid = legolas' cn gidNumber

Com os dois últimos comandos, verificamos a disponibilidade do servidor OpenLDAP do nosso ClearOS. Vamos dar uma boa olhada nas saídas dos comandos anteriores.

Importante: também verificamos se o Serviço de Identificação em nosso servidor OpenLDAP funciona corretamente.

network-swl-04-users

Nós instalamos o pacote sssd

Também é recomendado instalar o pacote dedo para tornar os cheques mais bebíveis do que o ldapsearch:

: ~ # aptitude install sssd finger

Após a conclusão da instalação, o serviço ssd não começa devido ao arquivo ausente /etc/sssd/sssd.conf. A saída da instalação reflete isso. Portanto, devemos criar esse arquivo e deixá-lo com o próximo conteúdo mínimo:

: ~ # nano /etc/sssd/sssd.conf
[sssd] config_file_version = 2 services = nss, pam # SSSD não será iniciado se você não configurar nenhum domínio. # Adicione novas configurações de domínio como [domínio / ] e # adicione a lista de domínios (na ordem em que você deseja que sejam # consultados) ao atributo "domínios" abaixo e descomente-o. domínios = amigos.cu [nss] filter_groups = root filter_users = root reconnection_retries = 3 [pam] reconnection_retries = 3 # domínio LDAP [domain / amigos.cu] id_provider = ldap
auth_provider=ldap
chpass_provider = ldap # ldap_schema pode ser definido como "rfc2307", que armazena os nomes dos membros do grupo no atributo # "memberuid", ou como "rfc2307bis", que armazena DNs dos membros do grupo # no atributo "membro". Se você não souber esse valor, pergunte ao administrador do LDAP #. # funciona com ClearOS ldap_schema = rfc2307
ldap_uri = ldap: //centos.amigos.cu
ldap_search_base = dc = friends, dc = cu # Observe que a ativação da enumeração terá um impacto moderado no desempenho. # Consequentemente, o valor padrão para enumeração é FALSE. # Consulte a página do manual sssd.conf para obter detalhes completos. enumerate = false # Permitir logins offline armazenando localmente hashes de senha (padrão: false). cache_credentials = true
ldap_tls_reqcert = permitir
ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt

Depois de criar o arquivo, atribuímos as permissões correspondentes e reiniciamos o serviço:

: ~ # chmod 0600 /etc/sssd/sssd.conf
: ~ # service sssd restart

Se quisermos enriquecer o conteúdo do arquivo anterior, recomendamos executar cara sssd.conf e / ou consulte a documentação existente na Internet, começando pelos links no início da postagem. Consulte também homem sssd-ldap. O pacote ssd inclui um exemplo em /usr/share/doc/sssd/examples/sssd-example.conf, que pode ser usado para autenticação em um Microsoft Active Directory.

Agora podemos usar os comandos mais bebíveis dedo y getent:

: ~ $ passos de dedo
Login: strides Nome: Strides El Rey Diretório: / home / strides Shell: / bin / bash Nunca conectado. Sem correio. Sem plano.

: ~ $ sudo getent passwd legolas
legolas: *: 1004: 63000: Legolas, o elfo: / home / legolas: / bin / bash

Ainda não podemos autenticar como um usuário do servidor LDAP. Antes devemos modificar o arquivo /etc/pam.d/common-session, para que a pasta do usuário seja criada automaticamente ao iniciar sua sessão, se ela não existir, e reinicie o sistema:

[----]
sessão necessária pam_mkhomedir.so skel = / etc / skel / umask = 0022

### A linha acima deve ser incluída ANTES
# aqui estão os módulos por pacote (o bloco "Primário") [----]

Reiniciamos nosso Wheezy:

: ~ # reinicializar

Depois de fazer o login, desconecte a rede usando o Connection Manager e faça logout e login novamente. Nada mais rápido. Executar em um terminal ifconfig e eles verão que o eth0 não está configurado de forma alguma.

Ative a rede. Saia e faça login novamente. Verifique novamente com ifconfig.

Claro, para trabalhar offline, é necessário fazer o login pelo menos uma vez enquanto o OpenLDAP estiver online, para que as credenciais sejam salvas em nosso computador.

Não nos esqueçamos de tornar o usuário externo cadastrado no OpenLDAP membro dos grupos necessários, sempre atento ao usuário criado durante a instalação.

Nota:

Declare opção ldap_tls_reqcert = nunca, no arquivo /etc/sssd/sssd.conf, constitui um risco de segurança, conforme indicado na página SSSD - FAQ. O valor padrão é "demanda«. Vejo homem sssd-ldap. No entanto, no capítulo 8.2.5 Configurando Domínios Na documentação do Fedora, afirma-se o seguinte:

O SSSD não oferece suporte à autenticação em um canal não criptografado. Consequentemente, se você deseja autenticar em um servidor LDAP, TLS/SSL or LDAPS É necessário.

SSSD ele não oferece suporte à autenticação em um canal não criptografado. Portanto, se você deseja autenticar em um servidor LDAP, será necessário TLS / SLL o LDAP.

Nós pessoalmente pensamos que a solução abordou é suficiente para uma LAN corporativa, do ponto de vista da segurança. Por meio da WWW Village, recomendamos a implementação de um canal criptografado usando TLS ou «Camada de segurança de transporte », entre o computador cliente e o servidor.

Tentamos alcançá-lo a partir da geração correta de certificados autoassinados ou «Autoassinado “No servidor ClearOS, mas não podíamos. Na verdade, é uma questão pendente. Se algum leitor souber como fazer, seja bem-vindo para explicar!

debian7.amigos.cu


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   eliotime3000 dito

    Excelente.

    1.    federico dito

      Saudações ElioTime3000 e obrigado por comentar !!!

    2.    federico dito

      Saudações eliotime3000 e obrigado pelos elogios pelo artigo !!!

  2.   Kurayi dito

    Excelente! Quero estender os meus enormes parabéns ao autor da publicação por compartilhar seu vasto conhecimento e ao blog por permitir sua publicação.

    Obrigado!

    1.    federico dito

      Muito obrigado pelos elogios e comentários !!! Força que você me dá para continuar compartilhando conhecimento com a comunidade, na qual todos aprendemos.

  3.   fenobarbital dito

    Bom artigo! Observe que, em relação ao uso de certificados, ao gerar o certificado, você deve adicionar à configuração ldap (cn = config):

    olcLocalSSF: 71
    olcTLSCACertificateFile: / path / to / ca / ​​cert
    olcTLSCertificateFile: / path / to / public / cert
    olcTLSCertificateKeyFile: / path / to / private / key
    olcTLSVerifyClient: tente
    olcTLSCipherSuite: + RSA: + AES-256-CBC: + SHA1

    Com isso (e gerando os certificados) você terá suporte SSL.

    Saudações!

    1.    federico dito

      Obrigado pela sua contribuição !!! No entanto, publico 7 artigos sobre OpenLDAP em:
      http://humanos.uci.cu/2014/01/servicio-de-directorio-con-ldap-introduccion/
      https://blog.desdelinux.net/ldap-introduccion/
      Neles, enfatizo o uso de Start TLS before SSL, que é recomendado por openldap.org. Saudações @phenobarbital, e muito obrigado por comentar.
      Meu e-mail é federico@dch.ch.gob.cu, caso queira trocar mais. O acesso à Internet é muito lento para mim.

    2.    fenobarbital dito

      Para o TLS a configuração é a mesma, lembrando que no SSL o transporte é transparente sobre um canal criptografado, enquanto no TLS uma criptografia bidirecional é negociada para o transporte de dados; com TLS, o handshake pode ser negociado na mesma porta (389), enquanto com SSL a negociação é feita em uma porta alternativa.
      Altere o seguinte:
      olcLocalSSF: 128
      olcTLSVerifyClient: permitir
      olcTLSCipherSuite: NORMAL
      (se você é paranóico sobre a segurança que usa:
      olcTLSCipherSuite: SECURE256:!AES-128-CBC:!ARCFOUR-128:!CAMELLIA-128-CBC:!3DES-CBC:!CAMELLIA-128-CBC)

      e reinicie, você verá mais tarde com:
      gnutls-cli-debug -p 636 ldap.ipm.org.gt

      Resolvendo 'ldap.ipm.org.gt'…
      Verificando o suporte SSL 3.0 ... sim
      Verificando se% COMPAT é necessário ... não
      Verificando o suporte TLS 1.0 ... sim
      Verificando o suporte TLS 1.1 ... sim
      Verificando fallback de TLS 1.1 para ... N / A
      Verificando o suporte TLS 1.2 ... sim
      Verificando o suporte de renegociação segura ... sim
      Verificando o suporte para renegociação segura (SCSV) ... sim

      Com o qual o suporte TLS também está ativado, você usa 389 (ou 636) para TLS e 636 (ldaps) para SSL; eles são completamente independentes um do outro e você não precisa desabilitar um para usar o outro.

      Saudações!