Introduction
Samba permet d'implémenter le protocole propriétaire SMB/CIFS de Microsoft sous un environnement Unix et ses dérivés. Il offre la possibilité de partager des ressources dans un SI hétérogène Windows/Linux.
A partir de la version 3, Samba fournit le partage de fichiers/imprimantes et peut intégrer un domaine Active Directory en tant que membre. Il peut également être PDC (Primary Domain Controller) avec un niveau fonctionnel NT4.
A partir de la version 4, Samba peut servir de contrôleur de domaine Active Directory avec un niveau fonctionnel Windows Server 2008 et offre les services d'authentification AD. Des GPOs peuvent être déployées.
Dans cette procédure, une distribution Debian 10 et Samba en version 4 sont utilisées.
- Le serveur samba sera nommé : srv-samba
- Le domaine sera : domaine.local
- L'adresse IP du serveur samba sera : 192.168.1.10
Préparation
-
Modifier le nom du serveur en y indiquant le futur domaine :
sudo echo "srv-samba.domaine.local" > /etc/hostname # Pour la persistence après un reboot sudo hostname $(cat /etc/hostname) # Pour modifier le nom sans avoir à reboot
-
Attribuer une adresse IP fixe :
sudo vi /etc/network/interfaces # Exemple : # auto ens18 # iface ens18 inet static # address 192.168.1.10 # netmask 255.255.255.0 # gateway 192.168.1.254
-
Modifier le fichier hosts en conséquence :
sudo echo "192.168.1.10 srv-samba.domaine.local srv-samba" >> /etc/hosts
Installation et configuration de Samba
-
Installation des paquets nécessaires :
sudo apt -y install samba krb5-config winbind smbclient
- Modifier smb.conf pour utiliser les paramètres WINS fournis par DHCP ? : Non
- Royaume (« realm ») Kerberos version 5 par défaut : domaine.local
- Serveurs Kerberos du royaume : srv-samba.domaine.local
- Serveur administratif du royaume Kerberos : srv-samba.domaine.local
-
Samba est installé.
Création du domaine
-
Renommer le fichier de configuration principal de samba
/etc/samba/smb.conf
:sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.org
-
Provisionner le domaine :
sudo samba-tool domain provision
- Realm [DOMAINE.LOCAL]: Appuyer sur Entrée
- Domain [DOMAINE]: Appuyer sur Entrée
- Server Role (dc, member, standalone) [dc]: Appuyer sur Entrée
- DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: Appuyer sur Entrée (Le serveur DNS sera interne à Samba dans cette installation)
- DNS forwarder IP address (write 'none' to disable forwarding) [1.1.1.1]: Appuyer sur Entrée
- Administrator password: Saisir le mot de passe admin du domaine
- Retype password: Ressaisir le mot de passe admin du domaine
-
Le domaine est créé :
Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Unable to determine the DomainSID, can not enforce uniqueness constraint on local domainSIDs Adding DomainDN: DC=domaine,DC=local Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers and extended rights Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=domaine,DC=local Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink! Once the above files are installed, your Samba AD server will be ready to use Server Role: active directory domain controller Hostname: srv-samba NetBIOS Domain: DOMAINE DNS Domain: domaine.local DOMAIN SID: S-1-5-21-1555810112-1359199810-2012430263
Mise en service du domaine
-
Copier le fichier de configuration de kerberos dans le répertoire
/etc
:sudo cp /var/lib/samba/private/krb5.conf /etc/
-
Arrêter les services SMB, NMBD et Bind :
sudo systemctl stop smbd nmbd winbind
-
Désactiver les services SMB, NMBD et Bind :
sudo systemctl disable smbd nmbd winbind
-
Rendre visible le service
samba-ad-dc
:sudo systemctl unmask samba-ad-dc
-
Démarrer le service :
sudo systemctl start samba-ad-dc
-
Activer le service :
sudo systemctl enable samba-ad-dc
-
Vérifier le statut de Samba :
smbclient -L localhost -U%
-
Tout est OK :
Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.9.5-Debian) Reconnecting with SMB1 for workgroup listing. Server Comment --------- ------- Workgroup Master --------- ------- WORKGROUP SRV-SAMBA
-
Vérifier le niveau fonctionnel du domaine :
sudo samba-tool domain level show
-
Le niveau fonctionnel du domaine est Windows 2008 R2 :
Domain and forest function level for domain 'DC=domaine,DC=local' Forest function level: (Windows) 2008 R2 Domain function level: (Windows) 2008 R2 Lowest function level of a DC: (Windows) 2008 R2
Création utilisateur
-
Créer un 1er utilisateur dans l'annuaire :
sudo samba-tool user create superman
-
Indiquer le mot de passe de superman :
New Password: Retype Password: User 'superman' created successfully
Jonction au domaine
La jonction au domaine d'un poste Windows est identique qu'avec un contrôleur de domaine Microsoft. Les outils d'administrations (RSAT) peuvent être employé pour administrer les objets du domaine (dsa.msc), les gpo (gpmc.msc), le serveur dns (dnsmgmt.msc)...
Avec un DC Microsoft, un compte utilisateur du domaine peut être employé pour joindre un poste au domaine. Avec samba, le compte administrator doit être employé.