Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#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

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,

hyperman22 a écrit :

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 + Debian Stretch/Gnome sur portable -- Archlinux/Mate 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 + Debian Stretch/Gnome sur portable -- Archlinux/Mate 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 + Debian Stretch/Gnome sur portable -- Archlinux/Mate 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 + Debian Stretch/Gnome sur portable -- Archlinux/Mate 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 smile

Hors ligne