Samba la danse du partage

Rien n’avoir avec cette danse populaire brésilienne, Samba est un logiciel de partage de donné à travers un réseau local.

En gros il vous permet de partager des données multiplate-forme entre les pc du réseau local.

Il fonctionne sous le protocole SMB/CIFS.

  • SMB : Server Message Block, protocole Windows de partage de fichier/imprimante.
  • CIFS : Common Internet File Systeme, même protocole mais développé sous NT4.

Par exemple, ma topologie de mon réseau local :

  • 1 serveur Fedora ou toutes mes données sont stockées.
  • 2 pc sous Windows, l’un sous Xp l’autre sous se7en
  • Comment font-ils pour se voir sur le réseau et comment je peux partager des données ? Sachant que les données reposent sur du NTFS sur Windows et EXT3 sous Fedora !

C’est bien le rôle du serveur Samba.

Pour l’installer :

# yum install samba.i686

La dénomination i686 correspond à une architecture 64 bits.

Avant de faire une quelconque configuration, je vous invite à copier le fichier de conf original afin de revenir en arrière à tout moment.

# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Le fichier smb.conf est copié dans le fichier smb.conf.bak, bak comme backup !

Place la configuration, éditez le fichier smb.conf comme suit :

# nano /etc/samba/smb.conf

Un fichier Samba se compose de !

# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#
# For a step to step guide on installing, configuring and using samba,
# read the Samba-HOWTO-Collection. This may be obtained from:
# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
#
# Many working examples of smb.conf files can be found in the
# Samba-Guide which is generated daily and can be downloaded from:
# http://www.samba.org/samba/docs/Samba-Guide.pdf
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentry and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command « testparm »
# to check that you have not made any basic syntactic errors.
#
#—————
# SELINUX NOTES:
#
# If you want to use the useradd/groupadd family of binaries please run:
# setsebool -P samba_domain_controller on
#
# If you want to share home directories via samba please run:
# setsebool -P samba_enable_home_dirs on
#
# If you create a new directory you want to share you should mark it as
# « samba-share_t » so that selinux will let you write into it.
# Make sure not to do that on system directories as they may already have
# been marked with othe SELinux labels.
#
# Use ls -ldZ /path to see which context a directory has
#
# Set labels only on directories you created!
# To set a label use the following: chcon -t samba_share_t /path
#
# If you need to share a system created directory you can use one of the
# following (read-only/read-write):
# setsebool -P samba_export_all_ro on
# or
# setsebool -P samba_export_all_rw on
#
# If you want to run scripts (preexec/root prexec/print command/…) please
# put them into the /var/lib/samba/scripts directory so that smbd will be
# allowed to run them.
# Make sure you COPY them and not MOVE them so that the right SELinux context
# is applied, to check all is ok use restorecon -R -v /var/lib/samba/scripts
#
#————–
#
#======================= Global Settings =====================================

[global]
log file = /var/log/samba/log.%m
netbios name = samn0
load printers = no
cups options = raw
server string = Sam
workgroup = TIGROU
create mode = 770
security = user
passdb backend = tdbsam
max log size = 50
directory mode = 770

# ———————– Netwrok Related Options ————————-
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostname
#
# Interfaces lets you configure Samba to use multiple interfaces
# If you have multiple network interfaces then you can list the ones
# you want to listen on (never omit localhost)
#
# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can
# specifiy it as a per share option as well
#

interfaces = lo eth0 192.168.0.241/32
hosts allow = 127. 192.168.0.240/28

# ————————— Logging Options —————————–
#
# Log File let you specify where to put logs and how to split them up.
#
# Max Log Size let you specify the max size log files should reach

# logs split per machine
# max 50KB per log file, then rotate

# ———————– Standalone Server Options ————————
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

# ———————– Domain Members Options ————————
#
# Security must be set to domain or ads
#
# Use the realm option only with security = ads
# Specifies the Active Directory realm the host is part of
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.
#
# Use password server option only with security = server or if you can’t
# use the DNS to locate Domain Controllers
# The argument list may include:
# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
# or to auto-locate the domain controller/s
# password server = *

; security = domain
; passdb backend = tdbsam
; realm = MY_REALM

; password server =

