Série RHCSA configurando a autenticação baseada em LDAP em RHEL 7 - Parte 14

Série RHCSA configurando a autenticação baseada em LDAP em RHEL 7 - Parte 14

Começaremos este artigo descrevendo alguns LDAP básicos (o que é, onde é usado e por quê) e mostrar como configurar um servidor LDAP e configurar um cliente para autenticar contra ele usando Red Hat Enterprise Linux 7 sistemas.

Série RHCSA: Setup LDAP Server e autenticação do cliente - Parte 14

Como veremos, existem vários outros cenários de aplicação possíveis, mas neste guia nos concentraremos inteiramente Baseado em LDAP autenticação. Além disso, lembre-se de que, devido à vastidão do assunto, abordaremos apenas seu básico aqui, mas você pode consultar a documentação descrita no resumo para obter detalhes mais aprofundados.

Pelo mesmo motivo, você observará que eu decidi deixar de fora várias referências às páginas do homem das ferramentas LDAP em prol da brevidade, mas as explicações correspondentes estão à distância de uma ponta dos dedos (Man Ldapadd, por exemplo).

Dito isto, vamos começar.

Nosso ambiente de teste

Nosso ambiente de teste consiste em dois RHEL 7 caixas:

Servidor: 192.168.0.18. Fqdn: rhel7.MyDomain.com Cliente: 192.168.0.20. Fqdn: ldapClient.MyDomain.com 

Se desejar, você pode usar a máquina instalada na Parte 12: Automatize as instalações do RHEL 7 usando o Kickstart como cliente.

O que é LDAP?

LDAP apoia Protocolo de acesso ao diretório leve e consiste em um conjunto de protocolos que permitem que um cliente acesse, em uma rede, informações armazenadas centralmente (como um diretório de conchas de login, caminhos absolutos para diretórios domésticos e outras informações típicas do usuário do sistema, por exemplo) que devem ser acessíveis De diferentes lugares ou disponíveis a um grande número de usuários finais (outro exemplo seria um diretório de endereços domésticos e números de telefone de todos os funcionários de uma empresa).

Manter essas (e mais) informações centralmente significa que elas podem ser mais facilmente mantidas e acessadas por todos que receberam permissões para usá -las.

O diagrama a seguir oferece um diagrama simplificado de LDAP, e é descrito abaixo em mais detalhes:

Diagrama de LDAP

Explicação do diagrama acima em detalhes.

  1. Um entrada Em um diretório LDAP, representa uma única unidade ou informação e é identificada exclusivamente pelo que é chamado de nome distinto.
  2. Um atributo é uma informação associada a uma entrada (por exemplo, endereços, números de telefone de contato disponíveis e endereços de email).
  3. Cada atributo é atribuído um ou mais valores consistindo em uma lista separada por espaço. Um valor único por entrada é chamado de nome distinto relativo.

Dito isto, vamos prosseguir com as instalações do servidor e do cliente.

Instalando e configurando um servidor e cliente LDAP

Em RHEL 7, LDAP é implementado por Openldap. Para instalar o servidor e o cliente, use os seguintes comandos, respectivamente:

# yum update && yum install openldap OpenldAp-clients OpenldAp-servers # yum update && yum install OpenldAp Openldap-clients nss-pam-ldapd 

Uma vez concluído a instalação, há algumas coisas que olhamos. As etapas a seguir devem ser executadas sozinhas no servidor, a menos que explicitamente observado:

1. Certificar-se Selinux não atrapalha, permitindo o seguinte booleanos persistentemente, tanto no servidor quanto no cliente:

# setSeBool -p allow_ypBind = 0 authlogin_nsswitch_use_ldap = 0 

Onde allow_ypBind é necessário para a autenticação baseada em LDAP e authlogin_nsswitch_use_ldap pode ser necessário por alguns aplicativos.

2. Ativar e iniciar o serviço:

# SystemCtl Ativar Slapd.Serviço # SystemCtl Start Slapd.serviço 

