7560

accessoirement, que veux-tu faire exactement ?
- que l'utilisateur s'authentifie en AD mode Kerberos pour sa session Gnome/KDE ? si oui, en mdp ou en PKCS11 ?
- que l'utilisateur ouvre un partage réseau Samba kerberisé ?
- que l'utilisateur récupère ses infos depuis l'AD mode LDAP ? (mais dans ce cas, si l'accès en lecture LDAP est lui-même kerberisé, il faut un keytab pour la machine et configurer correctement nslcd/nscd pour charger le keytab) ?

Première étape : installe un client Kerberos sur une machine, et il faut arriver à faire un kinit après avoir configuré /etc/krb5.conf.

Sinon, question bête et méchante : les machines sont-elles à l'heure ? Si tu n'as pas de ntp sur le réseau, oublie Kerberos ^^
Et quand tu utilises des services kerberisés, l'expérience m'a montré que le plus simple est de lancer strace pour voir les soucis.
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7561

flanker (./7558):
au fait, Heimdal ou MIT ? Je ne sais pas si les deux sont compatibles AD.
Bien que j'ai vu mention de ces 2 "technos" (??) sur les divers liens visités, tu me parles quand même chinois grin Je ne sais pas, moi, je chercher juste à m'authentifier à partir d'un AD 2012. Tout est possible.
Lionel Debroux (./7559):
FreeIPA, qui tire plein de dépendances dont SSSD, pour monter une CA et l'auth Kerberos + LDAP
Je peux peut-être fouiller du côté de FreeIPA alors. J'utilisais beaucoup RH/CentOS dans mon boulot d'avant, je peux à peu près transposer certaines connaissances sur Ubuntu Server.
flanker (./7560):
accessoirement, que veux-tu faire exactement ?
- que l'utilisateur s'authentifie en AD mode Kerberos pour sa session Gnome/KDE ? si oui, en mdp ou en PKCS11 ?
Merci pour ta question smile Pas de session GUI, c'est un Ubuntu Server sans autre chose que du CLI.
flanker (./7560):
- que l'utilisateur ouvre un partage réseau Samba kerberisé ?
Nope.
flanker (./7560):
- que l'utilisateur récupère ses infos depuis l'AD mode LDAP ?
Non plus (enfin sauf si c'est nécessaire à l'authentification et oui, ça l'est pour définir quel groupe AD a droit d'être sudoer, mais ça c'est bon je sais où c'est (==visudo)).
Je ne cherche qu'une chose: ne pas utiliser ni root ni le compte générique (qu'on a appelé admxxx), mais bien des comptes authentifiés pour SSH. Je suppose que je pourrais configurer ldap sur l'ad (je sais que ça marche), mais je pensais qu'utiliser des paquets qui connaissent nativement ActiveDirectory (et donc Kerberos, je dis pas de bêtise?) était une meilleure idée. Surtout que normalement, c'est "simple" à configurer ! (Là où pour ldap, il faut ne serait-ce qu'un utilisateur qui sait browser l'ad, et donc un mdp).
flanker (./7560):
Sinon, question bête et méchante : les machines sont-elles à l'heure ? Si tu n'as pas de ntp sur le réseau, oublie Kerberos ^^
Oui je me suis assuré que nos AD sont synchros avec un NTP (que j'ai installé moi-même), et la machine Ubuntu server en question est bien synchro avec le DC primaire de l'ad.
flanker (./7560):
lancer strace pour voir les soucis.
J'ai fait 2 ou 3 fois (vu sur certains articles de troubleshoot), c'est... verbeux grin J'ai pu voir une fois mention d'un fichier utile, sinon c'est que du fichier temporaire (ai-je l'impression).

(Merci à vous).
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7562

Chez moi ça marche© depuis longtemps, du coup j'ai un peu oublié, mais voilà en gros :

Kerberos a été implémenté par le MIT, mais a été bridé à cause des lois américaines sur l'export (c'est vieux).
Du coup, il y a eu une seconde implémentation, Heimdal (le gardien d'Asgard), qui n'est pas bridée.
Théoriquement, tu peux utiliser un client MIT avec un serveur Heimdal et réciproquement… mais c'est très théorique ^^

Bon, du coup : tu as trois machines impliquées :
- l'AD (qui va servir de KDC),
- ton Ubuntu serveur S qui aura un ou plusieurs services kerberisés (apache ou ssh),
- ton poste d'administration A (bien évidemment sur un réseau distinct du réseau bureautique embarrassed).


1) commence par jouer avec un apache et non SSH comme service kerberisé (plus simple, pas de PAM, et pas de risque de te scier la branche sur laquelle tu es)
2) voici le principe de Kerberos :
- tu fais un kinit sur A pour avoir un ticket de session TGS (valable un jour, en gros un passeport)
- tu fais une requête (curl, firefox, …) sur S (utilise curl -u : --anyauth) qui t'envoie balader (HTTP/401)
- curl (via libkrb5) fait une requête au KDC avec ton TGS pour avoir un TGT (valable 5 minutes et uniquement pour S : un visa sur ton passeport)
- curl retourne vers S en présentant ton TGT
- S voit ton TGT et le vérifie auprès du KDC puis accepte ton authentification.


