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.