GNU/Linux >> Tutoriels Linux >  >> Linux

Comment effectuer une installation de Samba Active Directory sur Linux

Avez-vous besoin d'une gestion de domaine centralisée pour vos réseaux, mais n'êtes pas désireux d'utiliser un serveur Windows et de payer le coût de licence supplémentaire ? Samba Active Directory est l'une des meilleures alternatives gratuites que vous pouvez essayer sous Linux.

Samba est une solution open source principalement connue pour son serveur de fichiers réseau et ses services d'impression. Mais depuis la version 4.0, Samba vous permet également de provisionner le rôle de serveur Active Directory.

Ce tutoriel vous apprendra comment installer et configurer Samba Active Directory sur Ubuntu 20.04. Préparez-vous et lancez-vous !

Prérequis

Ce poste est une démonstration pratique. Si vous souhaitez suivre, vous aurez besoin des exigences suivantes.

  • Un serveur Ubuntu 20.04. Tout au long de ce tutoriel, le nom du serveur sera dc1 , le domaine sera example.com , et l'adresse IP est 172.16.1.10 .
  • Un compte utilisateur avec des privilèges sudo.
  • Un ordinateur Windows 10 sur le même réseau que le serveur Ubuntu.

Configuration du nom d'hôte du serveur

La première étape consiste à configurer l'identité du serveur dans le réseau. Pour ce faire, vous devrez attribuer le nom d'hôte et le nom de domaine complet (FQDN) du serveur en suivant les étapes ci-dessous.

1. Tout d'abord, connectez-vous à votre serveur Ubuntu et ouvrez la session de terminal.

2. Ensuite, exécutez le hostnamectl commande ci-dessous pour changer le nom d'hôte de votre serveur. La commande ci-dessous change le nom d'hôte en dc1 .

# set up the hostname
hostnamectl set-hostname dc1

3. Maintenant, ouvrez le /etc/hosts fichier à modifier à l'aide de votre éditeur préféré, tel que nano . Dans le fichier, ajoutez une entrée spécifiant l'adresse IP du serveur , FQDN , et nom d'hôte dans ce format – server-IP hostname.domain.com hostname .

Pour cet exemple, l'entrée du fichier hosts est :# setup FQDN dc1.example.lan 172.16.1.10 dc1.example.lan dc1

# setup FQDN dc1.example.lan
172.16.1.10 dc1.example.lan dc1

Après avoir ajouté la nouvelle entrée, enregistrez et quittez le fichier.

4. Enfin, exécutez la commande ci-dessous pour vérifier le FQDN du serveur Samba. # verify FQDN hostname -f # verify FQDN is resolved to the Samba IP address ping -c3 dc1.example.lan

# verify FQDN
hostname -f

# verify FQDN is resolved to the Samba IP address
ping -c3 dc1.example.lan

Comme vous pouvez le voir ci-dessous, le FQDN du serveur Samba est dc1.example.lan , qui se résout en 172.16.1.10 .

Désactivation du résolveur DNS

Le systemd-resolved Le service contrôle la configuration DNS sur le serveur Ubuntu, ce qui n'est pas compatible avec Samba Active Directory. Pour configurer Samba Active Directory, vous devez d'abord désactiver le systemd-resolved service et remplacer le /etc/resolv.conf fichier de configuration.

  1. Exécutez les commandes suivantes pour désactiver et arrêter le systemd-resolved service immédiatement et supprimez le lien symbolique vers le fichier /etc/resolv.conf , en ordre.
# stop and disable systemd-resolved service
sudo systemctl disable --now systemd-resolved

# remove the symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf

2. Ensuite, créez un nouveau /etc/resolv.conf fichier.

# create a new /etc/resolv.conf file
touch /etc/resolv.conf

3. Ouvrez le /etc/resolv.conf à l'aide de votre éditeur préféré et définissez le résolveur DNS à l'aide de la configuration ci-dessous. Assurez-vous de mettre l'adresse IP du serveur Samba en haut de la ligne. Enregistrez le fichier et quittez après l'avoir modifié.

# Samba server IP address
nameserver 172.16.1.10

# fallback resolver
nameserver 1.1.1.1

# main domain for Samba
search example.lan

4. Enfin, exécutez la commande suivante pour rendre le fichier /etc/resolv.conf fichier immuable. Cette étape garantit que le résolveur ne change pas sans le savoir pour une raison quelconque.

# add attribute immutable to the file /etc/resolv.conf
sudo chattr +i /etc/resolv.conf

Installer Samba

Après avoir configuré le FQDN et configuré la résolution de nom, vous installerez Samba sur votre système et activerez le service Samba Active Directory. Au moment d'écrire ces lignes, le dépôt officiel d'Ubuntu fournit Samba v4.13.

1. Exécutez le apt commande ci-dessous pour actualiser l'index de package de votre serveur Ubuntu.

sudo apt update

2. Maintenant, exécutez la commande ci-dessous pour installer Samba avec tous les packages et dépendances.

sudo apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools

3. Saisissez le nom de domaine du domaine par défaut en majuscules. Dans cet exemple, le FQDN est dc1.example.lan , le nom de domaine du domaine par défaut doit donc être EXAMPLE.LAN . Mettez en surbrillance OK et appuyez sur Entrée.

4. À l'invite suivante, saisissez le nom de domaine complet du serveur. Cette étape définit le serveur Kerberos par défaut. Mettez en surbrillance OK et appuyez sur Entrée.

5. Ensuite, saisissez à nouveau le nom de domaine complet du serveur pour spécifier le serveur d'administration Kerberos. Mettez en surbrillance Ok, et appuyez sur Entrée pour terminer la configuration initiale de Samba.

6. Après l'installation de Samba, exécutez la commande suivante pour arrêter et désactiver les services dont le serveur Samba Active Directory n'a pas besoin smbdnmbd , et winbind . Le serveur n'a besoin que du samba-ac-dc pour servir d'Active Directory et de contrôleur de domaine.

# stop and disable samba services - smbd, nmbd, and winbind
sudo systemctl disable --now smbd nmbd winbind

7. Enfin, exécutez les commandes ci-dessous pour activer et activer le samba-ad-dc service.

# activate samba-ad-dc service
sudo systemctl unmask samba-ad-dc

# enable samba-ad-dc service
sudo systemctl enable samba-ad-dc

Configuration de Samba Active Directory

Vous avez maintenant installé Samba sur votre système. Il existe plusieurs étapes supplémentaires pour configurer Samba Active Directory. L'installation de Samba est fournie avec un outil de ligne de commande appelé samba-tool pour provisionner Samba Active Directory.

1. Tout d'abord, créez une sauvegarde du /etc/samba/smb.conf déposer pour faire bonne mesure. Le processus de provisionnement remplacera ce fichier.

# backup default Samba configuration file
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig

2. Maintenant, exécutez le samba-tool commande ci-dessous pour commencer à provisionner Samba Active Directory.

# provisioning Samba Active Directory
sudo samba-tool domain provision

3. Sur le royaume invite, acceptez la valeur par défaut et appuyez sur Entrée.

4. Sur le domaine invite, appuyez à nouveau sur Entrée pour accepter la valeur par défaut.

5. Sur le rôle de serveur invite, laissez la valeur par défaut et appuyez sur Entrée.

6. Sur le dossier DNS invite, laissez la valeur par défaut (SAMBA_INTERNAL ) et appuyez sur Entrée.

7. Ensuite, saisissez l'adresse IP du redirecteur DNS supplémentaire . Cet exemple ajoutera le DNS Cloudflare 1.1.1.1 en tant que redirecteur DNS. Cette option n'est disponible que lorsque vous utilisez le SAMBA_INTERNAL Serveur DNS.

8. Tapez votre mot de passe administrateur Samba Active Directory et appuyez sur Entrée.

Le provisioning crée automatiquement le nouveau fichier de configuration Samba (/etc/samba/smb.conf ) et la configuration Kerberos (/var/lib/samba/private/krb5.conf ) dossier.

Après le provisionnement de Samba Active Directory, vous recevrez une sortie similaire à la capture d'écran ci-dessous.

9. Maintenant, exécutez les commandes ci-dessous pour sauvegarder la configuration Kerberos par défaut et remplacez-la par le fichier /var/lib/samba/private/krb5.conf .

# rename default Kerberos configuration to krb5.conf.orig
sudo mv /etc/krb5.conf /etc/krb5.conf.orig

# copy the Kerberos configuration generated by the samba-tool
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

10. Enfin, exécutez le systemctl commandes ci-dessous pour démarrer le service Samba Active Directory samba-ad-dc et vérifiez que l'état du service est active (running) .

# start samba-ad-dc service
sudo systemctl start samba-ad-dc

# verify samba-ad-dc service
sudo systemctl status samba-ad-dc

Le samba-ad-dc le service est active (running) et enabled , comme vous pouvez le voir ci-dessous. Le démon Samba AD démarre désormais automatiquement au démarrage du système.