3) ça veut dire que :
- S doit avoir un compte (chaque service a son compte différent) et être authentifié de façon permanente auprès du KDC (via un Keytab, qui est en gros un fichier avec ton mot de passe en clair),
- ton compte d'admin A doit avoir un compte sur l'AD et être authentifié.

Du coup :
- as-tu un compte sur l'AD ?
- as-tu configuré Kerberos sur ton poste d'admin ?
- as-tu fait un kinit (un klist devrait te le dire) ?
- est-ce que A est à l'heure ?
- S a-t-il un keytab ?
- qu'il y a-t-il dans le keytab (ça va dépendre de l'application : pour un serveur web avec un alias, "HTTP/mon.alias.domain" devrait être bon ) ?
- le keytab est-il au bon endroit avec les bons droits ?

Le strace sera pour lancer apache et chercher toutes les occurrences de krb/keytab/ … pour voir les fichiers testés.
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7563

Merci pour tous tes détails bien instructifs ! calin

Je le (re)dis, ça a marché à un moment (mon compte adm.adrienxxx a pu s'authentifier en SSH sur le serveur Ubuntu...), donc tous les prérequis que tu listes sont bons (ou l'ont été !)
kinit est une bonne question : j'ai joué avec, mais je ne l'ai pas fait pour que ça marche, je pense que sssd doit le faire dans son coin une fois qu'il connaît le nom du domaine (dont je ne sais toujours pas où il va le piocher...)
Pourquoi tu parles de kerberos sur mon poste d'admin ? (= windows 10, où j'ai un autre compte sur un autre ad; mais ça n'a rien à voir, du moment que je peux joindre le serveur en SSH, l'origine de la connexion n'a aucune importance).

Il y a bien un keytab (au même endroit que le krb5.conf)... sauf quand je le détruis en espérant cleaner. Je ne sais pas quelle commande le crée (realm discover ? realm join ? kinit ? apt install krb5-user?) Et pour l'avoir affiché avec cat, pour moi c'est pas un fichier en clair.

