1. Présentation de Samba

La version 3 de Samba, a incorporé de nombreuses améliorations par rapport aux versions précédentes, y compris :

  • La possibilité de faire partie d'un domaine Active Directory au moyen de LDAP et Kerberos

  • La prise en charge intégrée de Unicode pour l'internationalisation

  • La prise en charge de connexions client MicrosoftWindows™ XP Professional aux serveurs Samba sans devoir toucher à la base de registre local

Samba a largement participé à l'intégration de systèmes Unix dans des environnements Microsoft™, en proposant en particulier les fonctionnalités suivantes :

  • Mettre des arborescences de répertoires et des imprimantes à la disposition de clients Linux, UNIX et Windows

  • Aider lors de la navigation du réseau (avec ou sans NetBIOS)

  • Authentifier les connexions de domaines Windows

  • Fournir la résolution du serveur de noms Windows Internet Name Service (WINS)

  • Agir en tant que contrôleur principal de domaine (ou PDC, de l'anglais Primary Domain Controller) de type Windows™ NT

  • Agir en tant que Contrôleur de Domaine Secondaire (ou BDC, de l'anglais Backup Domain Controller) pour un contrôleur principal (PDC) bas~ sur Samba

  • Agir comme un serveur membre du domaine Active Directory

  • Joindre un PDC Windows™ NT/2000/2003

Cependant, et en attendant sa version 4 qui a nécessité plus de 4 ans de développement, Samba est pour le moment limiter, en particulier pour ces tâches :

  • Agir comme un BDC pour un PDC Windows™ (et vice versa)

  • Agir comme le contrôleur d'un domaine Active Directory

1.1. Options d'installation sur FreeBSD

L'installation de Samba via les logiciels portés de Samba propose un certain nombre d'options de compilation, permettant d'ajouter/enlever des fonctionnalités en fonction de chaque environnement et besoin. Ces options peuvent varier suivant les versions de Samba :

  • [X] LDAP With LDAP support

  • [X] ADS With Active Directory support

  • [X] CUPS With CUPS printing support

  • [X] WINBIND With WinBIND support

  • [X] ACL_SUPPORT With ACL support

  • [X] SYSLOG With Syslog support

  • [X] QUOTAS With Quota support

  • [X] UTMP With UTMP support

  • [ ] MSDFS With MSDFS support

  • [ ] SAM_XML With XML smbpasswd backend

  • [ ] SAM_MYSQL With MYSQL smbpasswd backend

  • [ ] SAM_PGSQL With PostgreSQL smbpasswd backend

  • [ ] SAM_OLD_LDAP With Samba2.x LDAP smbpasswd backend

  • [X ] PAM_SMBPASS With SMB PAM module

  • [X] POPT With installed POPT library

Le script /usr/local/etc/rc.d/samba et le fichier /usr/local/etc/smb.conf.sample sont créés lors de la compilation. Le script permet de contrôler les démons Samba, et le fichier propose une configuration de Samba, à modifier bien sûr . Il est à noter que sous FreeBSD, il est nécessaire d'autoriser spécifiquement le démarrage de Samba dans le fichier rc.conf pour utiliser ces scripts.

arrakis# /usr/local/etc/rc.d/samba stop
Stopping smbd.
Stopping nmbd.
arrakis# /usr/local/etc/rc.d/samba start
Removing stale Samba tdb files: ........ done
Starting nmbd.
Starting smbd.
arrakis# /usr/local/etc/rc.d/samba  restart
Performing sanity check on Samba configuration: OK
Stopping smbd.
Stopping nmbd.
Removing stale Samba tdb files: ...... done
Starting nmbd.
Starting smbd.


# 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. 
#
#======================= Global Settings =====================================
[global]

# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
   workgroup = MYGROUP

# server string is the equivalent of the NT Description field
   server string = Samba Server

# Security mode. Defines in which mode Samba will operate. Possible 
# values are share, user, server, domain and ads. Most people will want 
# user level security. See the Samba-HOWTO-Collection for details.
   security = user
....

Enfin, quelques utilisatires sont fournis avec samba, dont une partie est décrite dans les paragraphes suivants.

1.2. Démons de samba

Samba est composé de trois démons (smbd, nmbd et winbindd). Deux services (smb et windbind) contrôlent la manière selon laquelle les démons sont démarrés et arrêtés et ainsi que d'autres fonctionnalités en relation avec les services.

  1. smbd : Le démon smbd fournit des services de partage de fichiers et d'impression aux clients Windows™. En outre, il est responsable de l'authentification des utilisateurs, du verrouillage des ressources et du partage des données par le biais du protocole SMB. Les ports par défaut sur lesquels le serveur est à l'écoute de tout trafic SMB sont les ports TCP 139 et 445. Le démon smbd est contrôlé par le service smb

  2. nmbd : Le démon serveur nmbd comprend et répond à toutes les requêtes de service de nom NetBIOS telles que celles produites par SMB/CIFS dans des systèmes basés sur Windows™. Parmi ces derniers figurent les clients Windows™ 95/98/ME, Windows™ NT, Windows™ 2000, Windows™ XP et LanManager. Ce démon joue également un rôle au niveau des protocoles de navigation qui constituent l'affichage du voisinnage réseau (Network Neighborhood) de Windows™. Le port par défaut sur lequel le serveur attend du trafic NMB est le port UDP 137. Le démon nmbd est contrôlé par le service smb.

  3. Winbind : Le service winbind effectue la résolution entre les informations relatives aux utilisateurs et aux groupes sur un serveur Windows NT et les rend utilisables par des plates-formes UNIX. Cette opération est possible grâce à l'utilisation d'appels RPC de Microsoft™, du système PAM (Pluggable AuthenticationModule, ou module d'authentification enfichable) et du NSS (Name Service Switch). Ceci permet aux utilisateurs de domaines Windows™ NT d'apparaître comme des utilisateurs UNIX sur une machine UNIX. Bien qu'intégré à la distribution Samba, le service winbind est contrôlé séparément du service smb. Le démon winbindd est contrôlé par le service winbind et il n'est pas nécessaire que le service smb soit lancé pour que le démon tourne.

1.3. Outils et utilitaires de la distribution Samba

1.3.1. findsmb

Le programme findsmb subnet_broadcast_address est un script Perl qui permet de recueillir des informations sur les systèmes compatibles avec SMB sur un sous-réseau particulier. Si aucun sous-réseau n'est spécifié, le sous-réseau local est utilisé. Parmi les éléments spécifiés figurent l'adresse IP, le nom, groupe de travail ou nom de domaine NetBIOS, le système d'exploitation et la version. L'exemple suivant montre la sortie de la commande findsmb exécutée en tant qu'un utilisateur valide du système :

ikare@ix:~$ findsmb

                                *=DMB
                                +=LMB
IP ADDR         NETBIOS NAME     WORKGROUP/OS/VERSION 
---------------------------------------------------------------------
172.17.4.1      POSTE401       [        BAGGINS       ]
172.17.7.2      SRV2          *[ASR] [Windows Server 2003 R2 3790 Service Pack 1] [Windows Server 2003 R2 5.2]
172.17.7.3      SRV3           [ASR] [Windows Server 2003 3790 Service Pack 1] [Windows Server 2003 5.2]
172.17.7.5      SRV5          *[CONCEPT] [Windows Server 2003 R2 3790 Service Pack 1] [Windows Server 2003 R2 5.2]
172.17.7.9      POSTE703      +[HERMES] [Windows 5.1] [Windows 2000 LAN Manager]
172.17.3.10     POSTE310       [BAGGINS] [Windows 5.0] [Windows 2000 LAN Manager]
172.17.3.14     POSTE314       [BAGGINS] [Windows 5.0] [Windows 2000 LAN Manager]
172.17.7.20     POSTE704       [HERMES] [Windows 5.1] [Windows 2000 LAN Manager]
172.17.6.20     POSTE816       [        BAGGINS       ]

1.3.2. nmblookup

Le programme nmblookup options netbios_name effectue la résolution des noms NetBIOS en adresse IP. Le programme diffuse sa demande sur le sous-réseau local jusqu'à ce que la machine cible réponde.

ikare@ix:~$ nmblookup SRV2
querying SRV2 on 172.17.255.255
172.17.7.2 SRV2<00>
192.168.31.1 SRV2<00>
192.168.219.1 SRV2<00>

1.3.3. pdbedit

Le programme pdbedit gère les comptes présents dans la base de données de SAM. Tous les backends sont pris en charge, y compris smbpasswd, LDAP, NIS+ et la bibliothèque de base de données tdb.

pdbedit  -v -L ikare
Unix username:        ikare
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-761572816-94600713-4071525793-5646
Primary Group SID:    S-1-5-21-761572816-94600713-4071525793-513
Full Name:            
Home Directory:       \\ix\ikare
HomeDir Drive:        
Logon Script:         
Profile Path:         \\ix\ikare\profile
Domain:               IX
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          mar, 19 jan 2038 07:14:07 RET
Kickoff time:         mar, 19 jan 2038 07:14:07 RET
Password last set:    0
Password can change:  0
Password must change: mar, 19 jan 2038 07:14:07 RET
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

1.3.4. smbtree

Le programme smbtree permet d'otenir l'équivalent du voisinage réseau sous Windows™, en mode texte. Il affiche l'ensemble des ressources SMB, en donnant les noms et les partages de chaque poste. Un extrait de smbtree sur le réseau de N3 :

WORKGROUP
        \\POSTE704       
        \\KONIFEXXX_PC   
TOTO
        \\REDREUNION     
                \\REDREUNION\jeux           
                \\REDREUNION\Lettre et CV   
                \\REDREUNION\Mes vid~~os    
                \\REDREUNION\IPC$               IPC distant
SA-AUTREMENT
        \\PC-NELLO       
                \\PC-NELLO\C$                   Partage par défaut
                \\PC-NELLO\ADMIN$               Administration à~ distance
                \\PC-NELLO\E              
                \\PC-NELLO\Counter-Strike Source
                \\PC-NELLO\Téléchargements
                \\PC-NELLO\x86_policy.X   
                \\PC-NELLO\Documents      
                \\PC-NELLO\print$               Pilotes d'imprimantes
                \\PC-NELLO\D$                   Partage par défaut
                \\PC-NELLO\IPC$                 IPC distant

1.3.5. smbcacls

Le programme smbcacls //server/share filename options modifie les ACL de Windows™ dans les fichiers et répertoires partagés par le serveur Samba.

1.3.6. smbclient

Le programme smbclient //server/share password options est un client UNIX souple qui fournit des fonctionnalités semblables à ftp.

1.3.7. smbcontrol

Le programme smbcontrol options destination messagetype parameters envoie des messages de contrôle aux démons smbd ou nmbd en cours d'exécution. L'exécution de smbcontrol -i lance la commande de manière interactive jusqu'à ce qu'une ligne blanche ou que la lettre 'q' soit saisie.

1.3.8. smbgroupedit

Le programme smbgroupedit options établit la correspondance entre les groupes Linux et les groupes Windows. Il permet également à un groupe Linux d'être un groupe de domaine.

1.3.9. smbmount

Le programme smbmount //server/share mount_point -o options utilise le programme de bas niveau smbmnt pour monter un système de fichiers smbfs (partage Samba). La commande mount -t smbfs est également valide.

1.3.10. smbpasswd

Le programme smbpasswd options username password gère les mots de passe cryptés. Ce programme peut être exécuté aussi bien par un super-utilisateur pour changer le mot de passe d'un utilisateur quelconque que par un utilisateur ordinaire pour changer son propre mot de passe Samba.

1.3.11. smbstatus

Le programme smbstatus options affiche le statut des connexions actuelles à un serveur Samba.

1.3.12. testparm

Le programme testparm options filename hostname IP_address vérifie la syntaxe du fichier smb.conf. Si votre fichier smb.conf se trouve dans l'emplacement par défaut (/etc/samba/smb.conf pour Linux, /usr/local/etc/samba/smb.conf), il n'est pas nécessaire de préciser l'emplacement. La spécification du nom d'hôte et de l'adresse IP pour le programme testparm permet de vérifier que les fichiers hosts.allow et host.deny sont bien configurés correctement. Le programme testparm affiche également un résumé de vos fichiers smb.conf et le rôe du serveur (autonome, domaine, etc.) après avoir effectué les tests. Ce programme est utile lors du débogage étant donné qu'il exclut les commentaires et fournit les informations de manière concise pour des administrateurs expérimentés.

testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = MSHOME
        server string = %h server (Samba, Ubuntu)
        obey pam restrictions = Yes
        passdb backend = tdbsam
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 1000
        dns proxy = No
        panic action = /usr/share/samba/panic-action %d
        invalid users = root

[printers]
        comment = All Printers
        path = /var/spool/samba
        create mask = 0700
        printable = Yes
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/printers

Skins :
Transparence
Simple
Page Accueil
Formation