Criando grupos locais Unix para usuários do AD

3

Estou implementando a autenticação LDAP contra o Samba 4 AD para login de administradores em nossos servidores Linux.

Configurei com êxito o PAM com libpam-ldapd e libnss_ldapd com a criação automática dos diretórios iniciais dos usuários. Eu estou enfrentando agora o problema que os usuários têm mapeado samba gidNumber como grupo primário que não existe localmente de qualquer maneira. A situação atual é o diretório /home se parece com isso (observe o grupo primário de usuários):

drwxr-xr-x 2 user 1005 4096 Okt 13 16:01 user/

O problema com o sssd é que requer uma associação de domínio ao Samba 4 AD, o que não é o caso agora e não será de todo. Como temos várias centenas dessas VMs Ganeti, e a maioria delas é muito crítica!

O login de administrador para essas máquinas é permitido para administradores (membro de um grupo específico do AD) e que tenham uma chave pública SSH assinada.

O que eu estava pedindo é renomear o grupo de acordo com o usuário e criar automaticamente esses grupos localmente. Eu li em algum lugar, deve ser possível renomeá-los usando wbinfo e rip map . Mas não tenho ideia de como fazer isso. Criar os grupos localmente é secundário, pois vou criar um grupo administrativo e adicioná-los todos a ele.

A questão principal é:

Como os grupos primários dos usuários podem ser renomeados de gidNumber a uid ?

Muito obrigado.

    
por Max 13.10.2017 / 11:24

1 resposta

0

Encontrei a resposta, só não encontrei tempo para postar. Aqui está um completo como implementar autenticação de senha para usuários contra o samba 4 AD:

  • instale o libnss-ldapd
  • obtenha o certificado do samba 4 AD e adicione-o à sua CA
  • update-ca-certificates
  • verifique com ldapsearch a conectividade
  • pam-auth-update e selecione os serviços que devem usar o LDAP
  • use criar casa no login, se necessário
  • abra /etc/nslcd.conf e modifique-o da seguinte forma:

    # /etc/nslcd.conf
    
    # nslcd configuration file. See nslcd.conf(5)
    # for details.
    
    # The user and group nslcd should run as.
    uid nslcd
    gid nslcd
    
    # The location at which the LDAP server(s) should be reachable.
    uri ldaps://dc.example.com:636/
    
    # The search base that will be used for all queries.
    base DC=example,DC=com
    
    # The LDAP protocol version to use.
    #ldap_version 3
    
    # The DN to bind with for normal lookups.
    #binddn nslcd
    binddn CN=binduser,CN=Users,DC=example,DC=com
    bindpw yourpassword
    
    # The DN used for password modifications by root.
    #rootpwmoddn cn=admin,dc=example,dc=com
    
    # SSL options
    #ssl start_tls
    #tls_reqcert never
    ssl on
    tls_cacertfile /etc/ssl/certs/ca.pem
    #tls_cacertfile /etc/ssl/certs/ca-certificates.crt
    
    # The search scope.
    scope sub
    
    filter passwd (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*))
    map    passwd   uid                 sAMAccountName
    map    passwd   homeDirectory       unixHomeDirectory
    map    passwd   gecos               displayName
    filter passwd (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*))
    map    shadow   uid                 sAMAccountName
    map    shadow   shadowLastChange    pwdLastSet
    filter passwd (&(objectClass=user)(!(objectClass=computer))(uidNumber=*)(unixHomeDirectory=*))
    map    group    cn                  sAMAccountName
    map    group    gidNumber           uidNumber
    map    group    memberUid           sAMAccountName
    
  • teste o login e você verá:

    user@test [Home]:~$  ll /home/
    drwxr-xr-x  3 user user 4096 May 20 01:41 user/
    user@test [Home]:~$
    user@test [Home]:~$
    user@test [Home]:~$  ll /home/user/
    total 28
    drwxr-xr-x 3 user user 4096 May 20 01:41 ./
    drwxr-xr-x 4 root root 4096 May 19 23:35 ../
    -rw-r--r-- 1 user user  220 May 19 23:35 .bash_logout
    -rw-r--r-- 1 user user 3771 May 19 23:35 .bashrc
    drwx------ 2 user user 4096 May 19 23:35 .cache/
    -rw-r--r-- 1 user user  655 May 19 23:35 .profile
    -rw------- 1 user user  568 May 20 01:41 .viminfo
    

Para a autenticação de chave pública, você copia as chaves públicas de todos os usuários para todos os servidores e para todos os novos usuários, o que é difícil de alcançar e muito propenso a erros ou você apenas assina todos os usuários. chaves também, o que parece difícil também. Eu criei uma CA de usuários e hospedei a CA e implantei-os em todos os servidores e assinei todas as chaves públicas de hosts com fantoche, os usuários devem ser responsáveis por assinar suas chaves, talvez colocar a CA de usuários em um aplicativo da Web e usar curl.

    
por 20.05.2018 / 02:20