Lembre -se de que você também pode desativar, reiniciar ou interromper o serviço com o SystemCTL também:

# SystemCtl Desativar Slapd.Serviço # SystemCtl Reiniciar Slapd.Serviço # SystemCtl Stop Slapd.serviço 

3. Desde o Slapd O serviço é executado como o usuário LDAP (que você pode verificar com ps -e -o pid, uname, comm | Grep Slapd), esse usuário deve possuir o /var/lib/ldap Diretório para que o servidor seja capaz de modificar as entradas criadas por ferramentas administrativas que só podem ser executadas como root (mais sobre isso em um minuto).

Antes de alterar a propriedade deste diretório recursivamente, copie o arquivo de configuração do banco de dados de amostra para Slapd afim disso:

# cp/usr/share/openldap-servers/db_config.exemplo/var/lib/ldap/db_config # chown -r ldap: ldap/var/lib/ldap 

4. Configure um usuário administrativo do OpenLDAP e atribua uma senha:

# slappasswd 

Conforme mostrado na próxima imagem:

Definir senha de administrador LDAP

e crie um Ldif arquivo (LDAPROOTPASSWD.ldif) com o seguinte conteúdo:

dn: olcdatabase = 0 config, cn = config chanGeType: modify add: olcrootpw olcrootpw: ssha senha 

onde:

  1. SENHA é a corda hashed obtida anteriormente.
  2. cn = config Indica opções de configuração global.
  3. olcdatabase indica um nome específico da instância do banco de dados e pode ser normalmente encontrado dentro /etc/openldap/slapd.d/cn = config.

Referindo -se ao fundo teórico fornecido anteriormente, o LDAPROOTPASSWD.ldif O arquivo adicionará uma entrada ao diretório LDAP. Nessa entrada, cada linha representa um par de atributos: Value (onde DN, ChangeType, Add e Olcrootpw são os atributos e as cordas à direita de cada cólon são seus valores correspondentes).

Você pode ter isso em mente à medida que prosseguirmos e observe que estamos usando os mesmos nomes comuns (cn =) Durante o restante deste artigo, onde cada etapa depende do anterior.

5. Agora, adicione a entrada LDAP correspondente especificando o Uri referindo -se ao servidor LDAP, onde apenas os campos de protocolo/host/porta são permitidos.

# ldapadd -h ldapi: // -f ldaproootpasswd.ldif 

A saída deve ser semelhante a:

Configuração LDAP

e importar algumas definições básicas de LDAP do /etc/openldap/esquema diretório:

# para def em cosseno.ldif nis.Ldif Inetorgperson.ldif; do ldapadd -h ldapi: /// -f/etc/openldap/schema/$ def; feito 
Definições LDAP

6. Faça com que o LDAP use seu domínio em seu banco de dados.

Criar outro Ldif arquivo, que chamaremos LdapDomain.ldif, Com o conteúdo a seguir, substituindo seu domínio (no componente de domínio dc =) e senha conforme apropriado:

DN: OLCDATABASE = 1 Monitor, CN = Config ChanGetype: Modify Substitua: olcaccess olcaccess: 0 para * por dn.base = "gidNumber = 0+uidNumber = 0, cn = peercred, cn = externo, cn = auth" lido por dn.base = "cn = gerente,dc = myDomain,dc = com "leia por * nenhum dn: olcdatabase = 2 hdb, cn = config changeType: modify reply: olcSuffix olcSuffix: dc = myDomain,dc = com dn: olcdatabase = 2 hdb, cn = config changetype: modificar substituir: olcrootdn olcrootdn: cn = gerente,dc = myDomain,dc = com dn: olcdatabase = 2 hdb, cn = config chanGeType: modificar add: olcrootpw olcrrootpw: ssha senha dn: olcdatabase = 2 hdb, cn = config changetype: para attrs = userpassword, shadowlastChange por dn = "cn = gerente,dc = myDomain,dc = com "Escreva por Auth Anonymous por Self Write por * Nenhum Olcacccess: 1 para DN.base = "" por * leia olcaccess: 2 para * por dn = "cn = gerente, dc = myDomain, dc = com" escreva por * lida 

