Metsys Blog

Comment simplifier et automatiser la migration d’un serveur de fichiers SAMBA vers Windows 2012

Cliquez pour évaluer cet article !
0 avis

Objectifs de cet article

  • Présenter le fonctionnement d’un serveur de fichiers SAMBA.
  • Présenter une procédure de migration d’un serveur de fichiers SAMBA vers un serveur de fichiers Windows 2012 membre d’un domaine Active Directory.

Installation et test d’un serveur de fichiers SAMBA

Installation d’un serveur de fichiers SAMBA 3.X

L’article ci-dessous présente la procédure d’installation d’un serveur de fichiers SAMBA sous CENTOS 6 membre d’un domaine Active Directory.
http://phreek.org/guides/centos-6-samba-ad-member-server

Il faut configurer / désactiver SE LINUX pour que ce serveur fonctionne correctement.
https://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable.html

Test d’un serveur de fichiers SAMBA 3.X

Pour accéder aux données partagées, un utilisateur doit disposer de permissions au niveau de SAMBA (smb.conf) et de permissions sur le système de fichiers (EXT3 / EXT4 généralement).

C’est le cumul le plus restrictif qui s’applique. Si un utilisateur a le droit Lire et écrire avec les permissions SAMBA et le droit Lire au niveau des permissions EXT3 / EXT4, l’utilisateur aura uniquement le droit de lire le fichier.
Il n’y a pas de notions d’héritage en Linux avec le système de fichiers EXT3 / EXT4.

Les paramètres create mask = 0770 et directory mask = 0770 permettent de définir les droits sur un nouveau fichier / nouveau dossier créé par un utilisateur au niveau des permissions EXT3/EXT4.
Avec un create mask = 0770, lorsque le compte utilisateur guillaume.mathieu accède au partage SAMBA et crée un fichier, seul le compte guillaume.mathieu et son groupe primaire (utilisa du domaine par défaut) ont le droit de lire et écrire sur ce fichiers. Les autres utilisateurs n’ont pas d’accès à ce fichier.

Il est possible de corriger ce comportement en exécutant tous les jours un script qui modifie les permissions pour chaque dossier.
Ce comportement fait que généralement le groupe Utilisa du domaine a trop de permissions sur le système de fichiers Linux. C’est pour cette raison que généralement, je ne migre pas les permissions Linux.

Installer le serveur de fichiers windows 2012

  • Désactiver l’UAC sur le serveur Windows 2012 (Panneau de configuration | Comptes utilisateurs).
  • Configurer PowerShell pour autoriser l’exécution de script :
Set-ExecutionPolicy Unrestricted

Recréer l’arborescence de fichiers vides

La première étape est de recréer l’arborescence de fichiers vide.

  • Pour cela, partager le ou les dossiers racines sur le serveur de fichiers non Windows (avec SAMBA).
  • Monter chaque partage sous forme d’un lecteur réseau sur une machine Windows.
  • Exporter l’arborescence vide  à l’aide de la commande suivante :
Get-ChildItem -Recurse | Where-Object {$_.Attributes -eq "Directory"} | Select-Object FullName | Export-Csv -Path C:ScriptsArborescencesarborescences.csv -UseCulture -Encoding UTF8

Remarque :

Pour une arborescence avec 300000 fichiers, on obtient un fichier de 50 Mo.
Ce fichier doit être au format UTF8 pour que la solution fonctionne.

Il faut maintenant importer l’arborescence vide sur le serveur Windows 2012 à l’aide de ce script :

$base = Import-csv -Path C:ScriptsArborescencesarborescences.csv -UseCulture -Encoding UTF8
foreach ($line in $base)
{
$line.FullName
New-Item $line.FullName -Type Directory -force
}

Créer un fichier excel avec la liste des dossiers avec des permissions NTFS spécifiques et la liste des partages

Créer le fichier Excel

Le fichier doit contenir les colonnes suivantes :

  • Name : nom du partage (utilisé si CreateShare égale à Yes).
  • Path : cette valeur est utilisée pour créer le partage et définir les permissions NTFS.
  • Description : cette valeur est copiée dans le champ Description du partage.
  • RO : tous les groupes / comptes utilisateurs qui disposent d’un accès en lecture uniquement. Utiliser une virgule comme séparateur entre les groupes / comptes utilisateurs.
  • RW : tous les groupes / comptes utilisateurs qui disposent d’un accès en lecture et écriture. Utiliser une virgule comme séparateur entre les groupes / comptes utilisateurs.
  • CreateShare : si contient la valeur Yes, le script créera un partage.

