GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer le contrôleur de domaine Linux à l'aide de Samba sur Ubuntu

SAMBA est une implémentation open source du protocole de partage de fichiers SMB qui fournit des services de fichiers et d'impression aux clients SMB/CIFS. Il aide à mettre en réseau avec succès votre système Ubuntu avec les clients Windows, fournissant et intégrant ainsi des services communs aux environnements Windows. Ces services facilitent le partage de données et d'informations sur les ordinateurs et les utilisateurs impliqués dans le réseau, et peuvent être classés en trois grandes catégories en termes de fonctionnalité

Services de partage de fichiers et d'imprimantes : Il utilise le protocole Server Message Block (SMB) pour faciliter le partage de fichiers, dossiers, volumes et imprimantes sur le réseau.

Services d'annuaire : Il partage des informations vitales sur les ordinateurs et les utilisateurs du réseau à l'aide du protocole LDAP (Lightweight Directory Access Protocol) et de Microsoft Active Directory.

Authentification et accès : Il établit l'identité d'un ordinateur ou d'un utilisateur du réseau et détermine les informations auxquelles l'ordinateur ou l'utilisateur est autorisé à accéder à l'aide des autorisations de fichiers, des stratégies de groupe et du service d'authentification Kerberos.

Dans ce didacticiel, nous apprenons à configurer un contrôleur de domaine Linux à l'aide de samba sur Ubuntu 16.04.

Samba en tant que DC AD nécessite au moins la version 4.0.0. Je recommande fortement d'utiliser la dernière version stable de Samba car elle contiendra des corrections de bogues des versions précédentes et de nombreuses améliorations de la compatibilité Microsoft Active Directory et des fonctionnalités supplémentaires.

Le principal avantage de cette utilisation est que nous n'avons pas besoin d'installer un KDC Kerberos séparé. Samba inclut un KDC compatible AD et sa propre implémentation LDAP pour les back-ends AD.

Pré-requis

  • Assurez-vous que votre serveur est configuré pour utiliser une adresse IP statique. DHCP peut causer des problèmes si l'adresse change.
  • Mettre à jour votre resolv.conf avec les serveurs de noms appropriés.
  • Mettez à jour votre fichier /etc/hosts avec les entrées appropriées. Votre nom d'hôte doit correspondre à l'adresse IP du serveur.

Commençons par les pré-requis. Je vais vous montrer comment j'ai modifié les paramètres de mon serveur pour satisfaire nos conditions préalables.

1) Vous devez configurer votre interface réseau pour une adresse IP statique. Modifiez le fichier /etc/network/interfaces avec l'adresse IP de votre serveur "96.126.107.141", le nom du contrôleur de domaine "nodenixbox.com" et d'autres détails comme ci-dessous :

root@ubuntu:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 96.126.107.141
netmask 255.255.255.0
network 96.126.107.0
broadcast 96.126.107.255
gateway 96.126.107.1
dns-nameservers 96.126.107.141 8.8.8.8
dns-search nodenixbox.com

# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto

J'ai changé iface eth0 inet dhcp en iface eth0 inet static et ajouté ces parties en surbrillance à ma configuration réseau.

2) Modifiez votre fichier resolv.conf pour ajouter le nom de votre contrôleur de domaine.

root@ubuntu:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 96.126.107.141
nameserver 8.8.8.8
nameserver 207.192.69.4
search nodenixbox.com

3) Enfin, modifiez notre fichier /etc/hosts et définissez "ubuntu.nodenixbox.com" comme nom d'hôte comme ci-dessous :

root@ubuntu:~# cat /etc/hosts
127.0.0.1 localhost
#127.0.1.1 ubuntu.members.linode.com ubuntu
96.126.107.141 ubuntu.nodenixbox.com ubuntu

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

root@ubuntu:~# echo ubuntu.nodenixbox.com > /etc/hostname

root@ubuntu:~# /etc/init.d/networking restart
[ ok ] Restarting networking (via systemctl): networking.service.

Redémarrez votre réseau après ces modifications.

Nous sommes donc prêts à commencer l'installation des packages.

Installation des packages

Tout d'abord, nous devons installer tous les packages requis pour configurer notre annuaire actif de contrôleur de domaine. J'exécute cette commande pour mettre à jour tous les packages logiciels de mon serveur et installer les logiciels requis.

root@ubuntu:~# apt-get update && apt-get upgrade -y

root@ubuntu:~# apt-get install git attr build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl ntp ntpdate winbind

Lors de l'installation de ces packages, des informations sur Kerberos vous seront demandées. Vous devez fournir vos informations de domaine et de serveur d'administrateur par défaut Kerberos. Vous pouvez saisir votre domaine par défaut en tant que nodenixbox.com et le nom du serveur administrateur en tant que nom d'hôte.

Comment installer et configurer SAMBA

Vous devez télécharger les derniers packages Samba à l'aide des référentiels git dans le dossier "samba4".

