#1 Le 26/01/2017, à 21:25
- hyperman22
[Résolu] Erreur PAM lors de l'authentification AD
Bonjour,
J'essaye pour la première fois de mettre en place une authentification AD sur un linux (et donc un ubuntu - 16.04).
J'ai essayé 2 méthodes : celle avec SSSD et celle avec Winbind. Aucune des 2 ne m'as permis de réussir... Mais je pense qu'avec Winbind, je n'en suis aps loin...
Tout semble fonctionner :
- J'arrive a recupérter des ticket kerberos
- J'arrive a intégrer la machine a l'AD
- wbinfo fonctionne
Mais lorsque je tente une vrais authentification, je me retrouve avec une erreur dans le fichier auth.log :
Jan 26 18:07:40 XXXXXXX3500 login[1246]: pam_winbind(login:auth): getting password (0x00000000)
Jan 26 18:08:02 XXXXXXX3500 login[1246]: pam_winbind(login:auth): user[color=#21a30d] 'ad-user' granted access[/color]
Jan 26 18:08:02 XXXXXXX3500 login[1246]: pam_unix(login:account): could not identify user (from getpwnam(ad-user))
Jan 26 18:08:02 XXXXXXX3500 login[1246]:[color=#a30903] User not known to the underlying authentication module[/color]
Quelqu'un sais t-il décortiquer cette erreur ?
pour info, j'ai suivi ces docs (et j'utilise donc ce paramétrage PAM) :
https://wiki.debian.org/AuthenticatingL … eDirectory
https://help.ubuntu.com/community/Activ … nbindHowto
J'ai également essayer plusieurs autres paramétrage PAM, souvent pire (perte de l'authent locale par ex), mais celle proposée me semble la plus proche de la solution, car je constate que le module winbind semble être "heureux", mais malheureusement cela ne va pas plus loin...
Merci d'avance !
Dernière modification par hyperman22 (Le 31/01/2017, à 14:30)
Hors ligne
#2 Le 26/01/2017, à 23:07
- Vobul
Re : [Résolu] Erreur PAM lors de l'authentification AD
Salut, regarde dans /etc/pam.d si t'as pas une configuration genre ça : https://www.centos.org/forums/viewtopic … 048#p41920
Et essaie de mettre "winbind use default domain = no" dans ta conf.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 27/01/2017, à 10:48
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
Merci Vobul pour ta réponse.
Concernant la solution indiqué en decommentant la ligne en question dans /etc/pam.d/su => pas mieux
Concernant ton idée de "winbind use default domain = no" => ca ne change rien non plus ( apart le fait que je doive spécifier le DOMAIN avant le nom d'utilisateur.
Dans les 2 cas, j'ai donc toujours l'erreur dans les logs :
User not known to the underlying authentication module
Hors ligne
#4 Le 30/01/2017, à 09:34
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
Si personne n'a d’idée, serait-il possible que quelqu'un partage ses fichiers de configuration d'intégration a l'AD ?
- krb5.conf
- smb.conf
- pam.d/xxx
- Autres ?
Merci d'avance !
Hors ligne
#5 Le 30/01/2017, à 10:39
- HPIR40
Re : [Résolu] Erreur PAM lors de l'authentification AD
Bonjour
qu'affiche ton PC quand tu tape la commande suivante:
pam-auth-update --force
Mes PC sont dans un domaine AD avec OPENPBIS et souvent lors de la mise à jour des paquets PAM, la config sautait et mes users ne pouvait plus se connecter.
Je lance donc cette commande et sélectionne dans les paquets gérés OPENPBIS, dans ton cas, il y a peut être le même soucis mais sur d'autres paquets installés pour ta mise sous le domaine.
Hors ligne
#6 Le 30/01/2017, à 11:28
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
Merci. Mais j'ai déjà essayé de modifier la conf PAM par la commande pam-auth-update --force, sans succès... J'en arrive encore aux même soucis (et même message d'erreur) que via les modifications manuelles...
Hors ligne
#7 Le 30/01/2017, à 11:34
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
Je ne connais pas PBIS => je vais peut-être tenter d'utiliser cette méthode ?
Hors ligne
#8 Le 30/01/2017, à 14:11
- maxire
Re : [Résolu] Erreur PAM lors de l'authentification AD
Salut,
Quelqu'un sais t-il décortiquer cette erreur ?
Jan 26 18:07:40 XXXXXXX3500 login[1246]: pam_winbind(login:auth): getting password (0x00000000) Jan 26 18:08:02 XXXXXXX3500 login[1246]: pam_winbind(login:auth): user[color=#21a30d] 'ad-user' granted access[/color] Jan 26 18:08:02 XXXXXXX3500 login[1246]: pam_unix(login:account): could not identify user (from getpwnam(ad-user)) Jan 26 18:08:02 XXXXXXX3500 login[1246]:[color=#a30903] User not known to the underlying authentication module[/color]
Contrôler le contenu de /etc/pam.d/login, particulièrement les lignes débutant par account, logiquement pour valider l'accès d'un utilisateur AD tu ne devrais pas utiliser le module pam_unix plutôt pam_ldap ou pam_winbind.
Tu as du rater quelque chose dans ta configuration de PAM.
Dernière modification par maxire (Le 30/01/2017, à 14:29)
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#9 Le 30/01/2017, à 14:42
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
Salut, et merci pour la réponse.
Je n'ai pas accès a la machine pour le moment, donc difficile de coller le contenu des fichiers PAM.
Par contre, le fait que j'ai encore le module pam_unix, est normal selon moi si on souhaite continuer a se loguer avec un compte local... j'aurai mal compris ? Mais sur le fond, je suis d'accord : le soucis provient probablement de la configuration PAM...
Hors ligne
#10 Le 30/01/2017, à 15:00
- maxire
Re : [Résolu] Erreur PAM lors de l'authentification AD
Bien sûr que tu dois conserver pam_unix pour continuer à autoriser l'accès aux comptes locaux mais il ne validera jamais l'accès aux comptes AD, donc tu as mal paramétré PAM sans doute dans l'ordre d'exécution des modules PAM.
Je suppose qu'il manque une ligne «account requisite (ou sufficient, il faut voir) pam_winbind.so» avant une ligne «account required pam_unix.so ...».
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#11 Le 30/01/2017, à 16:18
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
ok, donc si je comprend bien, et si je suis logique je devrais avoir :
1 - winbind en sufficient ==> comme ca on s'arrete dès que l'authent AD reussi
2 - Unix en sufficient (ou requisite) ==> On fait l'authent local uniquement si l'authent AD echoue
Je regarde ça dès que je peux aller sur la machine.
Hors ligne
#12 Le 30/01/2017, à 17:12
- maxire
Re : [Résolu] Erreur PAM lors de l'authentification AD
Bé oui, c'est le principe à suivre.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#13 Le 30/01/2017, à 17:37
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
J'ai fait quelques essais complémentaire, et j'ai l'impression d'avoir fait un pas...
Dans les logs :
Jan 30 17:16:45 xx login[14448]: pam_winbind(login:auth): getting password (0x00000000)
Jan 30 17:16:47 xx login[14448]: pam_winbind(login:auth): user 'ad-user' granted access
Jan 30 17:16:47 xx login[14448]: pam_unix(login:account): could not identify user (from getpwnam(ad-user))
Jan 30 17:16:48 xx login[14448]: pam_mail(login:session): user unknown
Jan 30 17:16:48 xx login[14448]: pam_loginuid(login:session): error: login user-name 'ad-user' does not exist
Jan 30 17:16:48 xx login[14448]: pam_unix(login:session): session opened for user ad-user by LOGIN(uid=0)
Jan 30 17:16:48 xx login[14448]: User not known to the underlying authentication module
Dans le fichier login, je trouve cette ligne qui semble poser problème lors de l'authent :
# Sets the loginuid process attribute
session required pam_loginuid.so
cat /etc/pam.d/common-account | grep -v "#"
account sufficient pam_winbind.so
account sufficient pam_unix.so
account required pam_permit.so
cat /etc/pam.d/common-auth | grep -v "#"
auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok_secure use_first_pass
auth required pam_deny.so
cat /etc/pam.d/common-session | grep -v "#"
session sufficient pam_unix.so
#session required pam_mkhomedir.so umask=0022 skel=/etc/skel
cat /etc/pam.d/common-password | grep -v "#"
password [success=2 default=ignore] pam_unix.so obscure sha512
password [success=1 default=ignore] pam_winbind.so use_authtok try_first_pass
password required pam_permit.so
password [success=2 default=ignore] pam_unix.so obscure sha512
password required pam_permit.so
Quelqu'un vois qqch d'anormal ?
Merci !
Hors ligne
#14 Le 30/01/2017, à 20:51
- maxire
Re : [Résolu] Erreur PAM lors de l'authentification AD
Ce serait mieux de donner l'intégralité de /etc/pam.d/login.
account:pam_winbind n'est toujours pas exécuté donc cela ne peut pas marcher.
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#15 Le 31/01/2017, à 09:25
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
Bon, ba j'ai du casser qqch, ce matin, impossible de me loguer sur la machine... Même en restaurant totalement les fichiers PAM via boot en single mode... Bref j'ai réinstaller, et je vais détailler ma procédure ici...
Hors ligne
#16 Le 31/01/2017, à 14:30
- hyperman22
Re : [Résolu] Erreur PAM lors de l'authentification AD
Bon, ba finalement, tout marche désormais... Je soupçonne des bagots au niveau réseau, qui rende le système "instable" au niveau de l'authentification... J'ai finalement pris un autre accès réseau, et la plus de soucis...
Je vais quand même donner ma conf, si ça peu servir a quelqu'un (après un ubuntu 16.04 fraichement installé) :
Installation des packages necessaire pour la suite et mise a jour système :
$ sudo apt-get install winbind samba krb5-user libpam-winbind libnss-winbind libpam-krb5
$ sudo apt-get install ssh ntp
$ sudo apt-get update
$ sudo apt-get upgrade
Petite sauvegarde :
$ sudo cp /etc/krb5.conf /etc/krb5.conf.ori
Config NTP (juste modifier la partie "pool") :
$ sudo cat /etc/ntp.conf | grep "pool" | grep -v "#"
pool ad.test.fr iburst
Mise a jour fichier hosts (necessaire pour kerberos)
$ sudo cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu.test.fr ubuntu
Le fichier krb5.conf
$ cat /etc/krb5.conf | grep -v "#"
[libdefaults]
default_realm = AD.TEST.FR
ticket_lifetime = 24000
clock-skew = 300
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
AD.TEST.FR = {
kdc = ad.test.fr
admin_server = ad.test.fr
default_domain = AD.TEST.FR
}
Test de recupération d'un ticket :
$ sudo kinit ad-user
Password for ad-user@AD.TEST.FR:
$ sudo klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: ad-user@AD.TEST.FR
Valid starting Expires Service principal
31/01/2017 10:22:10 31/01/2017 17:01:52 krbtgt/AD.TEST.FR@AD.TEST.FR
Conf smb.conf :
$ cat /etc/samba/smb.conf
[global]
security = ads
realm = AD.TEST.FR
password server = ad.test.fr
workgroup = AD
# winbind separator = +
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = no
winbind enum groups = no
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
domain master = no
local master = no
preferred master = no
os level = 0
Redémarrage des services :
$ sudo /etc/init.d/winbind stop ; sudo /etc/init.d/samba restart; sudo /etc/init.d/winbind start
[ ok ] Stopping winbind (via systemctl): winbind.service.
[ ok ] Restarting nmbd (via systemctl): nmbd.service.
[ ok ] Restarting smbd (via systemctl): smbd.service.
[ ok ] Restarting samba-ad-dc (via systemctl): samba-ad-dc.service.
[ ok ] Starting winbind (via systemctl): winbind.service.
On joint le domaine (l'erreur DNS a peu d'importance dans mon cas, car j'ai une infra DNS qui n'est pas géré par l'AD) :
$ sudo net ads join -U ad-user createcomputer="GROUPE/SOUS-GROUPE"
Enter ad-user's password:
Using short domain name -- AD
Joined 'UBUNTU' to dns domain 'ad.test.fr'
DNS Update for ubuntu.test.fr failed: ERROR_DNS_GSS_ERROR
DNS update failed: NT_STATUS_UNSUCCESSFUL
Le fichier nsswitch.conf :
$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Sauvegarde de la conf PAM :
sudo cp -r /etc/pam.d /etc/pam.d.ori
Contenu des nouveau fichier PAM (seul auth, account, et session ont été modifié)
$ cat common-auth | grep -v "#"
auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok_secure use_first_pass
auth required pam_deny.so
$ cat common-account | grep -v "#"
account sufficient pam_winbind.so
account required pam_unix.so
$ cat common-session | grep -v "#"
session optional pam_umask.so
session required pam_unix.so
session required pam_mkhomedir.so umask=0022 skel=/etc/skel
$ cat common-password | grep -v "#"
password [success=3 default=ignore] pam_krb5.so minimum_uid=1000
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password [success=1 default=ignore] pam_winbind.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
password optional pam_gnome_keyring.so
Modification de la conf lightdm pour permettre de se loguer avec un compte AD :
$ cat /etc/lightdm/lightdm.conf.d/50-lightdm.conf
[Seat:*]
greeter-hide-users=true
greeter-show-manual-login=true
allow-guest=false
allow-user-switching=false
Puis redmarrage du service :
sudo service lightdm restart
Ajout de la ligne suivante dans /etc/sudoers
%groupe-des-admin ALL=(ALL:ALL) ALL
Merci a tous pour votre aide. Mais je pense que j'aurais d'autre questions un peu plus tard => j'ouvrirais un nouveau POST
Hors ligne