Authentificationlinuxldapgroupe3

1.Introduction

Le travail est consacré à un client Linux dans un Active Directory windows, pour configurer le serveur windows2003 je me suis référer à ce site:
http://www.petri.co.il/how_to_install_active_directory_on_windows_2003.htm
Une fois passer cet étape on passe au client linux.
Un client Linux dans un contrôleur de domaine windows se compose de 4 paquets

2.Introduction Active Directory

Active Directory est au cœur des systèmes Microsoft Windows, c'est lui qui est en charge de la gestion des comptes utilisateurs, des authentifications, mais aussi d'un grand nombre d'informations sur les machines.

smbclient:
Est un client capable de dialoguer avec un serveur SMB/CIFS. Il offre une interface très similaire à celle du programme ftp. Les opérations proposées par ce programme permettent entre autres de télécharger des fichiers du client vers le serveur dans les deux sens, d'obtenir des informations sur les fichiers présents sur le serveur et ainsi de suite.

winbind
Ce programme fait partie de la samba. winbindd est un démon qui fournit un certain nombre de services à la capacité Name Service Switch trouve dans C les plus modernes bibliothèques, à des applications arbitraires via Samba et autres. Même si winbind n'est pas utilisé par nsswitch, il dispose de un service à smbd, par la gestion des connexions aux contrôleurs de domaine. Le Name Service Switch permet informations sur l'utilisateur et le système à obtenir des services de bases de données différents, tels que NIS ou DNS. Le comportement exact peut être configuré de la pensée
Fichier / etc / nsswitch.conf. Les utilisateurs et les groupes sont répartis comme Ils sont résolus à une gamme d'utilisateur et ID de groupe spécifié par l'administrateur du système Samba.
Le service fourni par winbindd est appelé «winbind» et permet être utilisé pour résoudre les utilisateurs et les groupes à partir d'un Windows serveur NT.

Kerberos
Est un protocole d'authentification réseau. Kerberos utilise un système de tickets au lieu de mots de passe en texte clair. Ce principe renforce la sécurité du système et empêche que des personnes non autorisées interceptent les mots de passe des utilisateurs.
L'ensemble repose sur des clés secrètes (chiffrement symétrique). À l'origine, il fut employé sur des systèmes distribués Unix. C'est avec Windows 2000 qu'il fit son retour.

NTP
(Network Time Protocol ou NTP) est un protocole qui permet de synchroniser, via un réseau informatique, l'horloge locale d'ordinateurs sur une référence d'heure.
Active Directory repose sur différents protocoles réseaux:

