Documentation d'intégration manuelle à AD, montage de P: et accès aux ateliers

Tout le travail de test se passe ici :

* page d'Yves

* page de Rémi

* Quelques informations sur pam

Une fois les tests finalisés, cette page le sera aussi ! N'hésitez pas à contribuer :-)

D'autre pistes sont à étudier parmi lesquelles SADMS développé par notre collègue Bernard Bou : http://sadms.sourceforge.net/

En anglais dans le texte :

SADMS takes care of handling configuration files to achieve the the integration (joining) of Linux hosts to an ActiveDirectory domain, to the effect that

  • Linux hosts become Windows domain hosts.
  • Windows domain users become Linux users.

As a domain member, the Linux host

  • can offer resources (shares) to the domain hosts and act as a domain server.
  • offloads authentication to the domain (controllers), making it unnecessary to add local user accounts for domain users.

Ce document est basé sur la page dédiée du wiki linuxedu (merci à Alexandre pour cette page)

Abréviations :

  • CD=Controleur de Domaine (D-NOM_ETAB en général), D-CROC-MAGNON dans cette page
  • OU=Unité d'Organisation
  • AD=Active Directory
  • USERNAME=nom d'utilisateur AD/Magret (6 première lettres du nom + première lettre du prénom)
  • 10.255.5.1=IP du SERVEUR01

Prérequis

Logiciels nécessaires :

  • Winbind est un systeme permettant de mapper des comptes windows en comptes unix. Le paquet winbind fourni le démon winbindd. Celui-ci donne le service « winbind » qui permet de récupérer les informations sur les utilisateurs et les groupes depuis un serveur Windows NT/2003. Ce service fournit également des services d'authentification par l'intermédiaire d'un module PAM.
  • nsswitch permet de changer, de “switcher” de méthode d'authenfication (ldap ou windbind, files pour les fichiers locaux…)
  • smbclient….
  • suite descriptif paquets nécessaires
  • On peut aussi utiliser kerberos (krb5-user), mais ce n'est pas obligatoire si les dns machines sont bien indiquées

Note : Le paquet samba-client est un paquet virtuel fourni par smbclient

sudo apt-get install samba samba-common smbclient winbind 

Paramétrages

Samba

pour /etc/samba/smb.conf

Le fichier suivant permet d'intégrer la station au domaine :

[global]
    security = ADS
    realm = D-CROC-MAGNON.local
    password server = SERVEUR01.D-CROC-MAGNON.local
    # workgroup est le nom "court" du CDe
    workgroup = D-CROC-MAGNON
    winbind separator = +
    idmap uid = 10000-20000
    idmap gid = 10000-20000
    winbind enum users = yes
    winbind enum groups = yes
    template homedir = /home/%D/%U
    template shell = /bin/bash
    client use spnego = yes
    # nous n'avons qu'un seul CD
    # et cela permet de se logguer avec USERNAME au lieu de D-MON_ETAB+USERNAME
    winbind use default domain = yes
    # empêche le client de devenir maitre explorateur
    domain master = no
    local master = no
    preferred master = no
    os level = 0

A ce stade un petit testparm pour éviter les soucis Puis arrêter samba et winbind :

 sudo /etc/init.d/samba stop
 sudo /etc/init.d/winbind stop

Joindre le domaine avec

 net join -D D-CROC-MAGNON -U Administrateur

ensuite redémarrer samba et winbind :

/etc/init.d/winbind start
/etc/init.d/samba/samba start

et tester : wbinfo -u wbinfo -g

Attention aux problèmes réseau au démarrage, si au reboot machine “wbinfo -u” ne donne rien, relancer /etc/init.d/winbind start

FIXME : Script éventuel à placer dans /etc/network/if-up/ pour être sur qu'il soit lancé après le réseau

NSSWITCH

pour /etc/nsswitch.conf

Remplacer les trois premières lignes qui sont :

passwd:         compat
group:          compat
shadow:         compat

par ceci :

passwd: compat winbind
shadow: compat
group: compat winbind

Joindre le domaine et winbind

Pour joindre le domaine, nous allons utiliser la commande “net”. Elle va lire dans smb.conf les informations utiles. Elle permet d'administrer les partages samba ou CIFS distants. Il est possible de lui passer en argument le nom d'une OU cible….

Pour tester la liaison avec le domaine :

sudo net ads testjoin
sudo net ads join -D D-CROC-MAGNON  -U Administrateur

Rentrer successivement le mot de passe root (pour sudo) et le mot de passe Administrateur de SERVEUR01

