LINUX:Samba

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

EN CONSTRUCTION


But

Samba est un serveur de fichiers et d'impression selon le protocole SMB. Ce protocole est utilisé principalement sous MS Windows. Nous allons l'utiliser comme serveur de fichiers pour un usage interne, privé.


Serveur ou PC

Nous n'avons pas besoin d'un serveur Windows à licence couteuse. Sur les stations de travail Windows, communément nommées PC, cette fonctionnalité peut être activée avec un nombre de sessions limitées et avec des fonctionnalités limitées en fonction du type de licences; mais par définition, un serveur doit toujours être disponible. Or un PC peut être éteint, bloqué (écran bleu) ou surchargé (CPU, mémoire, disque,...) même temporairement en fonction de l'utilisation qu'en fait l'utilisateur, du programme qu'il utilise.

Un serveur ne devrait pas avoir ces problèmes. Si sa charge augmente, il faut adapter le matériel (ex: ajouter un disque).

Un serveur doit avoir une adresse IP fixe au contraire des stations de travail qui, par définition, ont habituellement une adresse IP dynamique (DHCP) car elles sont appelées à se déplacer (portable).

Un serveur Linux, dès qu'il est installé en base, peut être géré à distance. Seul le boitier est nécessaire; la majorité des périphériques peuvent être éliminés; c'est le cas de l'écran, de la souris, du clavier. A ce stade, ils sont inutiles sauf dans les cas graves (erreur grave de modification de la configuration, matériel défectueux,...).


SaMBa

Choix du type de sécurité

Samba met en oeuvre le protocole SMB de Microsoft. Il propose de nombreux types de sécurité.

En entreprise, on choisit de préférence la sécurité ADS (Active Directory Service) car on est confronté à de multiples sites (WAN) et de multiples serveurs de fichiers. Dans ce cas, soit on utilise un serveur Windows élevé au niveau Active Directory. Sous Linux il maintenant possible d'effectuer cette fonctionnalité avec les package FreeIPA ou 389-DS.

En privé, on n'a normalement besoin que d'un serveur dans un seul LAN avec un nombre limité d'utilisateurs. Dans ce cas, nous préconisons le type de sécurité "user".


Installation

On a besoin d'installer un package qui installera les dépendances nécessaires:

dnf install samba


Fichier de configuration

Activer et lancer le service

Le service à lancer est SMBD. La première commande active le service pour qu'à chaque démarrage du serveur, le service se lance. La seconde lance directement le service. La troisième relance le service.

systemctl enable smb
systemctl start smb
systemctl restart smb

Notons que si on change un paramètre dans le fichier de configuration "/etc/samba/smb.conf", le service smbd relit régulièrement les paramètres de ce fichier et les met en application.





Configurer le mur de feu ou FireWall

Vous avez sûrement activé le FireWall du serveur. Comme c'est un service proposé, il faut ouvrir deux portes. Les ports TCP à ajouter sont 139 et 445. Dans l'exemple, l'adressage de notre LAN est 192.168.1.0 avec un masque de 255.255.255.0 ou de 24 bits. Nous utilisons IPTABLES; voici les lignes à ajouter:


-A INPUT -p tcp -m tcp --dport 139 -s 192.168.1.0/24 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 445 -s 192.168.1.0/24 -j ACCEPT



  1. wsdd

WSDD

Installation

On a besoin d'installer un package qui installera les dépendances nécessaires:

dnf install wsdd


Paramétrage de WSDD

Les options de lancement se trouvent dans le fichier "/etc/sysconfif/wsdd".

OPTIONS=" -4 -w HOME -v -i enp0s25 "

-4 : IPV4 only -w HOME : groupe de travail SAMBA -v : verbose -v -v : debug -i enp0s25 : interface de listening



Activer et lancer le service

Le service à lancer est WSDD. La première commande active le service pour qu'à chaque démarrage du serveur, le service se lance. La seconde lance directement le service. La troisième relance le service.

systemctl enable wsdd
systemctl start wsdd
systemctl restart wsdd


Configurer le mur de feu ou FireWall

Vous avez sûrement activé le FireWall du serveur. Comme c'est un service proposé, il faut ouvrir deux portes. Le port TCP à ajouter est 5357. En outre, il faut ouvrir un port UDP 3702. celui-ci est une communication multicast sur l'adresse 239.255.255.250. Dans l'exemple, l'adressage de notre LAN est 192.168.1.0 avec un masque de 255.255.255.0 ou de 24 bits. Cette partie sert à répondre aux demandes des clients.

D'autre part, la fonction multicast est de s'annoncer sur le réseau. Si le FireWall agit aussi en sortie, il faut aussi ouvrir deux ports. En premier, on ouvre le port UDP 3702 et en parallèle, on ouvre un port UDP aléatoire en dehors des ports d'écoute habituels.

Pour rechercher la tranche de ports libres où le service de réponse va puiser son port aléatoirement, on peut consulter le système avec la commande suivante:

cat /proc/sys/net/ipv4/ip_local_port_range

Dans l'exemple, la tranche est entre les ports 32768 et 60999. Nous utilisons IPTABLES et au final,voici les lignes à ajouter:


-A INPUT -p tcp -m tcp --dport 5357 -s 192.168.1.0/24 -j ACCEPT
-A INPUT -p udp -m udp --dport 3702 -s 192.168.1.0/24 -d 239.255.255.250 -m pkttype --pkt-type multicast -j ACCEPT
-A OUTPUT -p udp -m udp --dport 3702 -d 239.255.255.250 -j ACCEPT
-A OUTPUT -p udp -m udp -d 192.168.1.0/24 --sport 32768:60999 -j ACCEPT



->retour au menu de Linux