# ———————– Domain Controller Options ————————
#
# Security must be set to user for domain controllers
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.
#
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don’t use this
# if you already have a Windows NT domain controller doing this job
#
# Domain Logons let Samba be a domain logon server for Windows workstations.
#
# Logon Scrpit let yuou specify a script to be run at login time on the client
# You need to provide it in a share called NETLOGON
#
# Logon Path let you specify where user profiles are stored (UNC path)
#
# Various scripts can be used on a domain controller or stand-alone
# machine to add or delete corresponding unix accounts
#
; security = user
; passdb backend = tdbsam

; domain master = yes
; domain logons = yes

# the login script name depends on the machine name
; logon script = %m.bat
# the login script name depends on the unix user used
; logon script = %u.bat
; logon path = \\%L\Profiles\%u
# disables profiles support by specifing an empty path
; logon path =

; add user script = /usr/sbin/useradd « %u » -n -g users
; add group script = /usr/sbin/groupadd « %g »
; add machine script = /usr/sbin/useradd -n -c « Workstation (%u) » -M -d /nohome -s /bin/false « %u »
; delete user script = /usr/sbin/userdel « %u »
; delete user from group script = /usr/sbin/userdel « %u » « %g »
; delete group script = /usr/sbin/groupdel « %g »

# ———————– Browser Control Options —————————-
#
# set local master to no if you don’t want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
#
# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
#
# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
; local master = no
; os level = 33
; preferred master = yes

#—————————– Name Resolution ——————————-
# Windows Internet Name Serving Support Section:
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
#
# – WINS Support: Tells the NMBD component of Samba to enable it’s WINS Server
#
# – WINS Server: Tells the NMBD components of Samba to be a WINS Client
#
# – WINS Proxy: Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least one WINS Server on the network. The default is NO.
#
# DNS Proxy – tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups.

; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes

; dns proxy = yes

# ————————— Printing Options —————————–
#
# Load Printers let you load automatically the list of printers rather
# than setting them up individually
#
# Cups Options let you pass the cups libs custom options, setting it to raw
# for example will let you use drivers on your Windows clients
#
# Printcap Name let you specify an alternative printcap file
#
# You can choose a non default printing system using the Printing option

; printcap name = /etc/printcap
#obtain list of printers automatically on SystemV
; printcap name = lpstat
; printing = cups

# ————————— Filesystem Options —————————
#
# The following options can be uncommented if the filesystem supports
# Extended Attributes and they are enabled (usually by the mount option
# user_xattr). Thess options will let the admin store the DOS attributes
# in an EA and make samba not mess with the permission bits.
#
# Note: these options can also be set just per share, setting them in global
# makes them the default for all shares

; map archive = no
; map hidden = no
; map read only = no
; map system = no
; store dos attributes = yes

#============================ Share Definitions ==============================

[BuROTIK]
path = /DaTA/BuROTIK
write list = @share
comment = BuROTIK
valid users = @share
create mode = 770
directory mode = 770

[MoVIES]
comment = MoVIES
valid users = @share
create mode = 770
path = /DaTA/MoVIES
write list = @share
directory mode = 770

[SoNS]
path = /DaTA/SoNS
write list = @share
comment = SoNS
valid users = @share
create mode = 770
directory mode = 770

[TeMP]
comment = TeMP
valid users = @share
create mode = 775
path = /DaTA/TeMP
write list = @share
directory mode = 775

[SoFT]
comment = Logiciels
valid users = @share
create mode = 770
path = /DaTA/SoFT
write list = @share
directory mode = 770

[Mails]
comment = M@il
path = /DaTA/Mails
write list = @share
valid users = @share
create mask = 0770
directory mask = 0770

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no

# Un-comment the following to provide a specific roving profile share
# the default is to use the user’s home directory
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes

# A publicly accessible directory, but read only, except for people in
# the « staff » group
; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff

Oulalala c’est bien compliqué, en fait non ! Vous avez 5 choses à renseigner.

En fait dans tout fichier de conf de serveur sous linux, vous avez des :

  • # : Tout ce qu’il se trouve avec des #, c’est la définition de la section. Cela vous indique ce qu’il faut faire.

# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can
# specifiy it as a per share option as well.

Si on traduit :

# Hôtes autorisés / hôtes interdits vous permet de restreindre l’accès, et vous pouvez le spécifier aussi bien avec les options de votre partage.

  • ; commente les options disponibles.

; [public]
; comment = Public Stuff
; path = /home/samba

Tout ce qui est commenté ne pourra pas être interprété, c’est à dire que la commande ne sera pas prise ne compte !

