samba4 nslcd lightdm e pam_mount

0

Estou preso à minha configuração e esperando ajuda.

Eu configurei um AD com o Samba4 e o nslcd como nss no servidor e nos clientes. Estou ciente de que o Samba não recomenda a execução do AD e do servidor de arquivos na mesma máquina, mas com uma configuração de 20 usuários e um orçamento muito limitado, nada mais é possível. Os clientes estão executando o Ubuntu 12.04 e o 14.04. Eu quero que os usuários sejam capazes de autenticar contra o Samba4 AD e de automontar seus diretórios pessoais, bem como o (s) diretório (s) compartilhado (s).

parece haver 2 problemas separados, embora possam estar conectados. quando eu estou logado como root e su domainuser tudo funciona: o home dir, bem como o share é montado e o userwitch é completado

quando eu estou logado como um usuário local e su domainuser o switch falha e auth.log revela o seguinte:

pam_ldap: ldap_simple_bind Can't contact LDAP server
pam_authenticate: Authentication failure

o ldapserver pode ser acessado com as configurações em /etc/pam_ldap.conf:

ldapsearch -H ldap://sturavm -D "cn=ldap-connect,cn=Users,dc=ad,dc=stura" -w secret

# cat /etc/pam_ldap.conf
uri ldap://192.168.138.6
base dc=ad,dc=stura
binddn cn=ldap-connect,cn=Users,dc=ad,dc=stura
bindpw secret
pam_login_attribute sAMAccountName
ssl no

o segundo problema é que lightdm passa lightdm como nome de usuário e não o nome de usuário fornecido:

lightdm: (pam_mount.c:365): pam_mount 2.14: entering auth stage
lightdm: (pam_mount.c:173): conv->conv(...): Conversation error
lightdm: pam_unix(lightdm:auth): auth could not identify password for [domainuser]
lightdm: gkr-pam: no password is available for user
lightdm: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
lightdm: PAM adding faulty module: pam_kwallet.so
lightdm: PAM unable to dlopen(pam_foreground.so): /lib/security/pam_foreground.so: cannot open shared object file: No such file or directory
lightdm: PAM adding faulty module: pam_foreground.so
lightdm: (pam_mount.c:568): pam_mount 2.14: entering session stage
lightdm: (pam_mount.c:477): warning: could not obtain password interactively either
lightdm: (mount.c:786): Could not get realpath of /home/lightdm: No such file or directory
lightdm: (mount.c:267): Mount info: globalconf, user=lightdm <volume fstype="cifs" server="192.168.138.6" path="home" mountpoint="/home/lightdm" cipher="(null)" fskeypath="(null)" fskeycipher="(null)" fskeyhash="(null)" options="iocharset=utf8" /> fstab=0 ssh=0

algumas configurações:

#cat /etc/pam.conf    
auth      sufficient  pam_unix.so
auth      sufficient  pam_ldap.so minimum_uid=1000 use_first_pass
auth      required    pam_deny.so

account   required    pam_unix.so
account   sufficient  pam_ldap.so minimum_uid=1000
account   required    pam_permit.so

session   required    pam_unix.so
session   optional    pam_ldap.so minimum_uid=1000

password  sufficient  pam_unix.so nullok md5 shadow use_authtok
password  sufficient  pam_ldap.so minimum_uid=1000 try_first_pass
password  required    pam_deny.so 

# cat /etc/pam.d/lightdm 
#%PAM-1.0
auth    requisite       pam_nologin.so
auth    sufficient      pam_succeed_if.so user ingroup nopasswdlogin
@include common-auth
auth    optional        pam_gnome_keyring.so
auth    optional        pam_kwallet.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session required        pam_limits.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
session optional        pam_gnome_keyring.so auto_start
session optional        pam_kwallet.so auto_start
session required        pam_env.so readenv=1
session required        pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/locale
@include common-password

# cat /etc/pam.d/common-auth
auth required   pam_mount.so
auth sufficient pam_unix.so nullok_secure use_first_pass
auth required   pam_group.so use_first_pass 
auth sufficient pam_ldap.so use_first_pass
auth required   pam_deny.so

# cat /etc/lightdm/lightdm.conf 
[SeatDefaults]
user-session=ubuntu
greeter-session=unity-greeter
greeter-show-manual-login=true
allow-guest=true
    
por Klaus Steinhauer 30.11.2015 / 14:41

1 resposta

0

Acontece que não foi uma resposta tão difícil:

Eu tive que ter certeza que os clientes tinham libpam-ldap d e libnis-ldap d instalados. alguns pam-auth-update --force limparam toda a bagunça do pam sem que eu precisasse fazer nada.

Estranhamente, o pacote ldap-auth-config parece estar interferindo também. um autoremove do apt-get resolveu isso na maioria das máquinas.

Eu provavelmente farei um writeup da minha configuração em breve para que as pessoas não tenham que confiar na documentação do samba4.

    
por Klaus Steinhauer 01.12.2015 / 10:01