Partie 1 : Configuration de Debian avec votre Active Directory
Dans le cadre du PPE il est demandé de réaliser des travaux avec la mise en pratique de divers compétences. Dans ce sujet nous avons en place un Windows Server 2008 avec nos utilisateurs et nous désirons installer un serveur de fichiers SAMBA via la distribution Linux DEBIAN 6.0.3.
Mettez à jour votre Debian avec la commande « aptitude update » puis « aptitude dist-upgrade », mettez à jour vos source./etc/apt/sources.list
Si vous possédez des problèmes de dépendances, effectuez un apt-get install -f
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ## squeeze deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free ## squeeze multimedia deb http://www.debian-multimedia.org squeeze main non-free deb-src http://mirror.home-dn.net/debian-multimedia squeeze main # squeeze security deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free # squeeze update deb http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free |
Pour plus de confort vous pouvez créer un nouveau dossier partagé entre votre host et votre machine virtuelle via la commande :
Vmware
1 2 | mkdir /mnt/partage mount -t vmhgfs .host:/ /mnt/partage |
Virtualbox
1 2 | mkdir /mnt/partage mount -t vboxsf NOMDUPARTAGEVB /mnt/partage |
puis installez sur votre debian les deux package suivant : samba winbind
1 | apt-get install samba winbind krb5-user libpam-krb5 |
Configuration Windows Serveur 2008
- Nom de l’ordinateur: SRV1PPEGR5
- Nom Complet: SRV1PPEGR5.SRV1.PPEGR5.LOCAL
- Domaine: SRV1.PPEGR5.LOCAL
Adressage IP Windows Serveur 2008
- IP: 10.0.0.100
- Masque: 255.0.0.0
- Paserelle: 10.0.0.100
- DNS: 127.0.0.1
Configuration Debian
- Nom de l’ordinateur: SAMBALOCAL
- Nom Complet: SAMBALOCAL.SRV1.PPEGR5.LOCAL
- Domaine: SRV1.PPEGR5.LOCAL
Adressage IP Debian 6.0.3
- IP: 10.0.0.99
- Masque: 255.0.0.0
- Paserelle: 10.0.0.100
- DNS: 10.0.0.100
Si vous utilisez une interface graphique, vous pouvez utiliser l’utilitaire de gestion des paramètres du réseau disponible via Système/Administration/Réseau.
Sinon préferez l’interface console avec
1 | gedit /etc/network/interfaces |
En cas de soucis, redemarrez votre service Network avec
1 | /etc/init.d/networking restart |
Vous devriez y voir cette configuration
1 2 3 4 5 6 7 8 9 10 11 | # The loopback network interface auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.0.99 netmask 255.255.255.0 gateway 10.0.0.254 dns-domain 10.0.0.100 dns-nameservers 10.0.0.100 |
Si vous désirez repasser en dhcp utilisez cette configuration:
1 2 3 | auto eth0 allow-hotplug eth0 iface eth0 inet dhcp |
Je marque votre attention sur le fait que les majuscules ne sont pas à ignorer lorsque vous travaillez sur le TP, Linux est très senssible à cela. Veillez à bien respecter la mise en forme.
Le fichier de configuration /etc/hostname Vous permet de configurer le nom de votre Machine Debian, équivalent du nom d’ordinateur sous Windows, pour éditer le fichier utilisez simplement la commande suivante :
1 | gedit /etc/hostname |
Votre fichier doit contenir le nom de la machine que vous souhaitez donner à votre SAMBA.
1 | SAMBALOCAL |
Une fois en place votre nom netbios doit être déclaré dans votre DNS comme sur la capture d’écran ci-dessous.
Le fichier de configuration /etc/hosts permet la résolution du nom d’hôte de vos machines. Vous devez ainsi créer 3 entrées. Pour éditer le fichier utilisez simplement la commande suivante
1 | gedit /etc/hosts |
Dans ce fichier vous devez insérer (une par ligne) les noms à résoudre. Dans mon projet PPE il s’agit de
1 2 3 4 | 127.0.0.1 localhost.localdomain localhost 10.0.0.100 SRV1PPEGR5.SRV1.PPEGR5.LOCAL SRV1PPEGR5 10.0.0.99 SAMBALOCAL.SRV1.PPEGR5.LOCAL SAMBALOCAL 10.0.0.100 SRV1.PPEGR5.LOCAL SRV1.PPEGR5. |
/etc/resolv.conf
1 2 3 | domain SRV1.PPEGR5.LOCAL search SRV1.PPEGR5.LOCAL nameserver 10.0.0.100 |
Synchronisez l’heure de votre Debian avec votre Active directory (Très important)
1 | net time set -S 10.0.0.100 |
Le fichier /etc/samba/smb.conf vous permet de configurer votre serveur Samba, nous allons débuter par les paramètres globaux, nous configurerons les partages dans un autre billet.
Le nom netbios est le nom que possède votre debian sur le reseau, il s’agit du nom que vous avez renseigné lors de la configuration de /etc/hostname.
Le Realm est votre nom de domaine complet. Et le Workgroup est votre « Unité d’organisation », reprenez simplement la première occurrence de votre domaine.
L’option security spécifie que vous allez utiliser un « active directory » via le « ads » et le password server correspond à l’IP de votre Controleur de Domaine.(Ici 10.0.0.100, il s’agit de l’ip de votre machine Active directory)
Le reste des paramètres globaux ne sont pas à modifier.
Smb.conf : Si vous avez un soucis de droit d’accès au dossier c’est ici qu’il faut vérifier votre configuration, pensez également à appliquer un chmod -R 777 « votredossier » afin de réintialiser les droits pour samba sur vos dossiers de partage. Le -R applique récursivement les droits sur les dossiers enfants.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | [global] netbios name = SAMBALOCAL server string = Samba Server realm = SRV1.PPEGR5.LOCAL workgroup = SRV1 password server = 10.0.0.100 security = ADS idmap uid = 10000-20000 idmap gid = 10000-20000 winbind separator = + template shell = /bin/bash winbind use default domain = true winbind offline logon = false preferred master = no server string = Samba Server version %v encrypt passwords = yes log level = 3 log file = /var/log/samba/%m max log size = 50 printcap name = cups printing = cups winbind enum users = Yes winbind enum groups = Yes winbind nested groups = Yes # Nom du patage [Commun] # Commentaire du partage comment = Partage Document pour Tous # Chemin du partage path = /partage/partage_commun # Lecture seul : Non read only = no # Navigable = Oui browseable = yes # Invité : Non guest ok = no # lors de la création d'un fichier, tous le monde peut le modifier create mask = 0777 #lors de la création d'un répertoire, tous le monde peut le modifier directory mask = 0777 [Direction] comment = Partage reserve direction path = /partage/direction read only = no browseable = yes guest ok = no create mask = 0777 directory mask = 0777 valid users = "@DOMAINE+admins du domaine","@DOMAINE+informatique", "@DOMAINE+direction" [Informatique] comment = Partage reserve Au service Informatique path = /partage/informatique read only = no browseable = yes guest ok = no create mask = 0777 directory mask = 0777 valid users = "@DOMAINE+admins du domaine","@DOMAINE+informatique" [Comptabilite] comment = Partage reserve a la Compatabilité path = /partage/comptabilite read only = no browseable = yes guest ok = no create mask = 0777 directory mask = 0777 valid users = "@DOMAINE+admins du domaine","@DOMAINE+informatique", "@DOMAINE+comptabilité" [Bureau D'étude] comment = Partage reserve au bureau d'étude path = /partage/bureau_etude read only = no browseable = yes guest ok = no create mask = 0777 directory mask = 0777 valid users = "@DOMAINE+admins du domaine","@DOMAINE+informatique", "@DOMAINE+Bureau d'étude" |
Redémarrez Samba avec
1 | /etc/init.d/samba restart |
Le fichier /etc/nsswitch.conf assure la jonction sur l’athentification, sur quoi il se base pour l’authentification ici on lui indiquera WinBind afin que Winbind s’occupe de la liaison avec l’annuaire de votre AD.
1 2 3 | passwd: compat winbind group: compat winbind shadow: compat |
Le fichier /etc/krb5.conf permet de configurer Kerberos. C’est est un protocole d’authentification réseau qui se base sur l’attribution de « ticket » plutot que d’un mot de passe.
Ici, vous devez adapter les lignes default_realm, ainsi que les blocs, realms et domain_realm. Votre default_realm doit être similaire à celui présent dans votre smb.conf, il s’agit de votre nom de domaine complet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | [libdefaults] default_realm = SRV1.PPEGR5.LOCAL dns_lookup_realm = false dns_lookup_kdc = false default_keytab_name = /etc/krb5.keytab [realms] SRV1.PPEGR5.LOCAL = { kdc = SRV1PPEGR5.SRV1.PPEGR5.LOCAL admin_server = SRV1PPEGR5.SRV1.PPEGR5.LOCAL default_domain = PPEGR5.LOCAL } [domain_realm] .SRV1.PPEGR5.LOCAL = SRV1.PPEGR5.LOCAL [appdefaults] pam = { ticket_lifetime = 1d renew_lifetime = 1d forwardable = true proxiable = false retain_after_close = false minimum_uid = 0 debug = false } [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/kdc.log admin_server = FILE:/var/log/kadmin.log |
Votre debian est maintenant configuré correctement, on peut ajouter le SAMBA au domaine. Utilisez la précédure décrire ci-dessous.
Elle est bien entendu à adapter selon votre configuration, mon utilisateur « administrateur » est mon admin de domaine. Pensez à l’adapter selon votre compte.
1 2 | net ads join -U administrateur net ads join -U administrateur -S SRV1.PPEGR5.LOCAL |
Si vous recevez un message d’erreur du type ci-dessous vérifiez la configuration de votre DNS, et veillez à avoir ajouté une entrée pour votre SAMBA.(Voir capture d’écran ci-dessous.)
1 | No DNS domain configured for '(servername)'. Unable to perform DNS Update. DNS update failed! |
Il nous reste à cette étape 3 fichiers à modifier pour avoir la synchronisation entre notre active directory et notre Debian. Editez donc les fichiers ci-dessous en remplacant comme ci-dessous.
/etc/pam.d/common-account
1 2 3 4 5 6 7 8 9 10 11 | # here are the per-package modules (the "Primary" block) account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so # here's the fallback if no module succeeds account requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around account required pam_permit.so # and here are more per-package modules (the "Additional" block) # end of pam-auth-update config |
/etc/pam.d/common-auth
1 2 3 4 5 6 7 8 9 10 11 | # here are the per-package modules (the "Primary" block) auth [success=2 default=ignore] pam_unix.so nullok_secure auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass # here's the fallback if no module succeeds auth requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around auth required pam_permit.so # and here are more per-package modules (the "Additional" block) # end of pam-auth-update config |
/etc/pam.d/common-session
1 2 3 4 5 6 7 8 9 10 11 12 13 | # here are the per-package modules (the "Primary" block) session [default=1] pam_permit.so # here's the fallback if no module succeeds session requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around session required pam_permit.so # and here are more per-package modules (the "Additional" block) session required pam_unix.so session optional pam_winbind.so session optional pam_ck_connector.so nox11 # end of pam-auth-update config |
Redémarrez WinBind
1 | /etc/init.d/winbind restart |
Vous pouvez maintenant lister vos utilisateurs via la commande
1 | wbinfo -u |
Ou lister vos groupes d’utilisateurs via la commande
1 | wbinfo -g |
Essayez une authentification avec un compte de votre domaine
1 | wbinfo -a direction.un%mdpdirection |
Testez maintenant la synchronisation entre Winbind et Nsswitch avec passwd qui vous indiquera la liste de vos utilisateurs et group qui vous lisetra vos groupes active directory et samba.
1 2 | getent passwd getent group |
Un commentaire