Je referai une passe un peu plus complète lundi (sauf si le presta m'a bien fait le rollback demandé grin). Merci !
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7564

Je ne connais rien à Windows, notamment pas les équivalents de kinit et klist, désolé.

Sur un Ubuntu cliente, si tu te connectes avec succès, tu dois avoir la trace dans klist. Ça permet d'être sûr que la phase Kerberos a bien fonctionné et que ce n'est pas autre chose (genre une clef privée qui traîne…)

Tu *dois* être authentifié en Kerberos sur A (ça tombe bien, l'authentification AD sur un Windows récent fait du Kerberos), sur le même AD (ou sur un AD du même domaine) que S.
Le principe de Kerberos est de t'authentifier (à partir de A) sur S : il faut donc fournir une identité. Cette pièce identité t'est fournie par le KDC quand tu te loggues sur A (ou que tu fais un kinit).
Tu vas la retransmettre à S pour prouver ton identité… mais ça veut dire que S a le même dealer d'identité KDC que A. L'avantage est que tu ne fournis à S qu'un token fait sur mesure pour lui : il n'a aucun accès à ton vrai secret (que tu ne donnes qu'à ton KDC).
Sinon S te voit arriver avec une pièce d'identité en laquelle il n'a aucune raison de faire confiance…


Le keytab n'est pas lisible facilement, il faut regarder ce qu'il y a dedans avec ktutil (la syntaxe dépend de MIT ou Heimdal).
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7565

Je ne connais rien à Windows
C’est un système d’exploitation de la société américaine Microsoft.

(et ça se dit docteur en informatique roll)
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

7566

(rotfl)
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

7567

./7564 J'ai l'impression que le but n'est pas d'être authentifié par le système hôte de l'utilisateur lorsqu'il se connecte via SSH au serveur Ubuntu. J'ai l'impression que le but est de pouvoir entrer ses identifiants lors de la commande SSH pour un compte de l'annuaire avec lequel le serveur Ubuntu est associé.

Le problème est que l'entrée d'Ubuntu dans un AD est assez complexe et les méthodes qu'on trouve sur internet ne fonctionnent souvent pas. Par exemple, je viens de tester celle du lien de ./7543 sur une installation neuve et ça n'a pas fonctionné. La découverte semble se faire correctement, mais pas l'intégration (ça ne dit pas pourquoi, seulement qu'il ne peut pas). Il n'y a aucun problème avec Windows dans la même situation.
avatar

7568

J'ai l'impression que le but est de pouvoir entrer ses identifiants lors de la commande SSH pour un compte de l'annuaire avec lequel le serveur Ubuntu est associé.
C'est exactement ce qu'il ne faut surtout pas faire, et Kerberos a été conçu pour éviter ça. Je ne suis d'ailleurs pas sûr que SSH le permette, vu que ce n'est pas du tout ce qui est prévu par le protocole gssapi.
Je sais que le module Kerberos d'Apache le permet : il authentifie l'utilisateur en BASIC et utilise le mot de passe fourni pour faire un kinit à la place de l'utilisateur. L'authentification HTTP n'est pas Kerberos mais BASIC et Kerberos est vu comme une base de stockage du mdp.

Au passage, l'utilisation de bi-clefs RSA n'est-elle pas possible, tout simplement ?


Folco (./7565) :
Je ne connais rien à Windows
C’est un système d’exploitation de la société américaine Microsoft.

(et ça se dit docteur en informatique roll)
lolpaf
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7569

flanker (./7564):
Tu *dois* être authentifié en Kerberos sur A (ça tombe bien, l'authentification AD sur un Windows récent fait du Kerberos), sur le même AD (ou sur un AD du même domaine) que S.
Alors je suis désolé, mais ton "tu DOIS" est faux. J'imagine que c'est ta casquette de sécurité qui parle, et que tu voulais écrire "tu DEVRAIS" grin
Je dis que c'est faux car ça a marché pour ce serveur, mais surtout ça marche pour 5 autres (sous Ubuntu) pas tous sur le même AD (donc je pensais avoir compris... en fait non neutral)
flanker (./7564):
Le keytab n'est pas lisible facilement, il faut regarder ce qu'il y a dedans avec ktutil
Merci, c'est noté (encore un utilitaire CLI dont on se serait passé... ah là là, on est loin d'un truc plug'n'play).
RHJPP (./7567):
J'ai l'impression que le but n'est pas d'être authentifié par le système hôte de l'utilisateur lorsqu'il se connecte via SSH au serveur Ubuntu. J'ai l'impression que le but est de pouvoir entrer ses identifiants lors de la commande SSH pour un compte de l'annuaire avec lequel le serveur Ubuntu est associé.
pencil !
flanker (./7568):
C'est exactement ce qu'il ne faut surtout pas faire, et Kerberos a été conçu pour éviter ça. Je ne suis d'ailleurs pas sûr que SSH le permette, vu que ce n'est pas du tout ce qui est prévu par le protocole gssapi.
Ah bin c'est sûr que SSH le permet puisque ça marche pour plein d'autres machines. Mon but est que le serveur soit dans l'AD, donc soit authentifié en direct, pas indirectement par une machine d'admin.
Je sais que dans un monde parfait, on passe par une machine d'admin fiable (une machine de rebond(->Ca viendra) ou une workstation béton (==pas notre cas du tout)), mais dans l'immédiat je suis 3 niveaux en-dessous : je veux simplement pas qu'on utilise des comptes locaux, donc S authentifié par l'AD.
flanker (./7568):
Au passage, l'utilisation de bi-clefs RSA n'est-elle pas possible, tout simplement ?
Des clés SSH ? Si bien sûr que c'est possible. Mais c'est une manipulation supplémentaire dont les autres admins (moins linuesques que moi) se passeraient bien pour l'instant.
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7570

Mais es-tu sûr que ce soit de l’authent’ Kerberos et non un bind LDAP ?
Ce que tu décris ne correspond pas au protocole Kerberos.
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7571

Je ne sais pas sad
adm.BLBLBLA@TRUC-ci05:~$ klist
Ticket cache: FILE:/tmp/krb5cc_62402728_D7ksT4
Default principal: adm.BLBLBLA@CORPO.LOCAL

Valid starting Expires Service principal
01/01/1970 00:00:00 01/01/1970 00:00:00 krbtgt/CORPO.LOCAL@CORPO.LOCAL
Ca te paraît pas être du kerberos ?

Pour info, ils m'ont restauré ma VM. Miracle, l'authentification marche. Ca c'est avant que je mette la VM dans la bonne OU sur l'AD (là le serveur est dans l'OU par défaut "Computer".
Je vais tenter la modif du fichier realmd.conf pour déplacer dans la bonne OU.

EDIT: realmd.conf pour indiquer l'OU
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7572

J'ai modifié /etc/realmd.conf pour préciser le bon chemin de la bonne OU. Mais ça n'est pas pris en compte comme indiqué là: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/windows_integration_guide/realmd-conf
Changing the configuration as described in this section only works if the realm join command has not been run yet. If a system is already joined, changing these settings does not have any effect. In such situations, you must leave the domain, as described in Section 3.5, “Removing a System from an Identity Domain”, and then join again, as described in the section called “Joining a Domain”.
J'ai peur de quitter/rejoindre le domaine... fear
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7573

Et voilà, j'ai tout recassé sad
1- Modif le fichier /etc/realmd.conf pour ajouter la bonne OU
2- sudo realm leave -U='adm.BLBLBL'
3- sudo realm join --verbose --user=adm.BLBLBLB corpo.local --install=/

* Computer account for MACHIN-CI05$ does not exist
! Couldn't find a computer container in the ou, creating computer account directly in: ou=TRUC-CI,ou=Serveurs,DC=corpo,DC=local

[...]
* Modifying computer account: userPrincipalName
! Couldn't set service principals on computer account CN=MACHIN-CI05,ou=TRUC-CI,ou=Serveurs,DC=corpo,DC=local: 00002083: AtrErr: DSID-03151785, #1:
0: 00002083: DSID-03151785, problem 1006 (ATT_OR_VALUE_EXISTS), data 0, Att 90303 (servicePrincipalName)

[...]
* Successfully enrolled machine in realm
Hormis l'erreur sur le principals, la machine arrive bien dans le domaine.
Dans la bonne OU.

Mais l'authentification SSH ne marche plus: "Access denied"
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7574

Purée, je m'en suis sorti top

Pour mémoire....
Ton utilitaire ktutil m'a bien aidé, Flan, merci ! bisoo
Il y avait 60 mauvaises entrées dans le keytab après avoir re rejoint le domaine, voici un exemple:
71 0 /▒C▒3▒▒▒*▒"▒7▒@
72 0 CORPO.LOCAL/RestrictedKrbHost@
TRUC-CI05
Comme j'avais un backup du keytab, j'ai écrasé le keytab recréé par le keytab dont je savais qu'il marchait...
J'ai redémarré le service sssd et victoire : l'authentification AD pour SSH marche ET le serveur est enfin bien rangé...

J'ai pas tout compris pour autant.
Bon désolé pour le spam fil. Si j'avais su qu'il y aurait autant de messages, j'aurais fait un topic dédié.tsss
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7575

L’authent’ SSH est en login - mot de passe, il passe tes identifiants à pam qui lui fait un kinit. SSH en soi n’est pas kerberisé.
Autrement dit, tu as le pire des deux mondes. Si ta VM est corrompue, l’attaquant récupère les TGT de tous les gens qui s’y sont connectés et se sert de leur compte pour se connecter sur tous les services kerberisés. Et au prochain login, il récupère le login et le mot de passe.

Et en toute logique, tu n’as pas spécialement besoin de keytab vu que le kinit est fait sur le serveur.
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7576

redangel wanted to continue a side discussion in a new topic. Original discussion can be found in topic topics/132745-linux/253#post-7572 while drifted discussion continues in topic topics/190926-linux-et-authentification-ad where related posts have been copied.
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7577

tiens, le message est en anglais hum
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7578

Ça dépend de la langue qu'a choisi l'utilisateur (après, me demande pas pourquoi Redangel utilise yN en anglais cheeky)
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

7579

Ah oui tiens, c'est plutôt marrant ça. Est-ce que yN récupère le locale du navigateur (qui est effectivement en en_US, si ça existe) ? Si ce n'est pas le cas, ça veut dire que ça date de mon voyage en Oz... il y a 12 ans gni

En tout cas c'est la 1ère fois que je forke un topic, et si ce n'est que j'ai pas forcément choisi la bonne destination, c'est super facile top
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7580

Non tu dois avoir l’interface de yN en anglais
avatarProud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

7581

redangel (./7579) :
ce n'est pas le cas, ça veut dire que ça date de mon voyage en Oz... il y a 12 ans gni
Dire que quand j'étais petit, je pensais que le magicien d'Oz se déroulait dans un pays francophone. Pas beaucoup plus tard, j'étais absolument incapable de taper les commandes nécessaires pour installer un Linux, n'ayant pas compris le concept de clavier en-US et co. Quel naïveté. #improvingEveryDay #yolo
avatarHighway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

7582

Je ne sais même pas si le magicien d'Oz a un rapport avec l'Australie... j'imagine que oui ?
(je connais pas le magicien, sauf le Unlock associé, qui était bien d'ailleurs)
avatarL'homme qu'a vu l'homme qu'a vu l'ours, qu'a mangé l'facteur..

7583

C'est pas clair apparemment :
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo