next up previous contents
suivant: Securité monter: Linux, réseau, sécurité et précédent: Pour aller plus loin   Table des matières

Configurer Samba

Samba peut être exécuté au travers d'un démon (auquel cas il faudra activer un script au démarrage du serveur pour lancer ce démon) ou à chaque requêtte netbios. Dans ce cas, le fichier /etc/services devra contenire les lignes suivantes :

netbios-ns      137/tcp                 # NETBIOS Name Service
netbios-ns      137/udp                 # NETBIOS Name Service
netbios-dgm     138/tcp                 # NETBIOS Datagram Service
netbios-dgm     138/udp                 # NETBIOS Datagram Service
netbios-ssn     139/tcp                 # NETBIOS Session Service
netbios-ssn     139/udp                 # NETBIOS Session Service

et le fichier /etc/inetd.conf :

FIXME

Si le serveur SAMBA ne doit pas être actif en permanance (il n'agit pas comme MASTER BROWSER du réseau), la méthode utilisant inetd marche très bien.

Samba se configure au travers d'un unique fichier, /etc/smb.conf. Ce fichier peut être édité tel quel, ou grâce au programme swat, via une interface Web. Pour cela, vérifier que le fichier /etc/services contient la ligne :

swat            901/tcp                 # XXX Samba Web Adminisration Tool

et que le fichier /etc/inetd.conf contient la ligne :

swat    stream  tcp     nowait.400      root    /usr/sbin/swat  swat

Noter que tcpd n'est pas appellé, ce qui signifie que n'importe quel hôte aura le droit d'utiliser cet outil. Voir la section 9.1 pour plus de détails.

Une fois Samba démarré, deux démons tournent (smbd et nmbd) :

$ ps aux | grep "[sn]mbd"
root       525  0.0  0.0  1800    0 ?        SW   05:41   0:00 [nmbd]
root       527  0.0  0.0  2436    0 ?        SW   05:41   0:00 [smbd]
$

Il ne reste plus qu'à taper l'adresse http://localhost:901 dans n'importe quel navigateur Web, et s'authentifier en tant que root.

;
; Parametres generaux.
;

[global]

;
; Parametres supplementaires propres au serveur dont le nom NetBIOS est
; precise par ``%m''. Les subsitutions %u, %P %S ne fonctionnent pas.
;

   include = /etc/smb.conf.%m

;
; Systeme de gestion d'impression utilise. Choix possibles :
;   "printing=BSD", "printing=AIX", "printing=LPRNG", "printing=PLP",
;   "printing=SYSV", "printing="HPUX", "printing=QNX" ou "printing=SOFTQ".
;

   printing = bsd

;
; Charger automatiquement les imprimantes du système.
;

   printcap name = /etc/printcap
   load printers = yes

;
; Nom d'un utilisateur invite (qui doit exister sur le systeme).
;

   guest account = nobody

;
; Liste des utilisateurs interdits d'acces à Samba.
;

   invalid users = root

;
; Nom netbios du serveur samba (nom de reseau si rien n'est precise).
;

   netbios name = tarsier

;
;  Ecouter seulement le reseau local.
;

   interfaces = 192.168.1.1/255.255.255.0

;
; Adresses IP autorisees a contacter le serveur Samba.
;

   hosts allow = 192.168.1.1/255.255.255.0

;
; Choix du mode de securite :
;     security=user oblige chaque utilisateur a avoir un compte sur le serveur.
;     security=share ne gere pas les utilisateurs et ne partage que des
; ressources identiques pour tout le monde.
;

   security = user

;
; Nom NetBIOS (ou nom de reseau si il figure dans le fichier /etc/lmhosts)
; du serveur SMB utilise pour l'authentification username/password via ce
; serveur.
;

   password server = %m

;
; Nombre de lettres a changer en majuscule/minuscule, si le mot de passe
; ne correspond pas.
;

   password level = 4

;
; Le nom du groupe de travail dont ce serveur fait partie.
;

   workgroup = ChezWam

;
; Description du serveur, visible lorsque on affiche les details :
;     %h : nom DNS du serveur
;     %v : version de samba
;

   server string = %h server (Samba %v)

; On utilise encore le fichier de log de samba, et pas que celui
; de syslog
   syslog only = no

; Le minimum d'informations importantes dans le syslog,
; le reste étant toujours dans /var/log/smb(nmb)/
   syslog = 0;

;
; Un fichier journal par machine.
;

   log file = /usr/local/samba/var/log.%m 

;
; La taille maximum du fichier de log.
;

   max log size = 1000

;
; Pour que samba reagisse plus vite.
;

   socket options = IPTOS_LOWDELAY TCP_NODELAY \
                    SO_SNDBUF=4096 SO_RCVBUF=4096

;
; On utilise les mots de passe encryptes. Upgrade de Windows (95 ou NT)
; en perspective pour que cela fonctionne...
;

   encrypt passwords = yes

;
; Le serveur fait aussi serveur WINS, qui permet a deux reseaux utilisant
; des plages d'IP différentes de se voir mutuellement.
;

   wins support = yes

;
; Active samba comme serveur maitre du domaine.
;

   domain master = yes

;
; Active samba comme serveur maitre local.
;

   local master = yes

;
; Samba doit il etre prefere a tout autre serveur primaire, si il y en a ?
;

   preferred master = yes

;
; Niveau de l'OS (ici maitre du domaine car au dessus du serveur NT).
; ``local master'' doit etre mis a ``yes''.
;

   os level = 34

;
; Samba doit il gerer la centralisation des connexions du domaine ?
;

   domain logons = yes

;
; Quel script doit etre lance lorsque un client se connecte ? %g correspond
; au nom du groupe primaire dont fait partie cet utilisateur.
;

   logon script = %g.bat

;
; Dans quel repertoire se trouvent les fichiers de demarrage ? %L est le nom
; netbios du serveur samba.
;

   logon path=\\%L\netlogon

;
; Ou faut-il stocker les profils itinerants des utilisateurs ? %U est le
; login de l'utilisateur.
;

   logon home=\\%L\%U\winprofile

;
; Dans que ordre on fait appel aux ressources pour trouver le nom
; d'une machine ?
;

   name resolve order = lmhosts host wins bcast

;
; Samba doit il faire proxy DNS ?
;

   dns proxy = no

;
; Faut-il respecter les noms de fichiers et leurs casse ?
;

   preserve case = yes
   short preserve case = yes

;
; Faut-il synchroniser les mots de passe windows et Unix ?
;

   unix password sync = yes

;
; Programme a utiliser pour la synchronisation des mots de passes
;

   passwd program = /usr/bin/passwd %u

;
; Fichier contenant les mots de passe cryptés. Utilise si
; ``encrypt passwords = yes'' est mis dans la section [global].
;

   smb passwd file = /etc/smbpasswd

;
; Protocole de discution pour changer le mot de passe.
;

   passwd chat = *Enter\snew\sUNIX\spassword:* \
%n\n *Retype\snew\sUNIX\spassword:* %n\n .

;
; Faire office de serveur de temps.
;

   time server = yes

;
; Ou se trouve le netlogon, utilise lors de la connexion.
;

[netlogon]
   path = /home/netlogon/%g
   public = no
   writeable = no
   browseable = no

;
; Le répertoire Home de chaque utilisateur
;

[homes]

;
; Description.
;

   comment = Home Directories

;
; Parcourt du repertoire interdit.
;

   browseable = no

   read only = no
   create mask = 0700
   directory mask = 0700

;
; Partage du FTP.
;

 [ftp]
   path = /home/ftp/pub
   public = yes
   printable = no
   guest ok = yes

;
; Le répertoire temporaire
;

 [tmp]
   path = /tmp
   public = yes
   printable = no
   guest ok = yes
   writable = yes

;
; Un autre temporaire pour l'utilisateur mdecore.
;

 [bigtemp]
   path = /home/bigtemp
   public = yes
   printable = no
   guest ok = yes
   valid users = mdecore
   writable = yes

Les variables utilisées par Samba sont les suivantes :

Variable Définition
%a Architecture du client (Win95, WfWg, WinNT, Samba, ...)
%I Adresse IP du client
%m Nom NetBios du client
%M Nom DNS du client
%u Nom de l'utilisateur Unix courant
%g Groupe primaire de l'utilisateur %u
%H Répertoire d'accueil de l'utilisateur %u
%P Racine du partage actuel
%S Nom du partage actuel
%h Nom DNS du serveur Samba
%L Nom NetBios du serveur Samba
%v Version de Samba
%T Date et l'heure courantes

Il ne reste plus qu'à positionner les scripts à exécuter lors de la connexion d'un utilisateur dont le répertoire d'accueil sera /home/netlogon/%u (où %u est remplacé par le nom de l'utilisateur). Ce script /home/netlogon/mdecore/mdecore.bat peut contenire :

net use P: \\tarsier\homes
net use T: \\tarsier\tmp
net time \\tarsier /SET /YES
regedit /s \\tarsier\netlogon\mdecore.reg

et le fichier /home/netlogon/mdecore/mdecore.reg contient :

[HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\User Shell Folders]

Ces scripts permettent à la connexion de monter automatiquement le répertoire d'accueil de l'utilisateur en P: et le répertoire temporaire sur T:. On règle également l'horloge système sur celle du serveur Samba. Ces fichiers doivent être édités sous Dos ou convertis en format Dos (problème de retour à la ligne) avec unix2dos ou recode lat1..ibmpc.


next up previous contents
suivant: Securité monter: Linux, réseau, sécurité et précédent: Pour aller plus loin   Table des matières
2004-07-17