Travaux Pratiques BTS SIO – Synchronisation d’utilisateurs Active Directory avec SAMBA

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

## 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

mkdir /mnt/partage
mount -t vmhgfs .host:/ /mnt/partage

Virtualbox

mkdir /mnt/partage
mount -t vboxsf NOMDUPARTAGEVB /mnt/partage

puis installez sur votre debian les deux package suivant : samba winbind

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 system windows serveur 2008

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

gedit /etc/network/interfaces

En cas de soucis, redemarrez votre service Network avec

/etc/init.d/networking restart

Vous devriez y voir cette configuration

# 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:

 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 :

gedit /etc/hostname

Votre fichier doit contenir le nom de la machine que vous souhaitez donner à votre SAMBA.

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

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

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

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)

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.

[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

/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.

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.

[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.

samba rejoindre active directory

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.)

samba mise a jour dns

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

# 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

# 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

# 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

/etc/init.d/winbind restart

Vous pouvez maintenant lister vos utilisateurs via la commande

wbinfo -u

resultat winbind active directory utilisateurs et groupes

Ou lister vos groupes d’utilisateurs via la commande

wbinfo -g

Essayez une authentification avec un compte de votre domaine

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.

getent passwd
getent group

Une réflexion sur « Travaux Pratiques BTS SIO – Synchronisation d’utilisateurs Active Directory avec SAMBA »

Laisser un commentaire