root@ubuntu:~# git clone -b v4-1-stable git://git.samba.org/samba.git samba4
Cloning into 'samba4'...
remote: Counting objects: 1276826, done.
remote: Compressing objects: 100% (280630/280630), done.
remote: Total 1276826 (delta 992350), reused 1267276 (delta 984263)
Receiving objects: 100% (1276826/1276826), 249.03 MiB | 10.51 MiB/s, done.
Resolving deltas: 100% (992350/992350), done.
Checking connectivity... done.

Une fois téléchargé, vous pouvez entrer dans le dossier "samba4" et configurer votre package Samba.

root@ubuntu:~#cd samba4
root@ubuntu:~#./configure --enable-debug --enable-selftest
root@ubuntu:~#make
root@ubuntu:~/samba4# make
WAF_MAKE=1 python ./buildtools/bin/waf build
Waf: Entering directory `/root/samba4/bin'
Selected embedded Heimdal build
Waf: Leaving directory `/root/samba4/bin'
'build' finished successfully (6.288s)
root@ubuntu:~#make install

La compilation SAMBA peut prendre un certain temps. Une fois cela fait, confirmez avec la version du client SAMBA et SMB. Ces deux versions doivent correspondre.

root@ubuntu:~# /usr/local/samba/sbin/samba -V
Version 4.1.23
root@ubuntu:~# /usr/local/samba/bin/smbclient -V
Version 4.1.23

Provisionnement de l'Active Directory Samba

La prochaine étape consiste à provisionner votre domaine. Vous pouvez simplement exécuter cette commande pour provisionner votre domaine.

root@ubuntu:~/samba4# /usr/local/samba/bin/samba-tool domain provision --realm=nodenixbox.com --domain=nodenixbox --adminpass="password" --server-role=dc --dns-backend=SAMBA_INTERNAL
Looking up IPv4 addresses
Looking up IPv6 addresses
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
Adding DomainDN: DC=nodenixbox,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
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=nodenixbox,DC=com
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 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: ubuntu
NetBIOS Domain: NODENIXBOX
DNS Domain: nodenixbox.com
DOMAIN SID: S-1-5-21-4019752003-3807572232-1148719748

Certains utilisent Bind9 comme DNS principal, mais SAMBA contient son propre serveur DNS entièrement fonctionnel. Ici, j'utilise SAMBA_INTERNAL. Nous devons démarrer le service SAMBA après avoir défini ce domaine. Vous pouvez exécuter cette commande pour démarrer SAMBA.

root@ubuntu:~# /usr/local/samba/sbin/samba
root@ubuntu:~#

Tester votre contrôleur de domaine Samba

Nous pouvons exécuter "smbclient", pour vérifier si Samba fournit les partages par défaut AD DC "netlogon" et "sysvol", qui ont été créés dans votre "smb.conf" lors du provisioning.

root@ubuntu:~# /usr/local/samba/bin/smbclient -L localhost -U%
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]

Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (ubuntu server (Samba, Ubuntu))
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.3.11-Ubuntu]

Server Comment
--------- -------
UBUNTU ubuntu server (Samba, Ubuntu)

Workgroup Master
--------- -------
WORKGROUP UBUNTU

Pour tester si l'authentification fonctionne, vous devez essayer de vous connecter au partage "netlogon", en utilisant le compte d'administrateur de domaine qui a été créé lors du provisioning.

root@ubuntu:~/samba4# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password:
Domain=[NODENIXBOX] OS=[Unix] Server=[Samba 4.1.23]
. D 0 Sun Oct 16 09:30:02 2016
.. D 0 Sun Oct 16 09:31:09 2016

47431 blocks of size 524288. 40274 blocks available

Configurer le DNS SAMBA_INTERNAL

Un DNS fonctionnel est essentiel au bon fonctionnement d'un Active Directory. Sans les bonnes entrées DNS, Kerberos ne fonctionnera pas, ce qui signifie que de nombreuses fonctionnalités de base ne fonctionneront pas. Cela vaut toujours la peine de consacrer un peu plus de temps à la configuration de votre DNS pour vous assurer qu'elle est correctement effectuée.

Nous devons modifier notre /etc/resolv.conf avec notre nom de domaine comme ci-dessous :

root@ubuntu:~#echo domain nodenixbox.com >> /etc/resolv.conf

Votre contrôleur de domaine nécessite un serveur de noms capable de résoudre les requêtes vers les zones Active Directory. Parce qu'il s'agit de votre premier contrôleur de domaine dans votre forêt AD.

Vous devez également modifier votre fichier de configuration samba "/usr/local/samba/etc/smb.conf" et ajouter google nameserver au dns_forwarder.

root@ubuntu:~# cat /usr/local/samba/etc/smb.conf
# Global parameters

[global]

groupe de travail =NODENIXBOXrealm =NODENIXBOX.COM nom netbios =rôle de serveur UBUNTU =contrôleur de domaine Active Directory transitaire DNS =8.8.8.8

Tester votre DNS

Pour confirmer que DNS fonctionne correctement, exécutez les commandes suivantes et comparez la sortie

