Samba4

De ordiwiki
Aller à : navigation, rechercher
Samba logo 4c-250x44.png


Samba4 en controleur de domaine active directory sous debian wheezy


Contexte

système : Debian GNU/Linux 7.0

samba4 : Version 4.0.0beta2


Installation

apt-get install samba4 samba4-clients


installation par compilation

installer les dépendances pour debian:

    apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev

recupérer les sources de samba4:

   apt-get install git-core
   git clone git://git.samba.org/samba.git samba4

compiler :

placez vous dans le fichier que vous venez de télécharger dans mon cas samba4

   cd /samba4
   ./configure --with-ads --with-shared-modules=idmap_ad
   make
   make install


attention pour la suite si vous avez compilé

tout est installé dans /usr/local/samba

Etape 1: Provision Samba ( génère un fichier de configuration smb.conf)

Au préalable modifier le nom du smb.conf existant ou supprimer le.

cd /usr/share/samba/setup/
./provision --realm vibe.loc --domain vibe --adminpass Ab1234* --server-role dc --dns backend=BIND9_FLATFILE

L'option flat-file pour le dns permet de générer des fichiers de zones lisible. ATTENTION au restriction pour le mot de passe.


si vous avez compilé l'outil provision fais parti de samba-tool

   /usr/local/samba/bin/samba-tool domain provision

remplir les différents champs:

   Realm []: samba.example.com
   Domain [samba]: samba
   Server Role (dc, member, standalone) [dc]: 
   DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: 
   DNS forwarder IP address (write 'none' to disable forwarding) [192.168.0.2]: 
   Administrator password: XXXX

pour pouvoir tester la connexion au domaine il faut ajouter ces 2 lignes à smb.conf

server services = +smb -s3fs
dcerpc endpoint servers = +winreg +srvsvc


service samba4 restart

Etape 2: Test de connexion

smbclient4 -L localhost -U%


doit retourner un champ du type :

       Sharename       Type      Comment
    ---------       ----      -------
    netlogon        Disk
    sysvol          Disk
    IPC$            IPC       IPC Service (Samba 4.0.0)

puis :

smbclient4 //localhost/netlogon -UAdministrator%'Ab1234*' -c 'ls'


qui retourne :

D        0  Thu Apr 11 10:04:55 2013
..                                  D        0  Thu Apr 11 10:05:08 2013
15735712 blocks of size 512. 12771544 blocks available

Etape 3: Configuration DNS

éditer le fichier /etc/bind/named.conf et y ajouter :

include "/var/lib/samba/private/named.conf";

Adapter le resolv.conf à votre configuration dans notre exemple :

domain vibe.loc
nameserver 127.0.0.1

service bind9 restart


test du serveur dns :

host -t SRV _ldap._tcp.vibe.loc


retourne :

_ldap._tcp.vibe.loc has SRV record 0 100 389 sambaAD.vibe.loc.

Etape 4: Kerberos

instalation :

apt-get install krb5-admin-server krb5-kdc


et test (ATTENTION le domaine en majuscule) :

kinit administrator@VIBE.LOC


puis :

klist


retour :

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@VIBE.LOC

Valid starting       Expires              Service principal
11/04/2013 10:32:24  11/04/2013 20:32:24  krbtgt/VIBE.LOC@VIBE.LOC
renew until 12/04/2013 10:32:13

Rôles FSMO

Une fonction de samba-tool vous permet d'afficher les détenteurs des différents rôles FSMO:

# samba-tool fsmo show

qui nous renvoit quelque chose comme ça:

InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC0003,CN=Servers,CN=HQ,CN=Sites,CN=Configuration,DC=smb,DC=d
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC0003,CN=Servers,CN=HQ,CN=Sites,CN=Configuration,DC=smb,DC=d
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC0003,CN=Servers,CN=HQ,CN=Sites,CN=Configuration,DC=smb,DC=d
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC0003,CN=Servers,CN=HQ,CN=Sites,CN=Configuration,DC=smb,DC=d
SchemaMasterRole owner: CN=NTDS Settings,CN=DC0003,CN=Servers,CN=HQ,CN=Sites,CN=Configuration,DC=smb,DC=d

Vous pouvez assigner les roles FSMO a votre controleur de domaine sous Samba4.
Vous pouvez utiliser les outils habituels de l'AD (consoles Utilisateurs et Ordinateurs Active Directory, Schéma Active Directory, Domaines et Approbations Active Directory ou encore ntdsutil).
Vous pouvez également utiliser les outils Linux avec la commande suivante :

# samba-tool transfer --role= ...

et l'instant d'après:

FSMO transfer of 'infrastructure' role successful

Vous pouvez choisir de transférer l'un des rôles suivants que vous spécifierez après --role= : rid, schema, naming, pdc, infrastructure
ou tous à la fois: --role=all Ceci étant dit, vous pouvez aussi être amené a devoir "saisir" les rôles si le serveur qui les portait n'est plus disponible, sur le même principe on utilise une fonction de samba-tool:

# samba-tool fsmo seize --role=...

Cette dernière commande peut renvoyer une erreur malgré un "seize" réussi:

Attempting transfer...
FSMO transfer of 'pdc' role successful
ERROR: Failed to initiate role seize of 'pdc' role: objectclass: modify message must have elements/attributes!

Ceci est un bug référencé: https://bugzilla.samba.org/show_bug.cgi?id=9461

Etape 5: Inclusion d'un client windows 7 au domaine

Une fois inclus il est possible d'installer les “Remote server administration tool” et donc d'administrer son active directory GNU/lLinux depuis les consoles Microsoft…alors ? elle est pas belle la vie !


Etape 6: Inclusion d'un client linux au domaine

http://ordiwiki.com/index.php/Clients_active_directory_sous_samba4 [1]

Limitations

La replication du Sysvol n'est pas (encore?) prise en charge sous Samba4. Une alternative consiste a repliquer son contenu via le tool Rsync (ou un autre)


A noter que les modifications de schéma sont experimentales sur un DC sous Samba4 et constitue une limitation majeure dans l'adoption d'une telle solution.
Néanmoins, il existe une option à ajouter dans /usr/local/samba/etc/smb.conf pour autoriser les réplications du schéma:

dsdb: schema update allowed = yes

Il va de soi que nous vous invitons à bien tester ce genre de manipulation avant application sur un environnement de production.

Source

https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO [2]

https://wiki.samba.org/index.php/Samba_4/OS_Requirements [3]

http://www.ordinoscope.net/index.php/Informatique/Softwares/Samba4/Installation/Compiler_et_installer_Samba4 [4]

https://wiki.samba.org/index.php/Samba4/Winbind [5]