A- PHASE DE PREPARATION DU SERVEUR OU POSTE A METTRE DANS LE DOMAINE 1- Configurer les cartes réseaux #nano /etc/network/interfaces # The primary network interface auto eth0 allow-hotplug eth0 iface eth0 inet static address 10.0.5.8 netmask 255.255.255.0 gateway 10.0.5.30 dns-servers 10.0.5.1 dns-servers 10.0.5.230 #service networking restart (redemarrer le service reseaux) 2- Modifier le fichier /etc/resolv.conf pour pointer vers le DNS de l'AD #nano /etc/resolv.conf search benin.groupmediacontact.local nameserver 10.0.5.1 nameserver 10.0.5.230 3- reglage de la date et fuseau horarire #apt install ntp ntpdate (installer les paquets de temps) #etc/init.d/ntp stop ou service ntp stop (arret du service ntp) #nano /etc/ntp.conf driftfile /var/lib/ntp/ntp.drift ntpdate 10.0.5.1 server 1.pool.ntp.org iburst dynamic #/etc/init.d/ntp start OU service ntp start (démarrage du serveur NTP) 4- Modifier le fichier /etc/hostname pour qu'il contienne le nom FQDN (nom + suffixe DNS du réseau local) de la machine #nano /etc/hostname venus.benin.groupmediacontact.local 5- Modifier le fichier /etc/resolv.conf pour pointer vers le DNS de l'AD # nano /etc/host 127.0.0.1 localhost 10.0.5.8 venus.benin.groupmediacontact.local venus 6- Rebooter la machine pour prendre en compte ce nouveau nom de machine (un hostname -F /etc/hostname n'a pas l'air de suffire pour le script samba qui récupère toujours l'ancien nom...) B- PHASE DE JONCTION AU DOMAINE 1- Installer les dépendances #apt-get update #apt-get install samba winbind libnss-winbind samba-client libkrb5 2- Configuration krb5.conf, éditer le fichier /etc/krb5.conf et replacer tout le fichier par les lignes ci-dessous (Editer le fichier, faire attention à la casse (majuscules/minuscules) !!!). #cp /etc/krb5.conf /etc/krk5.conf.old (faire une sauvegarde du fichier de config) #nano /etc/krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = BENIN.GROUPMEDIACONTACT.LOCAL dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h forwardable = yes [realms] BENIN.GROUPMEDIACONTACT.LOCAL = { kdc = mercures2.benin.groupmediacontact.local admin_server = mercures2.benin.groupmediacontact.local default_domain = BENIN.GROUPMEDIACONTACT.LOCAL } [domain_realm] .kerberos.server = BENIN.GROUPMEDIACONTACT.LOCAL .benin.groupmediacontact.local = BENIN.GROUPMEDIACONTACT.LOCAL benin.groupmediacontact.local = BENIN.GROUPMEDIACONTACT.LOCAL 3- Configuration de Samba (Editer le fichier /etc/samba/smb.conf): #cp /etc/samba/smb.config /etc/samba/smb.conf.old (faire une sauvegarde du fichier de config) #nano /etc/samba/smb.conf #GLOBAL PARAMETERS [global] workgroup = GMC realm = BENIN.GROUPMEDIACONTACT.LOCAL server string = Serveur_de_Fichier preferred master = no os level = 20 security = ADS log file = /var/log/samba/%m max log size = 100 winbind enum users = Yes winbind enum groups = Yes winbind use default domain = Yes winbind nested groups = Yes winbind separator = \ idmap uid = 600-20000 idmap gid = 600-20000 template shell = /bin/bash obey pam restrictions = yes [profiles] path = /home/profiles read only = no 4- Configuration de nsswitch (Editer le fichier /etc/nsswitch.conf) : winbind permet de "mapper" les utilisateurs d'un domaine pour qu'ils soient accessibles par samba, sans que les utilisateurs Unix existent réellement. #cp /etc/nsswitch.conf /etc/nsswitch.conf.old (faire une sauvegarde du fichier de config) #/etc/nsswitch.conf passwd: compact winbind shadow: compact winbind group: compact winbind hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis Vérifier que la configuration DNS de dans /etc/nsswitch.conf n'a pas été modifié par l'installation d'un paquet quelconque. Si la ligne host ressemble à la ligne ci-dessous, la modifier pour qu'elle ressemble à la ligne juste après hosts: files dns mdns4_minimal [NOTFOUND=return] mdns #MAUVAIS!!! hosts: files dns #BON 5- Redémarrage des services : #service winbind stop #service samba restart #service winbind start #kinit admingmc (Vérification que le kerberos est bien configuré. Ensuite on fait une requête de jetons Kerberos :) #klist (On vérifie que nous avons bien récupéré un ticket valide) Les informations suivantes devraient s’afficher : Ticket cache: FILE:/tmp/krb5cc_0 Default principal: Admingmc@BENIN.GROUPMEDIACONTACTLOCAL Valid starting Expires Service principal 08/25/10 19:34:14 08/26/10 05:36:04 krbtgt/BENIN.GROUPMEDIACONTACTLOCAL@BENIN.GROUPMEDIACONTACTLOCAL renew until 08/26/10 19:34:14 Kerberos 4 ticket cache: /tmp/tkt0 klist: You have no tickets cached 6- Joindre la machine au domaine : #net ads join -W GMC -S mercures2 -U admingmc (ou net ads join –U Administrateur ; remplacer dans notre cas par le compte admin du domaine) Remplir le mot de passe La réponse doit-être sous cette forme : Joined ‘venus’ to realm ‘benin.groupmediacontact.local’ Vérification de la jonction (Ces 2 commandes doivent retourner les utilisateurs et les groupes de l'AD telle que reçu par winbind): #wbinfo -u #wbinfo -g vérifier qu'un utilisateur particulier est correctement reconnu : #wbinfo -a GMC\utilisateur%LeMotDePasse #wbinfo -i admingmc Ces 2 commandes doivent retourner les utilisateurs et les groupes avec leur uidNumber tels qu'interprété par le système Linux. Bien vérifier que l'on voit les utilisateurs de l'AD: administrator, krbtgt, etc. #getent passwd admingmc #getent group "administrateur" 7- Configuration de PAM (Editer le fichier nano /etc/pam.d/system-auth) : La configuration suivante n’est pas obligatoire pour le fonctionnement de samba, sauf si vous voulez utiliser les comptes AD pour se connecter sur le serveur Samba. Elles vont permettre aussi de créer automatiquement un dossier personnel lors de la première connexion de l’utilisateur AD au serveur, ou lors du premier accès au fichier partagé. Commençons par sauvegarder les fichiers configurations : #cp /etc/pam.d/common-account /etc/pam.d/common-account.old #cp /etc/pam.d/common-auth /etc/pam.d/common-auth.old #cp /etc/pam.d/common-session /etc/pam.d/common-session.old #vim /etc/pam.d/common-account (On édite le fichier "common-account" pour mettre ceci): account sufficient pam_winbind.so account required pam_unix.so #vim /etc/pam.d/common-auth (On édite le fichier "common-auth" pour mettre ceci): auth sufficient pam_winbind.so auth required pam_unix.so use_first_pass nullok_secure auth required pam_stack.so service=system-auth auth required pam_nologin.so #vim /etc/pam.d/common-session (On édite le fichier "common-session" pour mettre ceci): session required pam_selinux.so close session required pam_stack.so service=system-auth session required pam_loginuid.so session optional pam_console.so session required pam_selinux.so multiple open vérifier que les utilisateurs du domaine sont ajoutés à la liste des utilisateurs du serveur Linux avec les bons uid : #getent passwd la même chose avec les groupes d'utilisateurs : #getent group Chaque domaine à besoin d'un répertoire dans home, on va donc le créer avec #mkdir /home/GMC Vous pouvez désormais vous loger sur votre machine avec DOMAIN\login. Example: login: MONDOMAINE\seb Password: ***** ... MONDOMAINE\seb@xblade:~$ ============================================================================================================================================================= C- Dans le cadre de mise en place d'un serveur de fichier cette derniere étape est importante. cela ne cessitera de completer le fichier de samba (/etc/samba/smb.conf) et aussi creer les dossiers. #nano /etc/samba/smb.conf [partage] comment = Dossier pour les utilisateurs du domaine path = /home/partage browseable = yes writeable = yes create mask = 700 directory mask = 700 valid users = @\"DUMCA+utilisateurs du domaine\" (valid users = TESTDOMAIN.CO.UK\seanm, @"TESTDOMAIN.CO.UK\Domain Users") read only = yes write users = laguiah #mkdir /home/partage #chmod 777 /home/partage Voilà la configuration de samba est faite, mais on va quand même expliquer un peu. - NetBIOS name : Nom de la machine samba. - server string : Description du serveur samba. - Workgroup : Correspond au nom NetBIOS du domaine (n’oubliez pas de l’écrire en MAJUSCULE). - realm : Nom du domaine (n’oubliez pas de l’écrire en MAJUSCULE). - security : ce paramètre permet de déterminer quel type de sécurité samba doit appliquer sur les partages, nous avons mis ADS pour Active Directory Security. - obey pam restrictions = yes : Permet d’intégrer les comptes AD dans Pam. - invalid users = root : Pour plus de sécurité nous interdisons les connexions avec l’utilisateur root. - [partage] : Nom du dossier qui sera affiché sur le réseau. - comment : Description du dossier. - path : Désigne le chemin du dossier partagé. - browseable : Permet d’afficher ou de cacher le dossier sur le réseau. - writeable : Permet d’autoriser l’écriture dans le dossier. - valid users : Désigne les utilisateurs ou les groupes autorisés à accéder au répertoire. - [homes] : homes est un nom spécial, car il va afficher sur le réseau un dossier au nom du login. (exemple : nom de login : lrattif, le dossier lrattif sera affiché sur le réseau.