root@ubuntu:~# host -t SRV _ldap._tcp.nodenixbox.com
_ldap._tcp.nodenixbox.com has SRV record 0 100 389 ubuntu.nodenixbox.com

root@ubuntu:~# host -t SRV _kerberos._udp.nodenixbox.com.
_kerberos._udp.nodenixbox.com has SRV record 0 100 88 ubuntu.nodenixbox.com.

root@ubuntu:~# host -t A ubuntu.nodenixbox.com
ubuntu.nodenixbox.com has address 96.126.107.141

Configurer Kerberos

Kerberos est une partie importante d'Active Directory. Généralement, la configuration se fait dans /etc/krb5.conf. Pendant le provisionnement, un exemple de configuration de travail sera créé dans /usr/local/samba/share/setup/krb5.conf . Vous pouvez remplacer votre fichier krb5.conf par l'exemple en copiant ou en créant un lien symbolique.

root@ubuntu:~# ln -s /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf

Vous devrez éditer ce fichier et modifier le default_realm avec votre nom DC comme ci-dessous :

root@ubuntu:~# cat //etc/krb5.conf

[libdefaults]

default_realm =NODENIXBOX.COMdns_lookup_realm =falsedns_lookup_kdc =true

Le nom de domaine doit être en MAJUSCULES.

Tester Kerberos

Vous pouvez utiliser kinit pour tester votre configuration Kerberos. Exécutez cette commande comme ci-dessous pour tester :

root@ubuntu:~# kinit [email protected]
Password for [email protected]:
Warning: Your password will expire in 41 days on Sun 27 Nov 2016 09:31:07 AM UTC

Vous devez désactiver l'expiration du mot de passe pour l'utilisateur administrateur Active Directory en exécutant cette commande pour éviter de futurs problèmes d'authentification.

root@ubuntu:~# /usr/local/samba/bin/samba-tool user setexpiry administrator --noexpiry
Expiry for user 'administrator' disabled.

Remarque :Vous devez toujours spécifier votre domaine en lettres majuscules. Pour vérifier le fonctionnement de Kerberos, vous pouvez l'exécuter.

root@ubuntu:~# klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting Expires Service principal
10/17/2016 04:19:31 10/17/2016 14:19:31 krbtgt/[email protected]
renew until 10/18/2016 04:19:19, Etype (skey, tkt): arcfour-hmac, arcfour-hmac

Création de votre dossier d'accueil utilisateur

Vous pouvez maintenant créer vos dossiers de départ utilisateur et définir les autorisations et les propriétés appropriées.

root@ubuntu:~# mkdir -m 770 /Users
root@ubuntu:~# chmod g+s /Users
root@ubuntu:~# chown root:users /Users

Ensuite, vous devez éditer votre fichier de configuration SMB "/usr/local/samba/etc/smb.conf" comme ci-dessous :

[Users]
directory_mode: parameter = 0700
read only = no
path = /Users
csc policy = documents

Configurer NTP

Active Directory nécessite une synchronisation étroite de l'heure entre toutes les machines participantes pour que Kerberos fonctionne correctement. Il est fortement recommandé d'utiliser NTP sur votre contrôleur de domaine pour la synchronisation de l'heure. Cette documentation vous fournira toutes les informations nécessaires pour configurer NTP sur un contrôleur de domaine AD.

Conclusion

Enfin, nous avons créé notre contrôleur de domaine Active Directory sur un serveur Ubuntu 16.04. Vous pouvez créer votre propre répertoire DC Active et le partager sur le réseau. Un avantage majeur de cette configuration est la possibilité de centraliser les informations d'identification des utilisateurs et des machines. Il a plusieurs autres avantages. Certains des principaux avantages sont les suivants :

  • Il maintient une liste des utilisateurs qui peuvent accéder au réseau dans un répertoire actif et détermine les fichiers auxquels les utilisateurs peuvent accéder et ce qu'ils peuvent faire avec ces fichiers.
  • En plus de la sécurité et de la commodité, les contrôleurs de domaine offrent de la rapidité en libérant les ressources des ordinateurs individuels des fonctions de serveur, ce qui améliore en fin de compte les performances de la machine cliente.
  • Il fournit également un journal de sécurité complet requis pour la sécurité et l'audit du système.

Ubuntu
  1. Comment décompresser un fichier ZIP dans Ubuntu / Linux

  2. Comment redémarrer le réseau sur Ubuntu 16.04 Xenial Xerus Linux

  3. Comment configurer Samba en tant que contrôleur de domaine principal sous Linux

  4. Comment sauvegarder la configuration du contrôleur de domaine Samba sous Linux

  5. Comment copier un fichier via FTP en utilisant Ubuntu Linux ?

Comment créer un fichier sous Linux à l'aide de la commande Cat

Comment configurer un VPN sur Ubuntu

Comment installer et configurer Samba sur Ubuntu

Comment télécharger un fichier sur Ubuntu Linux à l'aide de la ligne de commande

Comment configurer la liaison réseau dans Ubuntu 20.04

Comment créer un fichier dans Ubuntu Linux à l'aide de la commande et de l'interface graphique