ou celle-ci en mettant le mot de passe en clair

sudo net ads join -D D-CROC-MAGNON  -U admin%passwd

Le message suivant s'affiche :

Password:
Joined domain D-CROC-MAGNON.

Remarques :

  • si possible, on utilise la commande “net ads join….” plutot que “net rpc join…” car ADS est utilisé pour ActiveDirectory et RPC pour NT4 et Windows 2000… sinon RPC ! FIXME : avec ADS, il faut kerberos, avec RPC, non ?
  • pour diagnostiquer : “net ads info” et “net ads status -U administrateur”
  • pour quitter le domaine : net ads leave

La station est maintenant intégrée au domaine et apparait lors du lancement de Magret Serveur. L'OU par défaut est

Ensuite démarrer samba, puis winbind

sudo /etc/init.d/samba start
sudo /etc/init.d/winbind start

Pour faire des vérifications, nous allons utiliser le programme wbinfo qui interroge le démon winbind.

La commande suivante liste tous les utilisateurs du domaine :

  wbinfo -u 

Si la commande renvoie “Error looking up domain users”, vérifier les messages renvoyés par “wbinfo -t”. Cette commande teste si la station

On liste tous les groupes du domaine :

  wbinfo -g

On vérifie le module nsswitch de winbind avec getent qui renvoie les bases données passwd et group.

Liste des utilisateurs d'Active Directory :

  getent passwd  

Liste des groupes Active Directory :

  getent group

PAM (Pluggable Authentication Modules)

À ce stade, on peut se connecter à la machine Linux à l'aide d'un compte local ou un compte d'utilisateur du domaine. À la première connexion d'un utilisateur du domaine, un répertoire « home » sera créé.

Il faut ensuite modifier pam, qui est le service gérant l'authentification.

ATTENTION A TOUJOURS GARDER UNE FENETRE ROOT OUVERTE QUAND ON TOUCHE A PAM

Pour l'authentification il faut utiliser le modules pam_winbind

Pour monter automatiquement le répertoire partagé en même temps que la connection, il faut utiliser les modules pam_mount et pam_mkhomedir

voilà le détail de mon fichier de config pam

/etc/pam.d/common-session :

Ce fichier gère l'ouverture de session

  session    required    pam_unix.so
  session    required    pam_mkhomedir.so skel=/etc/skel umask=0022
  session    optional    pam_mount.so

/etc/pam.d/common-auth :

Ce fichier gère l'authentification. On y met les modules que l'on souhaite voir tester les couples login/mot de passe

  auth    optional      pam_mount.so
  auth    sufficient    pam_unix.so     use_first_pass
  auth    required      pam_group.so    use_first_pass
  auth    required      pam_winbind.so  use_first_pass
  password   sufficient   pam_unix.so nullok obscure min=4 max=8 md5

/etc/pam.d/common-account :

Ce fichier gère l'autorisation de connexion. On peut donner des restriction en fonction du login, de la date, de l'heure, etc. L'ordre semble important. En priorité on se connecte avec un compte d'utilisateur du domaine sur la machine (pam_winbind.so en premier donc). Ici pas de restrictions.

  account    sufficient   pam_winbind.so
  account required        pam_unix.so 

En vrac à la fin, utile pour kerberos

Kerberos

/etc/krb5.conf

[libdefaults]
default_realm = D-CROC-MAGNON.local
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
 	
 [realms]
  D-CROC-MAGNON.local = {
 kdc = serveur01
   admin_server = serveur01
   default_domain = D-CROC-MAGNON.local
}

[domain_realm]
.mit.edu = ATHENA.MIT.EDU
mit.edu = ATHENA.MIT.EDU
.media.mit.edu = MEDIA-LAB.MIT.EDU
media.mit.edu = MEDIA-LAB.MIT.EDU
.whoi.edu = ATHENA.MIT.EDU
whoi.edu = ATHENA.MIT.EDU
 .stanford.edu = stanford.edu
 .projet.tut = PROJET.TUT
peojet.tut = PROJET.TUT
  
[login]
krb4_convert = true
krb4_get_tickets = false

FIXME : paramétrer : /etc/hosts avec un Nom de Domaine Pleinement Qualifié (FQFN)

Pour tester :

kinit test 

A classer :

  • sudo ntpdate 10.255.5.1

Documentation

 
projet/travail/magret/magret-linuxedu.txt · Dernière modification: 2010/10/27 23:01 par rboulle
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante :GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki