Recherche de site Web

Comment installer Samba sur Ubuntu pour le partage de fichiers sous Windows


Samba est un logiciel gratuit/open source et couramment utilisé pour partager des fichiers et des services d'impression entre des systèmes de type Unix, y compris des hôtes Linux et Windows sur le même réseau.

Dans ce guide, nous montrerons comment configurer Samba4 pour le partage de fichiers de base entre un système Ubuntu et des machines Windows. Nous aborderons deux scénarios possibles : anonyme (non sécurisé) ainsi que le partage de fichiers sécurisé.

Lecture suggérée : Comment installer Samba4 sur CentOS/RHEL 7 pour le partage de fichiers sous Windows

Notez qu'à partir de la version 4.0, Samba peut être utilisé comme contrôleur de domaine (DC) Active Directory (AD). Nous avons organisé une série spéciale pour la configuration du contrôleur de domaine Samba4 Active Directory, qui comprend des sujets clés sous Ubuntu, CentOS et Windows.

  1. Configuration du contrôleur de domaine Active Directory Samba4

Installer et configurer Samba dans Ubuntu

Le serveur Samba peut être installé à partir des référentiels Ubuntu par défaut à l'aide de l'outil de gestion de packages apt, comme indiqué.

sudo apt install samba samba-common python-dnspython

Une fois le serveur samba installé, il est maintenant temps de configurer le serveur samba comme : anonyme non sécurisé et partage de fichiers sécurisé.

Pour cela, nous devons éditer le fichier de configuration principal de Samba /etc/samba/smb.conf (qui explique diverses directives de configuration).

Sauvegardez d’abord le fichier de configuration samba d’origine comme suit.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

Ensuite, nous procéderons à la configuration de samba pour les services anonymes et de partage de fichiers sécurisé comme expliqué ci-dessous.

Important : Avant d'aller plus loin, assurez-vous que la machine Windows se trouve dans le même groupe de travail qui sera configuré sur le serveur Ubuntu.

Vérifier les paramètres du groupe de travail de la machine Windows

Connectez-vous à votre ordinateur Windows, faites un clic droit sur « Ce PC » ou « Mon ordinateur » Propriétés Paramètres système avancés Nom de l'ordinateur pour vérifier le groupe de travail.

Vous pouvez également ouvrir l'invite de commande et l'afficher en exécutant la commande ci-dessous et rechercher « domaine du poste de travail ».

>net config workstation

Une fois que vous connaissez votre groupe de travail Windows, il est temps d'aller de l'avant et de configurer le serveur Samba pour le partage de fichiers.

Partage anonyme de fichiers Samba

Commencez par créer un répertoire samba partagé où les fichiers seront stockés.

sudo mkdir -p /srv/samba/anonymous_shares

Définissez ensuite les autorisations appropriées sur le répertoire.

sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

Ouvrez maintenant le fichier de configuration.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Ensuite, éditez ou modifiez les paramètres de la directive comme décrit ci-dessous.

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

Vérifiez maintenant les paramètres actuels de Samba en exécutant la commande ci-dessous.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

Redémarrez ensuite les services Samba pour effectuer les modifications ci-dessus.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Test du partage anonyme de fichiers Samba

Accédez à la machine Windows et ouvrez « Réseau » à partir d'une fenêtre de l'Explorateur Windows. Cliquez sur l'hôte Ubuntu (TECMINT dans notre cas), ou bien essayez d'accéder au serveur samba en utilisant son adresse IP.

\2.168.43.168

Remarque : utilisez la commande ifconfig pour obtenir l'adresse IP de votre serveur Ubuntu.

Ensuite, ouvrez le répertoire Anonyme et essayez d'y ajouter des fichiers à partager avec d'autres utilisateurs.

Partage de fichiers Samba sécurisé

Pour protéger par mot de passe un partage Samba, vous devez créer un groupe « smbgrp » et définir un mot de passe pour chaque utilisateur. Dans cet exemple, j'utilise aaronkilik comme utilisateur et le mot de passe comme « tecmint ».

sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

Remarque : Le mode de sécurité samba : security=user nécessite que les clients saisissent un nom d'utilisateur et un mot de passe pour se connecter aux partages.

Les comptes d'utilisateurs Samba sont distincts des comptes système, cependant, vous pouvez éventuellement installer le package libpam-winbind qui est utilisé pour synchroniser les utilisateurs système et les mots de passe avec la base de données des utilisateurs Samba.

sudo apt install libpam-winbind

Créez ensuite le répertoire sécurisé où seront conservés les fichiers partagés.

sudo mkdir -p /srv/samba/secure_shares

Ensuite, définissez les autorisations appropriées sur le répertoire.

sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

Ouvrez maintenant le fichier de configuration.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Ensuite, éditez ou modifiez les paramètres de la directive comme décrit ci-dessous.

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

Comme avant, exécutez cette commande pour voir vos paramètres samba actuels.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

Une fois que vous avez terminé les configurations ci-dessus, redémarrez les services Samba pour appliquer les modifications.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Test du partage de fichiers Samba sécurisé

Comme auparavant, sur la machine Windows, ouvrez « Réseau » depuis une fenêtre de l'Explorateur Windows. Cliquez sur l'hôte Ubuntu (TECMINT pour notre cas). Vous pouvez obtenir l’erreur ci-dessous, sinon passez à l’étape suivante.

Essayez d'accéder au serveur en utilisant son adresse IP, par ex. \\192.168.43.168 comme ça. Saisissez ensuite les informations d'identification (nom d'utilisateur et mot de passe) de l'utilisateur aaronkilik et cliquez sur OK.

Vous allez maintenant voir tous les répertoires partagés, cliquez sur Sécurisé pour l'ouvrir.

Vous pouvez partager en toute sécurité certains fichiers avec d'autres utilisateurs autorisés sur le réseau en les déposant dans ce répertoire.

Activer Samba dans le pare-feu UFW dans Ubuntu

Si le pare-feu UFW est activé/actif sur votre système, vous devez ajouter les règles pour permettre à Samba de passer à travers votre pare-feu.

Pour tester cela, nous avons utilisé le schéma de réseau 192.168.43.0. Exécutez les commandes ci-dessous en spécifiant votre adresse réseau.

sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

Vous pouvez également consulter ces articles utiles concernant le partage de fichiers Samba sur un réseau.

  1. Configuration du contrôleur de domaine Active Directory Samba4 - Parties 1 à 14
  2. Comment monter/démonter des systèmes de fichiers locaux et réseau (Samba et NFS) sous Linux
  3. Utilisation des ACL (listes de contrôle d'accès) et montage des partages Samba/NFS
  4. Comment réparer la vulnérabilité SambaCry (CVE-2017-7494) dans les systèmes Linux

C'est tout! Dans ce guide, nous vous avons montré comment configurer Samba4 pour un partage de fichiers anonyme et sécurisé entre les machines Ubuntu et Windows. Utilisez le formulaire de commentaires ci-dessous pour partager vos réflexions avec nous.