Ceci est une ancienne révision du document !
samba4
ce documents est en cours de rédaction, à partir de plusieurs sources parmi :
- wiki Samba : http://wiki.samba.org/index.php/Samba_AD_DC_HOWTO
- articles dans linux pratique n°79 de sept/oct 2013 (pages 68 à 73) et linux pratique n°80 de nov/déc (pages 70 à 76)
Introduction
Le projet Samba est surtout connut pour le partage de fichier. Samba 4 est une ré-écriture complète initiée en 2003 dans l'objectif de créer un contrôle de domaine libre. Il est agrémenté, en natif, d'un serveur DNS, LDAP, Kerberos, RPC et SMB 3.0. Cette documentation s'adresse principalement à des administrateurs réseau pour la mise en place d'un serveur de contrôle de domaine… bien qu'un parc familiale disposant d'un serveur peut utiliser aussi un contrôleur de domaine ! Ce document explique comment configurer Samba comme contrôleur de domaine (DC) compatible avec l'Active Directory (AD) de Microsoft ©, notamment pour l'utilisation de connexion de domaine de machines clientes tournants sous Microsoft Windows. En abréviation, nous utiliserons AD DC (Active Directory Domain Controler) Si vous réalisez une mise à niveau de votre AD DC, merci de consulter la procédure de mise à niveau de votre distribution ou reportez vous au guide mise à niveau d'une version source.
Versions
Samba est développé en continu. Ce guide est fréquemment mis à jour pour correspondre aux évolutions. Merci de vous référer à l'historique des versions stables de Samba pour plus d'informations. Prenez connaissance de la release notes de la version que vous avez installée. Elle peut contenir des informations importantes non contenues dans ce guide. Vous pouvez vérifier d'éventuelle installation précédente de samba en tapant :
dpkg -l samba
se reporter à la page dpkg pour plus d'informations
Installation de Samba
Différentes possibilités d'installation
Avant d'installer Samba 4, il est nécessaire de disposer d'autres paquets. Voici la ligne proposée sur https://wiki.samba.org/index.php/Samba_4/OS_Requirements
sudo 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 acl
Par ailleurs, il est nécessaire d'activer les ACL et les attributs étendus (usr_xattr), exemple de fstab :
UUID=243eb5b....... / ext4 default,acl,user_xattr,barrier=1 0 1
Vous disposez de deux possibilités pour installer Samba :
Installation avec votre gestionnaire de paquet
Cette solution, si elle a l'avantage d'être très simple, a l'inconvénient d'installer une version qui peut être ancienne, ce qui peut être gênant alors que le logiciel évolue rapidement. Ainsi, pour Precise (LTS 12.04), seule une version alpha est proposé pour test !
Compiler Samba vous-même à partir des sources
C'est la solution préconisée pour disposer de la dernière version de Samba4, utilisable en "production". N'hésitez pas à vous reporter à la page suivante : https://wiki.samba.org/index.php/Build_Samba
wget http://www.samba.org/samba/stable/samba-4.1.1.tar.gz tar xvzf samba-4.1.1.tar.gz cd samba-4.1.1 ./configure make && make install
en résumé, les lignes ci-dessus permettent de télécharger, décompresser, compiler puis lancer l'installation.
Nota : utiliser la dernière version si correction de sécurité, sinon, n'hésitez pas à prendre la version n-1 si la dernière version est trop fraîche !
Chemins (path)
Soyez prudent quand vous exécutez une commande Samba si vous avez déjà une version antérieure de Samba installée. Pour éviter d'exécuter une mauvaise version, vous devez définir les chemins des répertoires /usr/local/samba/bin/ et /usr/local/samba/sbin/ au tout début de votre variable $PATH !
export PATH=/usr/local/samba/bin:/usr/local/samba/sbin:$PATH
Vous pouvez voir la version de Samba que vous utilisez en exécutant :
samba -V
Informations du serveur
Pour le reste de ce guide, nous utiliserons les paramètres suivants pour le serveur
répertoire d'installation: /usr/local/samba/
nom du serveur: DC1
nom de domaine DNS: samdom.example.com (Ce sera aussi le nom de "royaume" ou realm)
nom de domaine NT4 : samdom
adresse IP : 192.168.1.1
rôle du serveur : DC (contrôleur de domaine)
Initialisation de Samba (configurer un nouveau domaine)
Cette initialisation crée une base de donnée. Cette opération est nécessaire lors de la configuration d'un nouveau contrôleur de domaine. Si vous souhaitez configurer le serveur Samba comme un contrôleur de domaine additionnel dans un domaine existant, référez-vous au guide Joining a Windows Domain Controller as an additional DC in a Domain.
Cette étape doit être réalisée par un utilisateur ayant les droits d'écriture sur le répertoire d'installation. Dans le cas contraire, cela générera des erreurs de permissions.
Pour lancer cette configuration, exécuter :
/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
Cela lance l'outil de configuration qui est interactif. Cette interactivité n'étant pas vrai pour certain paramètres, il est recommandé d'exécuter
samba-tool domain provision --help
afin d'avoir un aperçu des options complémentaires. L'option –use-rfc2307 active les attributs posix de l'AD de Samba. Cela crée aussi les informations NIS dans l'AD, ce qui vous permet d'administrer les UIDs/GIDs et autres paramètres UNIX (dans la table "Unix attributes" de l'ADUC…Active Directory Users and Computers). Il est plus simple de l'activer durant cette initialisation (Provisioning), plutôt que par la suite. De plus, même si vous n'en avez pas (encore) besoin, ça n'impacte pas votre installation. Notes importantes sur cette initialisation :
- La commande d'initialisation utilise le serveur DNS interne de Samba par défaut. Si vous souhaitez utiliser Bind comme serveur DNS d'arrière-plan, ajouter –dns-backend=BIND9_DLZ dans les options de commande. Cette décision est réversible. Vous pouvez changer de serveur arrière-plan à tout moment.
- Si vous ré-exécutez cette initialisation (provisioning), il est nécessaire de supprimer le fichier :
/usr/local/samba/etc/smb.conf
et éventuellement la base si elle a été généré, par :
rm -rf /usr/local/samba/private/*
- Le mot de passe d'administration doit correspondre aux règles établies, à savoir : au moins une majuscule, un chiffre et 8 caractères de long. Si vous ne spécifiez pas un mot de passe correspondant à ces critères, le script de configuration échouera et vous devrez recommencer avec un mot de passe correcte après avoir supprimé le contenu des répertoires suivants:
remove /usr/local/samba/private/ et /usr/local/samba/etc/
- Si votre site web est exemple.fr, le domaine de votre AD devrait être un sous-domaine, tel que sousdomain.exemple.fr (ou ad.exemple.fr…). Évitez d'utiliser exemple.fr en interne.
Mise à jour depuis un domaine Samba de type NT4 vers un AD
Si vous prévoyez la migration depuis un domain Samba NT4 existant vers un domaine Samba AD, reportez-vous à Classicupgrade HowTo (http://wiki.samba.org/index.php/Samba4/samba-tool/domain/classicupgrade/HOWTO)
Démarrer votre AD DC Samba
Note: si vous des services smbd, nmbd ou winbind d'une précédente installation, il est nécessaire de les arrêter avant de démarrer samba Si vous prévoyez d'utiliser samba comme serveur de production, tapez simplement :
/usr/local/samba/sbin/samba
Cela démarre samba en mode 'standard', ce qui est préconise en mode production.
Pour le démarrage automatique au démarrage du serveur, Samba ne dispose pas encore de scripts d'initialisation pour ubuntu, mais il y a des exemples de scripts sur la page Init-Script de Samba4.
Si vous exécutez samba a des fin de développement, exécuter :
/usr/local/samba/sbin/samba -i -M single
Cela démarrera Samba avec tous les messages log vers stdout, limite a un seul processus. Ce mode permet un débogage de Samba avec gdb :
gdb --args /usr/local/samba/sbin/samba -i -M single
Test de connexion a votre contrôleur de domaine AD Samba
Vérifiez tout d'abord que vous avez la bonne version de smbclient en tapant :
/usr/local/samba/bin/smbclient --version
Cela doit retourner un version commençant par "Version 4.x" Exécutez ensuite la ligne suivante pour lister les partages définis sur votre serveur:
/usr/local/samba/bin/smbclient -L localhost -U% Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.x.y)
le retour doit être similaire aux informations ci-dessus. Les partages netlogon et sysvol sont par défaut sur un serveur Active Directory et crée dans votre fichier de configuration smb.conf lors de la configuration initiale (provisioning) ou mise a jour. Si la commande échoue, redémarrer samba :
killall samba /usr/local/samba/sbin/samba
Pour vérifier que l'authentification fonctionne, vous devez essayer de vous connecter au partage netlogon en utilisant le compte Administrateur crée durant le configuration initial (provisioning). Le retour doit être similaire aux informations ci-dessous:
smbclient //localhost/netlogon -UAdministrator% -c 'ls' Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y] . D 0 Tue Dec 11 20:00:00 2012 .. D 0 Tue Dec 11 20:00:00 2012
Configuration du serveur DNS
Une configuration fonctionnelle du DNS est essentielle pour assurer le bon fonctionnement de Samba et de l'AD. Sans les bons paramètres, Kerberos ne fonctionnera pas, entraînant le non-fonctionnement de services de base! Une configuration hâtive, non fonctionnelle, vous fera perdre du temps pour définir la cause des dysfonctionnement du DNS. Pour gérer les paramètres DNS, vous pouvez utilisez l'utilitaire samba-tool (voire l'outil MMC DNS de Windows). Pour plus d'information, consulter DNS Administration et administrer Samba AD depuis windows
DNS Backends
Pour plus d'information sur la configuration du serveur DNS et trouver celle qui répond à vos besoins, consultez la page DNS
Serveur DNS interne à samba
Par défaut, Samba utilise son propre serveur DNS interne et aucune configuration supplémentaire n'est nécessaire.
Il est souvent nécessaire de définir le serveur DNS vers lequel renvoyer les demandes qui ne sont pas du ressort du DNS interne, pour cela ajouter :
dns forwarder = {adresse IP du serveur DNS vers lequel transmettre}
dans votre fichier smb.con puis redémarrer Samba.
Nota : cette ligne peut avoir été renseignée durant l'initialisation (provisioning) !
Pour que le serveur DNS interne puisse fonctionner, le port 53 udp/tcp ne doit pas être utilisé par d'autres programmes (tel qu'un autre serveur DNS, Dnsmasq, etc…). Vous aurez des erreurs dans le logfile si Samba ne peut utiliser le port 53, telle que :
Failed to bind to 0.0.0.0:53 TCP - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED
Pour vérifier quel programme est sur le port 53, exécuter avec les droit d'administrateur :
netstat -tunpe | grep ":53"
Interfaçage avec un serveur BIND
Configuration du fichier /etc/resolv.conf
Tests du serveur DNS
Configuration de Kerberos
La configuration de Kerberos se trouve dans le fichier krb5.conf. Ce fichier doit être déposé dans le répertoire /etc
Lors de l'initialisation, ce fichier est créé et déposé dans /usr/loca/samba/share/setup/krb5.conf. Son contenu par défaut est :
[libdefaults] default_realm = ${REALM} dns_lookup_realm = false dns_lookup_kdc = true
Note : is vous avez oublié votre nom de "royaume", exécutez
/usr/local/samba/bin/samba-tool testparm --suppress-prompt | grep realm
Tests de Kerberos
Configuration NTP
Informations optionnelles et complémentaires
Remonter vos succès/échecs
Contributeur principal : bcag2