Em seguida, carregue o seguinte:

# ldapmodify -h ldapi: /// -f ldapDomain.ldif 
Configuração do domínio LDAP

7. Agora é hora de adicionar algumas entradas ao nosso diretório LDAP. Atributos e valores são separados por um cólon (:) No seguinte arquivo, que vamos citar BaseldapDomain.ldif:

dn: dc = myDomain, dc = com objectclass: top objectclass: dcobject objectclass: organização o: mydomain com dc: mydomain dn: cn = gerente, dc = mydomain, dc = com objectclass: organizationalRole cn: gerente Descrição: gerente de diretório dn: ou = pessoas, dc = myDomain, dc = com objectclass: organizationalunit ou: pessoas dn: ou = grupo, dc = myDomain, dc = com objectclass: organizationalunit ou: grupo 

Adicione as entradas ao diretório LDAP:

# ldapadd -x -d cn = gerente, dc = myDomain, dc = com -w -f baseldapDomain.ldif 
Adicione atributos e valores do domínio LDAP

8. Crie um usuário LDAP chamado LDAPUSER (Adduser Ldapuser), em seguida, crie as definições para um grupo LDAP em LDAPGROUP.ldif.

# adduser ldapuser # vi ldapgroup.ldif 

Adicione o seguinte conteúdo.

dn: cn = gerente, ou = grupo, dc = myDomain, dc = com objectclass: top objectclass: posixgroup gidnumber: 1004 

onde GidNumber é o GID em /etc/grupo para ldapuser) e carregá -lo:

# ldapadd -x -w -d "cn = gerente, dc = myDomain, dc = com" -f ldapgroup.ldif 

9. Adicione um arquivo LDIF com as definições para o usuário ldapuser (LDAPUSER.ldif):

dn: uid = ldapUser, ou = pessoas, dc = myDomain, dc = com objectclass: top objectClass: conta objectClass: posixAccount ObjectClass: ShadowAccount CN: LDAPUSER UID: LDAPUSER UIDNUMBER: 1004 GIDNUMBER: 1004 Ssha fin0yqzbdudi0fpqq9uudwmjzqy28s3m logInshell: /bin /bash gecos: ldapuser shadowllastchange: 0 shadowmax: 0 shadowwarning: 0 

e carregar:

# ldapadd -x -d cn = gerente, dc = myDomain, dc = com -w -f ldapuser.ldif 
Configuração do usuário LDAP

Da mesma forma, você pode excluir a entrada do usuário que acabou de criar:

# ldapDelete -x -w -d cn = gerente, dc = myDomain, dc = com "uid = ldapuser, ou = pessoas, dc = myDomain, dc = com" 

10. Permita a comunicação através do firewall:

# firewall-cmd --add-service = ldap 

11. Por último, mas não menos importante, permita que o cliente se autentique usando o LDAP.

Para nos ajudar nesta etapa final, usaremos o AuthConfig Utilitário (uma interface para configurar recursos de autenticação do sistema).

Usando o comando a seguir, o diretório inicial do usuário solicitado é criado se não existir após a autenticação contra o servidor LDAP ter sucesso:

# authconfig --enableldap --enableldapauth --ldapsserver = rhel7.MyDomain.com --ldapBasedn = "dc = myDomain, dc = com" --enablemkhomedir -update 
Configuração do cliente LDAP

Resumo

Neste artigo, explicamos como configurar a autenticação básica contra um servidor LDAP. Para configurar ainda mais a configuração descrita no presente guia, consulte a configuração do Capítulo 13 - LDAP no Guia do Administrador do Sistema RHEL 7, prestando atenção especial às configurações de segurança usando TLS.

Sinta -se à vontade para deixar qualquer dúvida que você possa ter usando o formulário de comentário abaixo.