Les 5 choses à renseigner sont :

  1. Le groupe de travail, afin que vos pc se voient et partage des ressources
  2. Le nom du serveur
  3. Les interfaces sur lesquelles Samba doit répondre, et sur lesquelles il ne doit pas répondre
  4. La sécurité, quel mode pour se connecter
  5. Et le partage des ressources

 

[global]
log file = /var/log/samba/log.%m
netbios name = samn0
load printers = no
cups options = raw
server string = Sam
workgroup = TIGROU
create mode = 770
security = user
passdb backend = tdbsam
max log size = 50
directory mode = 770

Ligne 59 : On démarre la configuration avec le nom netbios du serveur. Renseigner tout simplement le hostname que vous avez mis lors de l’installation.

Ligne 61 : Server string, mettez un nom, moi j’ai mis un diminutif.

Ligne 63 : Le groupe de travail doit être le même sur tous vos pc du réseau local, le serveur aussi !

Ligne 64 : Create mode, Ah ces droits en mode octal, mettez 770, afin que tout votre groupe puisse avoir accès à vos ressources.

Ligne 65 : Security, mettez user. A partir de là il faudrait créer de utilisateurs Samba.

Ligne 68 : Directory mode, mettez le même nombre que Create Mode.

# ———————– Network Related Options ————————-
#
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
#
# server string is the equivalent of the NT Description field
#
# netbios name can be used to specify a server name not tied to the hostname
#
# Interfaces lets you configure Samba to use multiple interfaces
# If you have multiple network interfaces then you can list the ones
# you want to listen on (never omit localhost)
#
# Hosts Allow/Hosts Deny lets you restrict who can connect, and you can
# specifiy it as a per share option as well
#
interfaces = lo eth0 192.168.0.241/32
hosts allow = 127. 192.168.0.240/28

Ligne 70, les options réseaux !

Comme tout serveur sur Linux on a différent choix pour sécuriser le tout. Le pare feu, mettre des Ip dans Host deny, ou ne pas partager ses ressources !

Ligne 87 : Interfaces, par défaut avec une carte réseau vous avez 2 interfaces !
Lo = Loopback
Eth0 = votre interface physique

Ici j’ai mis Lo & Eth0 avec son ip fixe en slash 32, car ce n’est qu’une seule Ip et non un réseau entier ! Si vous pataugez direction les masques de sous réseaux.

Ligne 71 : Hosts allow, les Ip autorisées.

#============================ Share Definitions ==============================
[BuROTIK]
path = /DaTA/BuROTIK
write list = @share
comment = BuROTIK
valid users = @share
create mode = 770
directory mode = 770

Ligne 250 : Le partage de ressource !

  • [BuROTIK] Ce que l’on veut partager, j’aurais pu mettre tutu cela aurait été pareil, juste pour s’y retrouver !
  • path : C’est le chemin complet du dossier, ici /DaTA/BuROTIK
  • write liste : Ceux qui ont droit d’écriture sur le dossier, ici le groupe Share
  • comment : Mettez juste le nom du dossier, car c’est ce qu’il va être affiché dans votre voisinage réseau
  • valid users : Ceux qui le droit de lecteur sur le dossier, ici le groupe Share
  • Create mode : Droit sur les fichiers nouvellement crées par le groupe Share
  • Directory mode : Droit sur les dossiers nouvellement crées par le groupe Share

Et voilà votre partage est fait !

Répéter la même opération à tous les dossiers que vous désirez partager..

Faites un CTRL+O pour sauvegarder vos modifications.

Maintenant passons à la conversion d’utilisateurs Unix en utilisateurs Samba. Car ce dernier gère sa propre base d’utilisateur.

# smbpassword utilisateur

Il faut mettre le mot de passe et le retaper !

Et voilà votre utilisateur Samba est déclaré.

Nous allons juste redémarrer le démon afin que nos modifications soient prises en compte !

# service smb restart

Si vous avez déjà votre pc Windows sur le même groupe de travail, il vous reste plus qu’à cliquer sur Voisinage Réseau.

Dans Ordinateur vous devriez voir le nom netbios déclaré dans smb.conf, moi c’est samn0.

Je clique dessus et je me retrouve à mettre le login et le mot de passe déclaré dans smbpassword.

Et là ô joie, on arrive à notre dossier partagé BuROTIK.

Et si on passait au prochain chapitre ? Une petite administration bien sympathique nommée Webmin.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.