Analyser le fichier SMB.CONF et les permissions EXT3 / EXT4

  • Analyser le fichier SMB.CONF du serveur de fichiers SAMBA :
    • Créer une entrée dans le fichier Excel pour chaque partage.
    • Ne pas mettre de guillemets ou de points virgules dans le fichier Excel.
    • Compléter les colonnes RO et RW du fichier Excel selon les permissions SAMBA définis dans le fichier SMB.CONF et les permissions EXT3 / EXT4 (analyse avec la commande Linux getfacl).

Pour cela, il faut s’appuyer sur les règles de conversion permissions SAMBA – permissions SMB Windows ci-dessous.

Règle 1

  • Permissions SAMBA : aucun paramètre.
  • Permissions SMB Windows : lecture seule pour tout le monde

Règle 2

  • Permissions SAMBA : writable = yes
  • Permisions SMB Windows : lecture / écriture pour tout le monde

Règle 3

  • Permissions SAMBA : read only = yes
  • Permisions SMB Windows : lecture seule pour tout le monde

Règle 4

  • Permissions SAMBA : read only = yes
    write list = guillaume.mathieu
  • Permissions SMB Windows : lecture seule pour tout le monde et lecture / écriture pour guillaume.mathieu

Règle 5

  • Permissions SAMBA : read only = yes
    writable = yes
  • Permissions SMB Windows : lecture / écriture pour tout le monde

Règle 6

  • Permissions SAMBA : valid users = guillaume.mathieu
  • Permissions SMB Windows : Accès en lecture seule pour guillaume.mathieu. Pas d’accès pour les autres utilisateurs.

Règle 7

  • Permissions SAMBA : valid users = guillaume.mathieu
  • read only = no
  • Permissions SMB Windows : Accès en lecture / écriture pour guillaume.mathieu. Pas d’accès pour les autres utilisateurs.

Règle 8

  • Permissions SAMBA : valid users = guillaume.mathieu, tigrou.mathieu
    read only = no
    read list = tigrou.mathieu
  • Permissions SMB Windows : accès en lecture seule pour tigrou.mathieu, accès en lecture / écriture pour guillaume.mathieu, pas d’accès pour les autres utilisateurs.

Conversion du fichier Excel au format CSV

Créer les groupes, les partages et les permissions de partage

  • Ce script génère un fichier appelé startCreateGroupsShare.txt
  • Il faudra ensuite renommer ce fichier avec l’extension .ps1 et l’exécuter. Ce script permet de :
    • Créer un groupe NomPartage_L pour les accès en lecture  uniquement.
    • Créer un groupe NomPartage_M pour les accès en lecture / écriture.
    • Créer un partage si la colonne CreateShare a pour valeur Yes. Donner les permissions de lecture seule sur ce partage au groupe NomPartage_L et lecture / écriture au groupe NomPartage_M.

Astuces :

  • Utiliser PowerShell ISE pour vérifier le bon fonctionnement du script :
StartCreateGroupsShare.ps1

Vérifier qu’aucun champ ne contient des guillemets.

Application des permissions NTFS

Définir les permissions NTFS sur chaque dossier racine sur le serveur de fichiers Windows

  • Au niveau de chaque dossier racine, aller dans l’onglet Sécurité puis cliquer sur le bouton Avancé.
  • Cliquer sur le bouton Désactivé l’héritage et supprimer les permissions héritées.
  • Donner le droit contrôle totale aux objets System et administrateurs (le groupe administrateurs du serveur).
  • Forcer tous les sous dossiers à hériter leur droit de ce dossier.

Définir les permissions NTFS à partir du fichier Excel

Ce dernier permet de définir sur chaque dossier du fichier Excel :

  • Les permissions NTFS Lecture au groupe NomPartage_L
  • Les permissions NTFS Lecture / écriture au groupe NomPartage_M
  • Forcer l’application de l’héritage sur tous les fichiers / dossiers enfants.

Notez cet article

Vous avez aimé cet article ?

Rendez-le plus visible auprès des internautes en lui mettant une bonne note.

Cliquez pour évaluer cet article !
0 avis

Articles pouvant vous intéresser

RETEX CERT

Tout d’abord, en termes d’éthique et pour respecter la confidentialité des sujets aussi sensibles que