Configuration de la synchronisation horaire

Samba Active Directory dépend du protocole Kerberos, et le protocole Kerberos exige que les heures du serveur AD et du poste de travail soient synchronisées. Pour garantir une bonne synchronisation de l'heure, vous devez configurer un Network Time Protocol (NTP) serveur sur Samba également.

Les avantages de la synchronisation de l'heure AD incluent l'attaque par relecture prévention et résolution des conflits de réplication AD.

1. Exécutez les commandes ci-dessous pour modifier l'autorisation et la propriété par défaut du répertoire /var/lib/samba/ntp_signd/ntp_signed . L'utilisateur/groupe _chrony doit avoir l'autorisation de lecture sur ntp_signed annuaire.

# allow group _chrony to read the directory ntp_signd
sudo chown root:_chrony /var/lib/samba/ntp_signd/

# change the permission of the directory ntp_signd
sudo chmod 750 /var/lib/samba/ntp_signd/

2. Maintenant, ouvrez le fichier de configuration /etc/chrony/chrony.conf dans un éditeur de texte et ajoutez la configuration suivante au bas du fichier. Cette configuration active le serveur NTP chrony et pointe l'emplacement du socket NTP vers /var/lib/samba/ntp_signd . Enregistrez le fichier de configuration et quittez l'éditeur.

# bind the chrony service to IP address of the Samba AD
bindcmdaddress 172.16.1.10

# allow clients on the network to connect to the Chrony NTP server
allow 172.16.1.0/24

# specify the ntpsigndsocket directory for the Samba AD
ntpsigndsocket /var/lib/samba/ntp_signd

3. Ensuite, exécutez les commandes suivantes pour redémarrer et vérifier le chronyd service sur le serveur Samba AD.

# restart chronyd service
sudo systemctl restart chronyd

# verify chronyd service status
sudo systemctl status chronyd

Comme vous pouvez le voir ci-dessous, le chronyd le service est enabled et active (running) . Au bas du chronyd log message, vous verrez le message MS-SNTP authentication is enabled , qui confirme que l'extension d'authentification NTP est fonctionnelle.

Vérification de Samba Active Directory

Après l'installation, vous devez vérifier la configuration de Samba pour vous assurer que ce que vous avez fait jusqu'à présent fonctionne. Vous pouvez le faire en vérifiant la configuration DNS de Samba, le dossier partagé par défaut (serveur de fichiers) et en testant l'authentification Kerberos.

1. Exécutez le host commandes ci-dessous pour vérifier le nom de domaine AD example.lan et dc1.example.lan .

# verify domain example.lan
host -t A example.lan

# verify domain dc1.example.lan
host -t A dc1.example.lan

Et le résultat doit confirmer que les deux enregistrements d'hôte pointent vers l'adresse IP du serveur Samba 172.16.1.10 .

2. Ensuite, vérifiez que _kerberos et _ldap service record pointent tous les deux vers le FQDN de votre serveur Samba Active Directory.

# verify SRV record for _kerberos
host -t SRV _kerberos._udp.example.lan

# verify SRV record for _ldap
host -t SRV _ldap._tcp.example.lan

Dans cet exemple, la sortie ci-dessous confirme que SRV les enregistrements se résolvent en dc1.example.lan .

3. Ensuite, exécutez le smbclient ci-dessous pour vérifier les ressources par défaut disponibles sur Samba Active Directory.

# checking available resources on Samba AD
smbclient -L example.lan -N

Vous devriez voir que le dossier partagé par défaut sur Samba Active Directory est sysvol et netlogon , et le service par défaut disponible est IPC$ .

4. Enfin, exécutez le kinit ci-dessous commandes pour s'authentifier auprès du serveur Kerberos à l'aide de l'utilisateur Administrator et vérifiez les tickets Kerberos mis en cache sur votre système.

Remarque :La partie domaine doit être en majusculese.

# authenticate to Kerberos using administrator
kinit [email protected]

# verify list cached Kerberos tickets
klist

Vous recevrez une sortie similaire à la capture d'écran ci-dessous. Le ticket Kerberos administrateur est stocké dans le fichier /tmp/krb5cc_0 et expirera dans 41 jours.

Création d'un nouvel utilisateur Samba Active Directory

À ce stade, vous avez terminé la configuration de Samba Active Directory. Mais comme vous le savez, il n'y a pas encore d'utilisateurs. Il est maintenant temps de créer votre premier compte utilisateur Samba AD en utilisant le samba-tool commande.