DNS (résolution de noms)
LDAP (interrogation de l'annuaire)
Kerberos V (authentification, distribution de tickets)
NTP (synchronisation date et heure des machines)
SMB/CIFS (partage des ressources)

Matériel necessaire
Windows2003 DNS
Windows2003 DC
Windows2003 Kerberos (authentification, distribution de tickets)
Windows2003 DHCP
Windows2003 NTP
Linux Client NTP (synchronisation date et heure des machines)
Linux Client SMB (partage des ressources)
Linux Client Kerberos krb5-user

3.Introduction à la gestion des utilisateurs UNIX

La gestion des comptes utilisateur LINUX est réalisée à l'aide de différents composants conformément à la philosophie UNIX (un programme fait une seule chose et la fait bien). Parmi ces différents acteurs, on trouve :

PAM (Pluggable Authentification Modules) permettent entre autres de sélectionner différentes procédures et sources d'authentification (ex: Authentification par cartes à puces, Bases de données, Annuaires…)

NSS (Name Services Switch) permet de fournir à Unix des services de correspondances entre noms, de toutes sortes (noms de machines et noms d'utilisateurs), et les identifiants de ces mêmes objets pour la machine (adresses IP et uid/gid) en utilisant diverses sources (Fichiers, Annuaires…).
Dans notre cas il va il va chercher les informations sur les utilisateurs.)

4.Intégration d'un serveur Samba dans un domaine Active Directory

L'intégration d'un serveur Samba dans un domaine Active Directory nécessite la configuration d'un client Kerberos sur la machine Samba. Kerberos est un système d'authentification qui permet aux serveurs d'authentifier les utilisateurs et de communiquer en sécurité. Afin de réaliser l'intégration client LINUX au domaine AD des composants additionnels sont requis.

5.Fichiers à configurer

/etc/hosts
/etc/resolv.conf
/etc/default/ntpdate
/etc//samba/smb.conf
/etc/krb5.conf
/etc/nsswicht.conf
/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-password
/etc/pam.d/common-session
/etc/pam.d/user

/etc/hosts
Le fichier hosts est un fichier utilisé par le système d'exploitation d'un ordinateur lors de l'accès à Internet. Son rôle est d'associer des noms d'hôtes à des adresses IP. Lors de l'accès à un ressource réseau par nom de domaine, ce fichier est consulté avant l'accès au serveur DNS et permet au système de connaître l'adresse IP associée au nom de domaine sans avoir recours à une requête DNS.
1270.0.1 monordinateur.mondomaine.local localhost monordinateur
192.168.0.1 serveur2003.info.local

/etc/resolv.conf
Dans la plupart des Unix et d'autres systèmes d'exploitation mettent en œuvre le BIND Domain Name System (DNS) résolution bibliothèque, le fichier resolv.conf contient des informations qui détermine les paramètres de fonctionnement DNS avec des routines installées dans le système d'exploitation.
Le résolveur DNS permet à un ordinateur connecté à un réseau de convertir les données alpha-numérique par noms de domaine dans une adresses IP numérique qui sont requises pour l'accès aux ressources d'Internet ou dan un réseau local . Le processus de recherche des adresses IP des noms de domaine est appelé ''resolving''.
Le fichier resolv.conf contient généralement des directives avec les adresses IP des serveurs de noms disponibles dans un hôte.
resolv.conf est généralement situé dans le répertoire /etc/.
Le systèmes de fichiers * nix ne prend pas en charge les noms de fichiers de plus de six caractères; ainsi l'orthographe de «resolv» la fuite, sans "e" dans "resolv.conf".
Parfois il est nécessaire que le contenu de ce fichier de configuration est gérée par des agents ou des programmes multiples. À cette fin, resolv.conf programme est disponible pour gérer les conflits.

wim /etc/resolv.conf

Nameserver 192.168.0.1
domain info.local
search info.local

6.NTP Network Time Protocol

L'utilisation de Kerberos requière une synchronisation exacte entre le serveur et le client, le echange
des informations se passent dans une première phase par un mot de passe avec loggin une seul fois et le reste des échanges se font avec des tickets le quels sont base sur le temps, pour cela il faut mettre en route un serveur de temps et le client qui va se synchroniser.
Le fichier /etc/services doit contenir les lignes suivantes:
ntp 123/tcp
ntp 123/udp # Network Time Protocol

vim /etc/ntp.conf

NTPDATE_USE_NTP_CONF = yes
NTPOPTIONS = ''-u''
server 192.168.0.1
ntpdate 192.168.0.1

Pour voir que vous êtes bien synchronisé il suffit de taper

ntpq -p

Synchronisation manuelle
Pour se synchroniser avec votre serveur NTP qui doit déjà être synchronisée lui même, il suffit de taper, en tant que root :
ntpdate -dv 192.168.0.1 
ntpq -p

Synchronisation automatique avec cron
crontab -e
0 * * * * /usr/local/bin/ntpdate obelix

Trace une chaîne de serveurs NTP retour à la source primaire
ntptrace

7.KERBEROS

Il est nécessaire de configurer un client Kerberos afin de valider l'identité du serveur LINUX dans le réseau Microsoft. Celui dialoguera avec le serveur AD pour effectuer des demandes de "tickets" au KDC qui seront utilisés pour assurer l'authenticité et la sécurité des communications.
apt-get install krb5-user

vim /etc/krb5.conf

default_realm est le nom de domaine don kerberos doit opère
ticket_lifetime est la duré de vie du ticket
kdc est le nom du serveur kerberos
admin_server est le Controleur du domaine

TEST DE KERBEROS

Permet de vérifier que Kerberos est opérationnel.
On demande un TGT (Ticket-Granting Ticket).
kinit Administrateur
Password for LACOL.OFNI|ruetartsinimdA#LACOL.OFNI|ruetartsinimdA:

On vérifie la validité et l'attribution du ticket.
klist

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@INFO.LOCAL

Valid starting     Expires            Service principal
03/05/10 14:46:42  03/06/10 00:46:51  krbtgt/Administrateur@INFO.LOCAL
    renew until 03/06/10 14:46:42

8.Authentification unifiée UNIX / Windows

Le composant Winbind de Samba permet de résoudre les problèmes d'authentifications unifiées. Il permet principalement à l'aide de PAM (Pluggable Authentication Modules) et d'NSS (Name Service Switch) de faire apparaître des utilisateurs d'un domaine Windows comme des comptes UNIX.

Installation de Winbind:

apt-get install winbind

Samba
Pour accéder aux ressources partagées (SMB) du domaine Windows, une installation de Samba est requise sur le client Linux qui jouera principalement le rôle de client SMB.
Samba permettra également à l'aide de commandes MSRPC de dialoguer avec le serveur AD pour effectuer diverses opérations : ajout des informations sur le serveur LINUX dans l'annuaire, lister les comptes/groupes utilisateur, transmettre les demandes d'authentification…
Installation Samba-client:
apt-get install smbclient

vim /etc/samba/smb.conf

security = ads Permet à samba d'utilser Kerberos pour accepter les tickets
password server = SERVER2003.INFO.LOCAL Introduisez le nom du serveur Windows à authentifier dans le champ.Endroit ou se trouve le mot de passe
workgroup = INFO Cela correspond au nom de votre domaine samba. Dans workgroup insérer le nom de domaine, le domaine doit être réglé sur le nom de domaine pleinement qualifié (en majuscules).
realm = INFO.LOCAL Domaine Kerberos
netbios name = Linux nom Machine unique dans le réseau le réseau NetBios.
dmap uid = 10000-20000 mapage d'identification max et min pour le utilisateurs
idmap gid = 10000-20000 mapage d'identification max et min pour les groupes
winbind separator = / Séparateur lors de requêtes winbind(DOMAIN_SMB/Nom_utilisateur)
winbind enum users = yes Énumère les utilisateurs pour le deamon winbind
winbind enum groups = yes Énumère les groupes pour le deamon winbind
template homedir = /home/%D/%U Indique l'emplacement des répertoires "Home" des utilisateurs du domaine. Il faudra créer le répertoire %D avec D = au nom du domaine Samba. Ce répertoire doit être créer avec les droits root, sinon les utilisateurs du domaine ne pourront pas ouvrir de session même si l'authentification a réussi.

Il faut créer le répertoire de utilisateurs (template homedir = /home/%D/%U) et changer les droits unix

mkdir /home/INFO
chmod -Rf 777 /home/INFO/
/etc/init.d/winbind start
/etc/init.d/samba restart

testparm vérifie le fichier de configuration smb.conf
Doit afficher en echo: ''locaded services file OK''
testparm [configfilename [hostname HostIP]]

Cette commande va permettre d'integrer au domaine du servereur2003 et permattre de faire apparaitre le nom de la machine.

net join -U Administrateur -S server2003.info.local

Vérification du fonctionnement NSS+Winbind:

wbinfo -u récupère les utilisateurs présents  dans l'annuaire du server2003 
wbinfo -g récupère les groupes  présents dans l'annuaire du server2003

Ajout du support Winbind à NSS (/etc/nsswitch.conf):

Le fichier "/etc/nsswitch.conf" sert à la configuration des bases de données systèmes et des services de noms (il définit l'ordre de recherche). C'est à lui que l'on va dire d'utiliser winbind pour trouver les noms d'utilisateurs et groupes rattachés au domaine. Il faut ajouter winbind à passwd et group et rajouter wins à hosts.

/etc/nsswitch.conf


Vérification du fonctionnement NSS+Winbind:
getent - Récupérer des entres depuis les bases de donnes d'administration
exemple: getent base_de_donnes
Le programme getent récupère des entres dans la base de donnes d'administration spécifie en utilisant la cl de recherche spécifie. base_de_donnes peut prendre l'une des valeurs passwd, group, hosts,services, protocols ou networks.
Dans notre cas on test si NSS couplé à winbind nous renvois les informations.

getent passwd
getent group
=> Doit renvoyer les comptes locaux POSIX et les comptes déclarés dans l'AD.

Modules PAM:
Ajout du support Winbind à PAM:

Configuration des fichiers PAM [Pluggable Authentication Modules]

Pour obtenir un peu plus de détails sur PAM, on peut aller à cette adresse http://fr.wikipedia.org/wiki/Pluggable_authentication_module.

vim /etc/pam.d/common-account

vim /etc/pam.d/common-auth


vim /etc/pam.d/common-password

vim /etc/pam.d/common-session

vim /etc/pam.d/sudo

(ou tout dans /etc/pam.d/system-auth)

Vérification de l'authentification PAM+Winbind:

mkdir -p /home/

=> Il est possible de se logger sur une console avec un compte déclaré dans l'AD.
1ere fois essaye de s'authentifier sur l'AD. 2eme mot de passe pour le système local.

Maintenant, je vérifie si tout fonctionne en émettant les commandes;

==>Test du domaine: net ads testjoin
==>Test winbindd: wbinfo -u à la liste des utilisateurs AD et wbinfo -g pour les groupes.
==>Test de connexion à un serveur distant Windows à partir du serveur Samba:
smbclient -L //win2003-k
==>Exécuter wbinfo -t elle doit retourner: checking the trust secret via RPC calls succeeded, sinon
vous avez fait quelque chose mal (Utilisez testparm -v pour vérifier votre configuration Samba).
==>Enfin tester la connectivité à partir d'une boîte de Windows: Démarrer - Exécuter - \ \ SAMBASERVER.

9. Sites de référence

http://www.debian-administration.org/article/Using_Samba_on_Debian_Linux
http://julien.herbin.ecranbleu.org/samba_client_howto/
http://www.commentcamarche.net/forum/affich-4857996-integrer-un-client-linux-sur-un-domaine-windo
http://www.windowsnetworking.com/articles_tutorials/Authenticating-Linux-Active-Directory.html
http://fr.wikipedia.org/wiki/Kerberos
http://stankiewicz.free.fr/Wikka/wikka.php?wakka=HowtoSambaAD

Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License