1. Exécutez la commande ci-dessous pour créer un nouvel utilisateur nommé alice , dont le mot de passe est alice_password88 .

# create a new user in Samba
sudo samba-tool user create alice alice_password88

2. Ensuite, exécutez le samba-tool commande ci-dessous pour vérifier les utilisateurs disponibles sur Samba.

# checking users on Samba
sudo samba-tool user list

Comme vous pouvez le voir ci-dessous, le nouvel utilisateur alice est disponible sur le répertoire Samba Active.

Rejoindre et se connecter au domaine Samba Active Directory

Maintenant que vous avez créé un nouvel utilisateur, il ne vous reste plus qu'à joindre un poste de travail au domaine Active Directory. Ensuite, vous pouvez vous connecter au poste de travail à l'aide des informations d'identification de l'utilisateur Samba AD.

1. Connectez-vous à votre PC Windows et ouvrez PowerShell en tant qu'administrateur.

2. Exécutez la commande ci-dessous pour répertorier les adaptateurs Ethernet disponibles sur votre PC Windows.

# checking available interface using Powershell command
Get-NetAdapter -Name "*"

Vous pouvez voir différentes sorties sur votre écran PowerShell. Cet exemple montre une interface réseau appelée Ethernet Instance 0 2 .

3. Exécutez la commande suivante pour remplacer le serveur DNS de l'adaptateur par l'adresse IP de Samba Active Directory avec un DNS Cloudflare de secours supplémentaire 1.1.1.1 . Cette étape garantit que votre poste de travail utilise le serveur Samba AD pour la résolution de noms.

# setup DNS resolver using Powershell
Set-DNSClientServerAddress "Ethernet Instance 0 2" –ServerAddresses ("172.16.1.10","1.1.1.1")

4. Exécutez la commande ci-dessous pour vérifier votre résolveur DNS et assurez-vous que votre ordinateur utilise le serveur Samba AD comme résolveur DNS par défaut.

# verify DNS resolver
Get-DnsClientServerAddress

Vous recevrez une sortie similaire à celle de la capture d'écran ci-dessous.

5. Maintenant, envoyez un ping au nom d'hôte et au domaine du serveur.

# ping the AD domain dc1.example.lan
ping dc1.example.lan

# ping the AD domain example.lan
ping example.lan

Vous devriez voir la réponse du serveur AD comme ci-dessous. Confirmez que le résultat pointe vers l'adresse IP du serveur Samba AD.

6. Ensuite, exécutez la commande suivante pour joindre le poste de travail au domaine Samba Active Directory.

# add Windows 10 to Active Directory
Add-Computer -DomainName "example.lan" -Restart

7. Saisissez l'AD Samba administrator nom d'utilisateur et mot de passe, cliquez sur OK. L'ordinateur redémarrera automatiquement dans le cadre du processus de jonction de domaine.

8. Après le redémarrage, cliquez sur Other users sur l'écran de connexion. Tapez le nom d'utilisateur et le mot de passe Active Directory de l'utilisateur Samba AD que vous avez précédemment créé ([email protected] ) et appuyez sur Entrée pour vous connecter.

9. Après une connexion réussie, ouvrez une fenêtre PowerShell et exécutez sur ou les deux commandes ci-dessous pour vérifier le nom d'utilisateur actuellement connecté.

whoami
query user

Conclusion

Le concept et l'application d'Active Directory ne sont pas exclusifs à l'écosystème Windows. Vous avez appris dans ce didacticiel que vous pouvez profiter des mêmes avantages d'Active Directory sous Linux en implémentant Samba Active Directory.

Tout au long de ce didacticiel, vous avez appris à installer et à configurer Samba Active Directory sur Ubuntu 20.04. Vous avez également appris à créer de nouveaux utilisateurs et à joindre un poste de travail Windows au domaine Samba Active Directory.

Quelle est la prochaine pour vous? Que diriez-vous d'intégrer Samba au service CUPS pour la prise en charge de l'impression ou de configurer un serveur de fichiers Samba Share ? Vous voyez, il y a plus dans Samba qu'Active Directory !


Linux
  1. Comment installer Python sur Linux

  2. Comment installer Java sur Linux

  3. Comment installer NodeJS sur Linux

  4. Comment installer FFmpeg sous Linux

  5. Comment installer TeamViewer 15 sur Linux

Comment installer Bashtop sous Linux

Comment installer Helm sur Linux

Comment installer PuTTY sur Linux

Comment installer Diskonaut sur Linux

Comment effectuer une installation Redis sécurisée sous Linux

Comment se connecter avec Samba à Linux Active Directory