Jres 99
Contrôler des postes Windows avec SAMBA et Unix
____________________
Jean-François Micouleau, Dalalu Bordeaux
Michel Vayssade, UTC Compiègne
____________[]____________
Partie 1 : Samba et les réseaux Windows
Plan
1 - Samba et les réseaux Windows
2 - Configurer Samba
3 - Utilisation avancée de Samba
Introduction : qu'est-ce que Samba ?
Introduction : qu'est-ce que Samba ?
Comment ?
NetBIOS existe au-dessus de NetBEUI, IPX,
DECNet et TCP/IP
Introduction : qu'est-ce que Samba ?
Que fait-il ?
Introduction : qu'est-ce que Samba ?
SMB versus NFS
Introduction : qu'est-ce que Samba ?
Philosophie de conception
Introduction : qu'est-ce que Samba ?
Sur quelles plates-formes tourne-t-il ?
Les protocoles de réseau de Windows
Au commencement était NetBIOS
Les protocoles de réseau de Windows
Au commencement était NetBIOS
Les protocoles de réseau de Windows
SMB, NetBIOS et TCP / IP

Les protocoles de réseau de Windows
Les noms NetBIOS
Les protocoles de réseau de Windows
Les noms NetBIOS
Tous les systèmes Winxx disposent de la commande nbtstat :
C:\windows>nbtstat
Displays protocol statistics and current TCP/IP
connections using NBT(NetBIOS over TCP/IP).
NBTSTAT [-a RemoteName] [-A IP address] [-c] [-n]
[-r] [-R] [-s] [S] [interval] ]
-a (adapter status) Lists the remote machine's
name table given its name
-A (Adapter status) Lists the remote machine's
name table given its IP address.
-c (cache) Lists the remote name cache
including the IP addresses
-n (names) Lists local NetBIOS names.
-r (resolved) Lists names resolved by
broadcast and via WINS
-R (Reload) Purges and reloads the remote
cache name table
-S (Sessions) Lists sessions table with
the destination IP addresses
-s (sessions) Lists sessions table converting
destination IP addresses to host
names via the hosts file.
RemoteName Remote host machine name.
IP address Dotted decimal representation of the IP address.
interval Redisplays selected statistics, pausing interval
seconds between each display. Press Ctrl+C to
stop redisplaying statistics.
C:\windows>
Les protocoles de réseau de Windows
Les noms NetBIOS. Programme "nbtstat".
C:\WINDOWS>nbtstat -n
Node IpAddress: [195.83.155.126] Scope Id: []
NetBIOS Local Name Table
Name Type Status
-----------------------------------------
VIRGO <00> UNIQUE Registered
SI <00> GROUP Registered
VIRGO <03> UNIQUE Registered
VAYSSADE <03> UNIQUE Registered
C:\WINDOWS>
C:\WINDOWS>nbtstat -a kappa
NetBIOS Remote Machine Name Table
Name Type Status
-----------------------------------------
KAPPA <00> UNIQUE Registered
KAPPA <03> UNIQUE Registered
KAPPA <20> UNIQUE Registered
SI <00> GROUP Registered
SI <1E> GROUP Registered
MAC Address = 00-00-00-00-00-00
C:\WINDOWS>nbtstat -a hydra
NetBIOS Remote Machine Name Table
Name Type Status
-----------------------------------------
HYDRA <00> UNIQUE Registered
HYDRA <03> UNIQUE Registered
HYDRA <20> UNIQUE Registered
SI <00> GROUP Registered
SI <1E> GROUP Registered
MAC Address = 00-00-00-00-00-00
C:\WINDOWS>
On peut y voir que la machine "kappa" a comme nom Netbios unique "kappa" à cause du tag <00>, qu'elle a activé un service de messages Netbios (<03>) et qu'elle offre un service de partage de fichier par le nom "kappa"<20> et qu'elle appartient au groupe "SI"<00>. La ligne "SI"<1E> indique que le nom "SI" est aussi utilisé pour l'élection du "browse master".
Les protocoles de réseau de Windows
Les noms NetBIOS
Les protocoles de réseau de Windows
Les noms NetBIOS. Programme "nbtstat".
C:\WINDOWS>nbtstat -s
NetBIOS Connection Table
Local Name State In/Out Remote Host Input Output
-----------------------------------------------------
VIRGO <00> Connected Out KAPPA <20> 250B 401B
VIRGO <03> Listening
VAYSSADE <03> Listening
==> on fait une deuxième connexion, et :
C:\WINDOWS>nbtstat -s
NetBIOS Connection Table
Local Name State In/Out Remote Host Input Output
------------------------------------------------------
VIRGO <00> Connected Out KAPPA <20> 254B 401B
VIRGO <00> Connected Out HYDRA <20> 244B 401B
VIRGO <03> Listening
VAYSSADE <03> Listening
C:\WINDOWS>
Les protocoles de réseau de Windows
Les noms NetBIOS. Programme "nbtstat".
C:\WINDOWS>nbtstat -c
Node IpAddress: [195.83.155.126] Scope Id: []
NetBIOS Remote Cache Name Table
Name Type Host Address Life [sec]
---------------------------------------------------
KAPPA <20> UNIQUE 195.83.155.100 240
KAPPA <00> UNIQUE 195.83.155.100 300
HYDRA <20> UNIQUE 195.83.155.125 300
HYDRA <00> UNIQUE 195.83.155.125 240
Les protocoles de réseau de Windows
Les noms NetBIOS. Programme "nbtstat".
C:\WINDOWS>nbtstat -a sirius
NetBIOS Remote Machine Name Table
Name Type Status
---------------------------------------------
SIRIUS <00> UNIQUE Registered
SIRIUS <03> UNIQUE Registered
SIRIUS <20> UNIQUE Registered
..__MSBROWSE__.<01> GROUP Registered
SI <00> GROUP Registered
SI <1D> UNIQUE Registered
SI <1E> GROUP Registered
Les protocoles de réseau de Windows
Les noms NetBIOS. Programme "nbtstat".
C:\WINDOWS>nbtstat -r
NetBIOS Names Resolution and Registration Statistics
----------------------------------------------------
Resolved By Broadcast = 6
Resolved By Name Server = 0
Registered By Broadcast = 4
Registered By Name Server = 0
NetBIOS Names Resolved By Broadcast
-----------------------------------------
HYDRA
KAPPA
HYDRA <00>
KAPPA <00>
KAPPA <00>
HYDRA <00>
Les protocoles de réseau de Windows
Les noms NetBIOS.
Programme Unix "nmblookup".
[root@hydra /root]# nmblookup hydra Sending queries to 195.83.155.255 195.83.155.125 hydra<00> [root@hydra /root]# nmblookup kappa Sending queries to 195.83.155.255 195.83.155.100 kappa<00> [root@hydra /root]# nmblookup kappa -S Sending queries to 195.83.155.255 195.83.155.100 kappa<00> Looking up status of 195.83.155.100 received 5 names KAPPA <00> - M <ACTIVE> KAPPA <03> - M <ACTIVE> KAPPA <20> - M <ACTIVE> SI <00> - <GROUP> M <ACTIVE> SI <1e> - <GROUP> M <ACTIVE> num_good_sends=0 num_good_receives=0 [root@hydra /root]# nmblookup hydra -S Sending queries to 195.83.155.255 195.83.155.125 hydra<00> Looking up status of 195.83.155.125 received 5 names HYDRA <00> - B <ACTIVE> HYDRA <03> - B <ACTIVE> HYDRA <20> - B <ACTIVE> SI <00> - <GROUP> B <ACTIVE> SI <1e> - <GROUP> B <ACTIVE> num_good_sends=0 num_good_receives=0 [root@hydra /root]# [root@hydra /root]# nmblookup kappa#03 Sending queries to 195.83.155.255 195.83.155.100 kappa<03> [root@hydra /root]# nmblookup SI Sending queries to 195.83.155.255 195.83.155.125 SI<00> 195.83.155.123 SI<00> ..... 195.83.155.55 SI<00> 195.83.155.126 SI<00> 195.83.155.124 SI<00>
Les protocoles de réseau de Windows
Le service de noms de NetBIOS
Les protocoles de réseau de Windows
L'espace des noms de NetBIOS
Les protocoles de réseau de Windows
Enregistrement de noms NetBIOS
Les protocoles de réseau de Windows
Service de session NetBIOS
Les protocoles de réseau de Windows
Service de datagramme de NetBIOS
Les protocoles de réseau de Windows
Le protocole SMB
Les protocoles de réseau de Windows
Le protocole SMB
Les protocoles de réseau de Windows
Le protocole SMB : un échange simple
Les protocoles de réseau de Windows
Workgroups (Win9x) et Domaines (WinNT)
Les protocoles de réseau de Windows
Workgroups (Win9x) et Domaines (WinNT)
Schéma de validation des accès d'un
client sur un serveur :
Modèle du Workgroup et modèle du domaine.


Les protocoles de réseau de Windows
Workgroups (Win9x) et Domaines (WinNT)
Les protocoles de réseau de Windows
Workgroups (Win9x) et Domaines (WinNT)
Les protocoles de réseau de Windows
Domaines (WinNT) : contrôle
d'accès
Les protocoles de réseau de Windows
Browsing : balayage du voisinage réseau
Les protocoles de réseau de Windows
Browsing : balayage du voisinage réseau
Temps de propagation des modifications
Les protocoles de réseau de Windows
Browsing : balayage du voisinage réseau
Browsing : l'élection du Master Browser
Les protocoles de réseau de Windows
Browsing : balayage du voisinage réseau
Browsing : l'élection du Master Browser
NT ser 4 > NT ser 3.51
> NT work 4 > NT work 3.51
> Win95 > WfW
Les protocoles de réseau de Windows
Résolution des noms dans un environnement
routé
Les protocoles de réseau de Windows
Résolution des noms dans un environnement
routé
Les protocoles de réseau de Windows
Résolution des noms dans un environnement
routé
Les protocoles de réseau de Windows
Résolution des noms dans un environnement
routé
Les protocoles de réseau de Windows
Browsing à travers des
sous-réseaux
(un peu compliqué et parfois subtil)
Les protocoles de réseau de Windows
Browsing à travers des
sous-réseaux
(un peu compliqué et parfois subtil)
Les protocoles de réseau de Windows
Browsing à travers des sous-réseaux
Schéma de l'exemple

Les protocoles de réseau de Windows
Browsing à travers des sous-réseaux
Exemple (schéma ci-dessus)
Les protocoles de réseau de Windows
Browsing à travers des sous-réseaux
Exemple (schéma ci-dessus - suite)
Les protocoles de réseau de Windows
Browsing à travers des sous-réseaux
Exemple (schéma ci-dessus - suite)
Les composants de la suite Samba
[root@hydra /root]# locate log.smb /var/log/samba/log.smb [root@hydra /root]# grep version /var/log/samba/log.smb smbd version 2.0.3 started.
Les composants de la suite Samba
samba/bin/ : les programmes de la suite
Les composants de la suite Samba
Schéma d'un serveur Samba


Jres 99
Contrôler des postes Windows avec SAMBA et Unix
____________________
Jean-François Micouleau, Dalalu Bordeaux
Michel Vayssade, UTC Compiègne
____________[]____________
Plan
1 - Samba et les réseaux Windows
2 - Configurer Samba
3 - Utilisation avancée de Samba
Installation de Samba
Les sites web
Installer à partir des sources
Installer à partir d'un binaire


Site de téléchargement

Site ftp

Samba T-shirts !
Installation de Samba à partir des sources
Installation de Samba à partir d'un binaire
(il peut y avoir des retards dans les versions pré-compilées)
Configuration réseau du PC client
Panneau de configuration / Réseau
--> carte ethernet + TCP/IP + Client Microsoft

Configuration réseau du PC client
Panneau de configuration / Réseau
--> TCP/IP / Propriétés

Configuration réseau du PC client
Panneau de configuration / Réseau
--> TCP/IP : config Wins
désactiver Wins = résoudre noms Netbios par broadcast (réseau local)
si routeur à traverser : spécifier serveur Wins

Configuration réseau du PC client
Panneau de configuration / Réseau
--> Identification : nom Netbios et "Workgroup"

Configuration réseau du PC client
Panneau de configuration / Réseau
--> lister la config : winipcfg.exe


Une première installation minimale
si vous voulez "voir" le serveur samba depuis
des PCs déjà installés dans un Workgroup
[global]
workgroup = recherche
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
==================================
[1] pendant l'install (RedHat 6.0):
==================================
cocher les cases
[*] installer Samba
[*] lancer Samba au boot
état après install de Linux :
----------------------------
[mv@hydra mv]$ smbclient -L hydra -U '' -N
Added interface ip=195.83.155.125
bcast=195.83.155.255 nmask=255.255.255.0
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.3]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server)
lj Printer
Server Comment
--------- -------
HYDRA Samba Server
URANUS Samba Server
Workgroup Master
--------- -------
MYGROUP URANUS
[mv@hydra mv]$
[mv@hydra mv]$ netstat -a | grep netbios
tcp 0 0 *:netbios-ssn *:* LISTEN
udp 0 0 hydra.utc.f:netbios-dgm *:*
udp 0 0 hydra.utc.fr:netbios-ns *:*
udp 0 0 *:netbios-dgm *:*
udp 0 0 *:netbios-ns *:*
[mv@hydra mv]$ nmblookup -B hydra __SAMBA__
Sending queries to 195.83.155.125
195.83.155.125 __SAMBA__<00>
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
=======================================
[2] modifier smb.conf et relancer Samba
=======================================
# edit smb.conf !changer 2 lignes
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = SI
# server string (~= NT Description field)
server string = %h serveur Samba
#! relancer samba
[root@hydra /etc]# cd rc.d/init.d/
[root@hydra init.d]# ls smb
smb
[root@hydra init.d]# grep Usage smb
echo "Usage: smb {start|stop|restart|status}"
[root@hydra init.d]# ./smb restart
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
[root@hydra init.d]# ps -aef | grep mbd root 553 1 0 Sep20 ? 00:00:00 smbd -D root 564 1 0 Sep20 ? 00:00:00 nmbd -D [root@hydra init.d]# ./smb restart Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ] Starting SMB services: [ OK ] Starting NMB services: [ OK ] [root@hydra init.d]# ps -aef | grep mbd root 2583 1 0 12:13 ? 00:00:00 smbd -D root 2594 1 0 12:13 ? 00:00:00 nmbd -D root 2598 2497 0 12:13 pts/7 00:00:00 grep mbd [root@hydra init.d]# [mv@hydra mv]$ smbclient -L hydra -U '' -N Added interface ip=195.83.155.125 bcast=195.83.155.255 nmask=255.255.255.0 Domain=[SI] OS=[Unix] Server=[Samba 2.0.3] Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (hydra serveur Samba) lj Printer lp0 Printer Server Comment --------- ------- HYDRA hydra serveur Samba SIGMA sigma, serveur FTP public Workgroup Master --------- ------- SI SIGMA [mv@hydra mv]$
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
"Connecter un lecteur réseau" à travers Samba
Après le lancement de Samba, machine Samba
est vue dans le "voisinage réseau" :

On fait l'opération "Connecter un lecteur réseau" :


Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
"Connecter un lecteur réseau" à travers Samba
Cette connexion donne accès au répertoire Unix de l'utilisateur sur la machine Samba:

Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
Vision du serveur Samba depuis Windows
1 - après le 1er boot (smb.conf
d'origine)
Microsoft(R) Windows 95 (C)Copyright Microsoft Corp 1981-1995. C:\WINDOWS>net view \\hydra Erreur 53 : Le nom d'ordinateur spécifié dans le chemin réseau est introuvable. Vérifiez que le nom de l'ordinateur distant spécifié est correct ou réessayez lorsqu'il pourra être disponible. C:\WINDOWS>net view \\kappa Erreur 86 : Le mot de passe réseau spécifié est incorrect. Tapez le mot de passe correct ou pour plus d'informations, contactez votre administrateur réseau. C:\WINDOWS>net view \\kappa /yes Ressources partagées à \\KAPPA Nom de partageType Commentaire ---------------------------------------------- dj1200_sapc1 Impr. homes Disque Repertoires utilisateurs lasbim1 Impr. lasergb Impr. ..................... silaser1 Impr. silaser2 Impr. vayssade Disque Repertoires utilisateurs Exécution achevée. C:\WINDOWS>
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
Vision du serveur Samba depuis Windows
C:\WINDOWS>net view /?
Affiche la liste des ordinateurs dans le groupe
de travail spécifié ou les ressources partagées
disponibles sur l'ordinateur désigné.
NET VIEW [\\ordinateur] [/YES]
NET VIEW [/WORKGROUP:wgname] [/YES]
ordinateur Indique le nom de l'ordinateur
dont vous souhaitez afficher la
liste des ressources partagées.
/WORKGROUP Permet d'afficher les noms des
ordinateurs dans un autre
groupe de travail qui partagent
des ressources.
wgname Identifie le groupe de travail
dont vous souhaitez afficher
les noms des ordinateurs.
/YES Exécute la commande NET VIEW
sans vous demander au préalable
de fournir des informations ou
de confirmer les opérations.
Pour afficher la liste des ordinateurs qui
partagent des ressources dans votre groupe
de travail, tapez la commande NET VIEW
suivie d'aucun paramètre.
C:\WINDOWS>
C:\WINDOWS>net view /workgr:mygroup
Serveurs disponibles dans le groupe de
travail MYGROUP.
Nom de serveur Remarque
-----------------------------------------
\\HYDRA Samba Server
\\URANUS Samba Server
Exécution achevée.
C:\WINDOWS>
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
Vision du serveur Samba depuis Windows
2 - après le 2ème boot (smb.conf
modifié)
C:\WINDOWS>net view /workgroup:SI Serveurs disponibles dans le groupe de travail SI. Nom de serveur Remarque ----------------------------------------------- \\HYDRA hydra serveur Samba \\KAPPA kappa, serveur des PC du SI >>>>>>>>> ici, faire : >>>>>>>>> explorateur / outils / >>>>>>>>> connecter un lecteur réseau C:\WINDOWS> C:\WINDOWS>net view \\hydra Ressources partagées à \\HYDRA Nom de partageType Commentaire -------------------------------------------------- lj Impr. lp0 Impr. vayssade Disque Home Directories Exécution achevée. C:\WINDOWS>
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
Depuis Windows : connexion avec "net use"
Le programme windows "net" possède de nombreuses commandes utiles en plus "net view" :
C:\WINDOWS>net /?
Pour plus d'informations concernant une
commande NET particulière de Microsoft
, tapez le nom de la commande suivi de
/? (par exemple, NET VIEW /?).
NET CONFIG Affiche les paramètres couran
NET DIAG Exécute le programme de diagn
qui permet d'afficher des inf
votre réseau.
NET HELP Fournit des informations conc
les messages d'erreur.
NET INIT Charge les pilotes des protoc
les lier au gestionnaire des
NET LOGOFF Interrompt la connexion entre
les ressources partagées auxq
NET LOGON Permet de vous identifier en
de travail.
NET PASSWORD Modifie votre mot de passe d'
NET PRINT Affiche des informations conc
d'impression et gère les tâch
NET START Démarre les services.
NET STOP Arrête les services.
NET TIME Affiche l'heure ou synchronis
par rapport à celle d'un serv
Workgroups, Windows NT, Windo
NET USE Permet de se connecter à une
déconnecter de celle-ci, ou d
concernant les connexions.
NET VER Affiche le type et le numéro
redirecteur du groupe de trav
NET VIEW Affiche la liste des ordinate
des ressources ou la liste de
sur un ordinateur spécifique.
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
Depuis Windows : connexion avec "net use"
"net use" permet de "connecter un lecteur
réseau" et de le déconnecter depuis la ligne de
commande, ce qui permet de mettre ces commandes dans des fichiers
".bat" que l'on pourra faire exécuter automatiquement sur le
PC, au login et au logout réseau sur Samba :
connecter un lecteur réseau : C:\WINDOWS>net use h: \\sirius\vayssade Mot de passe non valide pour \\SIRIUS\VAYSSADE. Pour plus d'informations, contactez votre administrateur réseau. Tapez le mot de passe pour \\SIRIUS\VAYSSADE :********** Exécution achevée. C:\WINDOWS> déconnexion du lecteur réseau : C:\WINDOWS>net use h: /delete /yes Exécution achevée. C:\WINDOWS> C:\WINDOWS>net use Etat Nom local Nom à distance ----------------------------------------------------- OK F: \\KAPPA\VAYSSADE OK G: \\HYDRA\VAYSSADE Exécution achevée. C:\WINDOWS> C:\WINDOWS>net ver Microsoft Client - Redirecteur complet. Version 4.00 Copyright (c) Microsoft Corp. 1993-1995. C:\WINDOWS>net config Nom d'ordinateur \\VIRGO Nom d'utilisateur VAYSSADE Groupe de travail SI Rép. racine de la station C:\WINDOWS Version du logiciel 4.00.950 Version du redirecteur 4.00 Exécution achevée. C:\WINDOWS>
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
Arborescence vue à travers Samba
Il peut être utile de ne pas montrer toute l'arborescence des utilisateurs Unix à travers Samba, mais seulement une branche :
[homes] comment = Home Directories path=/home/%u/pc browseable = no writable = yes![]()
Journal d'un première installation minimale
sur un système Linux (RedHat 6.0)
Utilisation d'un lecteur ZIP à travers Samba
[root@hydra /root]# mount -t vfat -o uid=500,gid=500 /dev/hdd4 /z [mv@hydra mv]$ ls -l /z/ total 556 drwxr-xr-x 2 mv mv 2048 Sep 22 18:54 samba On crée un lien depuis le répertoire utilisateur vers le point de montage du zip : [mv@hydra mv]$ ln -s /z z Par ce lien, le contenu du zip est accessible dans le lecteur réseau :![]()
Configuration de Samba : smb.conf
[global]
nom_de_paramètre = une_valeur
; une ligne de commentaire
; noms de param. et valeurs sont \ insensibles à la
casse, sauf si ceci est pertinent pour le système
d'exploitation hôte
[section]
...
# ceci est aussi un commentaire
param = true
; true , yes , 1
; false, no , 0
Les options de configuration:
Format des lignes de smb.conf
![]()
Les options de configuration:
les 3 sections spéciales du fichier
smb.conf
Les options de configuration:
Les macros et variables
Macros toujours disponibles
Les options de configuration:
Les macros et variables
Cet exemple (%S) restreint les connections à l'utilisateur dont le username est le même que celui du service virtuel créé à la connexion à l'image de [homes] et qui a pour nom le username trouvé dans /etc/passwd
Seul dupond pourra se connecter sur le répertoire home/dupond d'unix; durand ne pourra pas, même s'il connaît le mot de passe unix de dupond et même si le répertoire home/dupond est en mode 777 !
Les options de configuration:
les paramètres de la section
[global]
Les options de configuration:
les paramètres de la section
[global]... suite
paramètres relatifs à l'élection du
browser
Les options de configuration:
les paramètres de la section
[global]... suite
paramètres relatifs au
réseau
Les options de configuration:
Vérifier le fichier smb.conf et lancer
samba
--> le choix est fonction du nombre et de la fréquence des connexions :
Les options de configuration:
Tester le serveur Samba actif
unix > smbclient //kappa/projet -U pierre
Sécurité et mots de passe
SMB commentaire valeur par défaut pour V <=
1.19 valeur par défaut pour V >=
2.00
server
domain
variation du mode user
idem

Sécurité et mots de passe
security = share

Sécurité et mots de passe
security = user

Sécurité et mots de passe
security = user

Sécurité et mots de passe
security = server

Sécurité et mots de passe
security = server
Sécurité et mots de passe
security = domain

Sécurité et mots de passe
username level = n
password level = m
Sécurité et mots de passe
username map = fichier
Sécurité et mots de passe
password en texte et password crypté
Sécurité et mots de passe
password en texte et password crypté
le dialogue client NT - serveur NT pour la validation du mot de passe (1 / 3 )

Sécurité et mots de passe
password en texte et password crypté
le dialogue client NT - serveur NT pour la validation du mot de passe (2 / 3 )

Sécurité et mots de passe
password en texte et password crypté
le dialogue client NT - serveur NT pour la validation du mot de passe (3 / 3 )

Sécurité et mots de passe
password en texte et password crypté
Sécurité et mots de passe
password en texte et password crypté
Sécurité et mots de passe
password en texte et password crypté : choisir
passwd texte (circule en clair sur le réseau) :
C:\WINDOWS\SYSTEM> VREDIR VXD 156 761 24/08/96 11:11 VREDIR.VXD VNETSUP VXD 19 129 24/08/96 11:11 VNETSUP.VXD
Sécurité et mots de passe
password en texte et password crypté : choisir
passwd crypté (circule crypté sur le réseau) :
username:uid:xx_32_octets_hash_Lan_Man_xx:
xx_32_octets_hash_NT_xxxx:flags:lastset:
lastset=date du dernier changement du mot de
passe
Sécurité et mots de passe
construire et remplir une base de passwd NT
encrypt passwords =
yes
Sécurité et mots de passe
construire et remplir une base de passwd NT
encrypt passwords =
yes
Sécurité et mots de passe
garder synchrones des passwd NT et Unix
Sécurité et mots de passe
garder synchrones des passwd NT et Unix
unix password sync = yes / no
unix password chat = \ *old*password* %o\n \ *new*password* %n\n \ *new*password* %n\n \ *changed*
Sécurité et mots de passe
garder synchrones des passwd NT et Unix
propager les changements de Unix vers NT :
pam_smbpass
auth required /lib/security/pam_smbpass.so
pam_smbpass va mettre à jour à la
fois la base Unix et la base SMB, MAIS, il ne peut le faire que sur
la machine sur laquelle il est installé => pour que
ça fonctionne il faut faire le changement de mot de passe sur
la machine qui supporte le serveur Samba
il existe d'autres packages PAM, mais qui ne font pas la mise
à jour du mot de passe SMB
Sécurité et mots de passe
accessibilité (allow , deny , equiv)
hosts allow = 192.168.1.10 195.55.180 \
truc.machin.fr 192.168 except 192.168.1 hosts deny = 195.10 178.1 mechan.hack.com hosts equiv = /etc/hosts.equiv
!! liste de hosts ou users accédant sans passw
user host = yes
!! utilise ~/.rhosts du user qui se connecte

Jres 99
Contrôler des postes Windows avec SAMBA et Unix
____________________
Jean-François Micouleau, Dalalu Bordeaux
Michel Vayssade, UTC Compiègne
____________[]____________
Plan 2 - Configurer Samba 3 - Utilisation avancée de
Samba
Contrôler des postes
Windows avec SAMBA et Unix
1 - Samba et les réseaux
Windows
Un smb.conf minimum, avant ajout de configuration de partages disques
#=================== Global Definitions ================= [global] workgroup = SI server string = %h serveur Samba printcap name = /etc/printcap load printers = yes log file = /var/log/samba/log.%m max log size = 50 security = user socket options = TCP_NODELAY dns proxy = no #=================== Share Definitions ================== [homes] comment = Home Directories browseable = no writable = yes [printers] comment = All Printers path = /var/spool/samba browseable = no # Set public = yes to allow user 'guest account' to print guest ok = no writable = no printable = yes # This one for people to share files ;[projet] ; comment = exemple de partage ; path = /home/projet ; read only = no
Configuration des partages disques
Scénario d'une première
création d'un répertoire partagé
[projet]
comment = répertoire commun pierre et jean
; le texte ci-dessus apparait dans l'explorateur
path = /home/projet
writable = yes
valid users = @projet
# les membres du group "projet" ont accès
locking = yes
; modes par défaut à la création de fichiers:
create mode = 0660
directory mode = 0770
force group = projet
Configuration des partages disques
Un premier partage. Journal de la mise en place. Apparence dans le "voisinage réseau"
[root@hydra /]# groupadd -g 400 projet [root@hydra /]# useradd -g 100 -u 601 -c "Samba pierre" pierre [root@hydra /]# useradd -g 100 -u 602 -c "Samba jean" jean [root@hydra /]# passwd pierre [root@hydra /]# pico /etc/group [root@hydra /]# grep users /etc/group users::100: [root@hydra /]# grep projet /etc/group projet:x:400:pierre,jean [root@hydra /]# mkdir /home/projet [root@hydra /]# ls -lgd /home/pierre/ drwx------ 4 pierre users 1024 Oct 12 16:06 /home/pierre [root@hydra /]# chgrp projet /home/projet/ [root@hydra /]# ls -lgd /home/projet/ drwxr-xr-x 2 root projet 1024 Oct 12 16:13 /home/projet [root@hydra /]#
Configuration des partages disques
Un premier partage. Journal de la mise en place. Apparence dans le "voisinage réseau"
[global] workgroup = recherche netbios name = hydra server string = Serveur recherche security = user

Configuration des partages disques
Un premier partage. Journal de la mise en place. Apparence dans le "voisinage réseau"

[projet] comment = exemple de partage sur hydra path = /home/projet browsable = yes

Configuration des partages disques
Un premier partage. Journal de la mise en place. Apparence dans le "voisinage réseau"
[root@hydra /etc]# cd rc.d/init.d/ [root@hydra init.d]# ./smb restart Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ] Starting SMB services: [ OK ] Starting NMB services: [ OK ] [root@hydra init.d]# smbclient -L hydra -U '' -N Added interface ip=195.83.155.125 bcast=195.83.155.255 nmask=255.255.255.0 Domain=[SI] OS=[Unix] Server=[Samba 2.0.3] Sharename Type Comment --------- ---- ------- projet Disk exemple de partage sur hydra IPC$ IPC IPC Service (hydra serveur Samba) lj Printer lp0 Printer Server Comment --------- ------- HYDRA hydra serveur Samba Workgroup Master --------- ------- SI [root@hydra init.d]#
Configuration des partages disques
Un premier partage. Apparence dans le "voisinage réseau"
unix> cat > /home/projet/test-1.txt Un fichier de test dans le répertoire partagé ^D unix> cat /home/projet/test-2.txt un autre fichier de test dans le rép. commun. ^D
unix> cp test-2.txt test-3.txt unix> todos /home/projet/test-3.txt unix>

Configuration des partages disques
Accessibilité du partage.
Essayer de copier un fichier vers le partage ou de créer un fichier ou un répertoire dans le partage --> impossible.

Comment Samba établit-il la connexion avec le partage ?
Le partage existe : le demandeur y a-t-il accès ?
Configuration des partages disques
Accessibilité du partage.
Samba a trouvé le partage, objet de la demande de connexion.
Comment vérifie-t-il que l'auteur de la demande de connexion a le droit d'accès au partage ?
Plusieurs tests sont effectués. Le
processus s'arrête au premier test réussi. Si tous
échouent, l'accès est refusé (liste
simplifiée) :
Si l'utilisateur choisi pour la connexion par cette procédure est dans une liste "invalid user", la connexion est refusée.
Samba détermine ainsi sous quel compte (quel user) l'accès au partage sera fait. Mais il y a encore d'autres paramètres qui, en plus des protections unix relatives à cet utilisateur, contrôlent l'accès au partage.
==> cas particulier d'un service déclaré "guest only" : samba donne accès en tant que user spécifié par le paramètre "guest = nom".
Configuration des partages disques
Accessibilité du partage.
Samba a trouvé le partage, objet de la demande de connexion.
Il a validé l'accès en tant que username "un_nom".
Un certain nombre de paramètres vont modifier le type d'accès, voire l'interdire :
Configuration des partages disques
Partage par défaut et user invité
("guest").
Configuration des partages disques
Accessibilité et protections
Configuration des partages disques
Accessibilité et protections
[root@hydra work]# ls -lgd /home/projet/ drwxr-xr-x 2 root projet 1024 Oct 13 10:20 /home/projet [root@hydra work]# ls -l /home/projet/ total 3 -rw-r--r-- 1 root root 49 Oct 12 16:47 test-1.txt -rw-r--r-- 1 root root 41 Oct 13 10:18 test-2.txt -rw-r--r-- 1 root root 51 Oct 13 10:20 test-3.txt [root@hydra work]# chmod g+w /home/projet/ [root@hydra work]# ls -lgd /home/projet/ drwxrwxr-x 2 root projet 1024 Oct 13 10:20 /home/projet
la création de fichiers dans /projet devient possible :
Configuration des partages disques
Accessibilité et protections
à cause de :
-rw-r--r-- 1 root root 41 Oct 13 10:18 test-2.txt
=== =====

Configuration des partages disques
Accessibilité et protections
le but est de permettre à chaque membre du groupe la création de fichiers et la ré-écriture de fichiers existants dans /projet facilitant ainsi le travail coopératif
écriture de fichiers existants impossible --> enregistre sous autre nom : test-pierre [root@hydra work]# ls -lg /home/projet/ total 5 -rw-r--r-- 1 root root 49 Oct 12 16:47 test-1.txt -rw-r--r-- 1 root root 41 Oct 13 10:18 test-2.txt -rw-r--r-- 1 root root 51 Oct 13 10:20 test-3.txt -rwxr--r-- 1 jean users 92 Oct 13 11:24 test-jean.txt -rwxr--r-- 1 pierre users 126 Oct 13 11:35 test-pierre.txt [root@hydra work]# --> test-pierre.txt lisible par jean [root@hydra work]# chmod o-r /home/projet/test-jean.txt [root@hydra work]# chmod o-r /home/projet/test-pierre.txt [root@hydra work]# chmod g+w /home/projet/test-pierre.txt [root@hydra work]# chmod g+w /home/projet/test-jean.txt [root@hydra work]# ls -lg /home/projet/ total 5 -rw-r--r-- 1 root root 49 Oct 12 16:47 test-1.txt -rw-r--r-- 1 root root 41 Oct 13 10:18 test-2.txt -rw-r--r-- 1 root root 51 Oct 13 10:20 test-3.txt -rwxrw---- 1 jean users 92 Oct 13 11:24 test-jean.txt -rwxrw---- 1 pierre users 126 Oct 13 11:35 test-pierre.txt ---> jean peut lire test-pierre.txt ... et le modifier et le ré-écrire (rw pour le groupe) mais tous les membres du groupe "users" peuvent lire ces fichiers ! les usernames "jean" et "pierre" sont à la fois dans le groupe "users" et dans le groupe "projet" exemple : login: paul Password: --- /etc/bashrc --- [paul@hydra paul]$ ls /home/projet/ test-1.txt test-2.txt test-3.txt test-jean.txt test-pierre.txt [paul@hydra paul]$ more /home/projet/test-pierre.txt Ceci est un test de partage,
Configuration des partages disques
Accessibilité et protections
--> modifier le groupe des fichiers
[root@hydra work]# chgrp projet /home/projet/test-pierre.txt [root@hydra work]# ls -lg /home/projet/ total 5 -rw-r--r-- 1 root root 49 Oct 12 16:47 test-1.txt -rw-r--r-- 1 root root 41 Oct 13 10:18 test-2.txt -rw-r--r-- 1 root root 51 Oct 13 10:20 test-3.txt -rwxrw---- 1 jean users 92 Oct 13 11:24 test-jean.txt -rwxrw---- 1 pierre projet 146 Oct 13 10:52 test-pierre.txt login: paul Password: Last login: Wed Oct 13 11:03:48 from localhost --- /etc/bashrc --- [paul@hydra paul]$ more /home/projet/test-pierre.txt /home/projet/test-pierre.txt: Permission denied
--> rendre cette attribution automatique
[projet] comment = exemple de partage sur hydra path = /home/projet read only = no ajouter: force group = projet jean crée un fichier dans /projet : [root@hydra /root]# ls -lg /home/projet/ total 6 -rw-r--r-- 1 root root 49 Oct 12 16:47 test-1.txt -rw-r--r-- 1 root root 41 Oct 13 10:18 test-2.txt -rw-r--r-- 1 root root 51 Oct 13 10:20 test-3.txt -rwxr--r-- 1 jean projet 233 Oct 13 12:46 test-5.txt -rwxrw---- 1 jean users 92 Oct 13 11:24 test-jean.txt -rwxrw---- 1 pierre projet 191 Oct 13 11:06 test-pierre.txt
Configuration des partages disques
Accessibilité et protections
-rwxrw---- 1 jean projet 233 Oct 13 12:46 test-5.txt
=== =======
Configuration des partages disques
Gestion des noms
Configuration des partages disques
Gestion des noms : Unix --> DOS
EXEMP = 5 premiers car. avant le "."
~ = séparateur
8Y = calcul hash code sur nom complet
TXT = 3 premiers après "."
Configuration des partages disques
Gestion des verrous sur fichiers ("file locking")
Configuration des partages disques
Gestion des fichiers - divers
Configuration des partages disques
Gestion des CD-Roms
[cdrom] comment = CDrom unix, automounts à la connexion browsable = yes read only = yes path = /mnt/cdrom root preexec = /bin/mount /dev/hdd /mnt/cdrom root postexec = /bin/umount /mnt/cdrom

Jres 99
Contrôler des postes Windows avec SAMBA et Unix
____________________
Jean-François Micouleau, Dalalu Bordeaux
Michel Vayssade, UTC Compiègne
____________[]____________
suite
Plan 2 - Configurer Samba 3 - Utilisation avancée de
Samba
Contrôler des postes
Windows avec SAMBA et Unix
1 - Samba et les réseaux
Windows
Configuration des partages imprimantes
Impressions depuis Windows vers Unix
[printers] comment = All Printers path = /var/spool/samba browseable = no # Set public = yes to allow # user 'guest account' to print guest ok = no writable = no printable = yes [silaser1] printer=R_silaser1 printer driver=Apple LaserWriter Pro 630 postscript=true writable=true path=/usr/tmp printable=true public=false
Configuration des partages imprimantes
Impressions depuis Windows vers Unix
Ces imprimantes vont apparaître dans le voisinage réseau:
[mv@hydra mv]$ smbclient -L hydra -U '' -N
Added interface ip=195.83.155.125
bcast=195.83.155.255 nmask=255.255.255.0
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.0.3]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server)
lj Printer
lp0 Printer
Configuration des partages imprimantes
Impressions depuis Unix vers une imprimante
connectée au port parallèle d'un PC
(1-a) créer une entrée dans printcap
# remote HP Laserjet 6L on windows
wlp:\
:sd=/var/spool/lpd/wlp:\
:mx#0:\
:sh:\
:if=/usr/bin/smbprint:
(1-b) créer le spool associé
[root@sirius /etc]# cd /var/spool/lpd/ [root@sirius lpd]# ls -lg total 4 drwxr-xr-x 2 root lp 2048 Oct 14 13:13 lp drwxr-xr-x 2 root lp 1024 Sep 21 17:55 lp0 -rw-r--r-- 1 root root 4 Sep 21 17:55 lpd.lock [root@sirius lpd]# mkdir wlp [root@sirius lpd]# chgrp lp wlp [root@sirius lpd]# ls -lg total 5 drwxr-xr-x 2 root lp 2048 Oct 14 13:13 lp drwxr-xr-x 2 root lp 1024 Sep 21 17:55 lp0 -rw-r--r-- 1 root root 4 Sep 21 17:55 lpd.lock drwxr-xr-x 2 root lp 1024 Oct 14 13:34 wlp [root@sirius lpd]# [root@sirius wlp]# ls -lga total 3 drwxr-xr-x 2 root lp 1024 Oct 14 13:37 . drwxrwxr-x 5 root daemon 1024 Oct 14 13:34 .. -rw-r--r-- 1 root root 47 Oct 14 13:37 .config
(1-c) dans le spool associé, créer un fichier ".config"
[root@sirius wlp]# cat .config server=virgo !nom du PC service=laserjet6l !nom du service windows password=hp6l !un mot de passe
Configuration des partages imprimantes
Impressions depuis Unix vers une imprimante
connectée au port parallèle d'un PC - suite
(2-a) installer l'imprimante (au sens Windows)
(2-b) déclarer que l'on va créer des services réseau sur ce PC (des "partages" dans le vocabulaire windows) :

be prepared ! (c'est Windows)


vous pouvez répondre "NON" !
Configuration des partages imprimantes
Impressions depuis Unix vers une imprimante
connectée au port parallèle d'un PC - suite
(2-c) déclarer que l'imprimante est partagée (au sens Windows)
icône imprimante, "propriétés", puis onglet "partage" :

Configuration des partages imprimantes
Impressions depuis Unix vers une imprimante
connectée au port parallèle d'un PC - suite
(2-c) donner le nom de partage sous lequel l'imprimante sera annoncée sur le réseau SMB


Configuration des partages imprimantes
Impressions depuis Unix vers une imprimante
connectée au port parallèle d'un PC - suite
(3-a) vérifier si l'imprimante est annoncée sur le réseau SMB
[root@sirius wlp]# smbclient -L virgo -N Added interface ip=195.83.155.123 bcast=195.83.155.255 nmask=255.255.255.0 Sharename Type Comment --------- ---- ------- PRINTER$ Disk LASERJET6L Printer IPC$ IPC Comm. entre processus distants Server Comment --------- ------- Workgroup Master --------- ------- [root@sirius wlp]#
(3-b) faire un essai :
[vayssade@sirius samba]$ lpr -Pwlp print-win.txt ---> sortie incorrecte !! ??
Configuration des partages imprimantes
Impressions depuis Unix vers une imprimante
connectée au port parallèle d'un PC - suite
(3-b) modifier fichier (<LF> versus <CR><LF>)
2 méthodes :
b1) manuelle :
[vayssade@sirius samba]$ cp print-win.txt test.txt [vayssade@sirius samba]$ todos test.txt
b1) automatique : modifier source du script smbprint
# NOTE You may wish to add the line # `echo translate' if you want automatic # CR/LF translation when printing. # echo translate echo "print -" cat ) | /usr/bin/smbclient "\\\\$server\\$service" \ $password -U $server -N -P >> $logfile
(3-c) nouvel essai :
[vayssade@sirius samba]$ lpr -Pwlp test.txt ---> sortie ~ correcte mais : . dernière page pas imprimée . pb de fonte (lettres accents) [vayssade@sirius samba]$ more ff.txt ^L [vayssade@sirius samba]$ lpr -Pwlp test.txt [vayssade@sirius samba]$ lpr -Pwlp ff.txt ---------> ok
Automatisation sur le serveur
scripts "pre" et "post" exec
force user = un_user
force group = un_groupe
preexec = /.../a_login_script.sh par1 par2
postexec = /.../a_logout_script.sh par1 par2
root preexec = /usr/bin/a_login_script.sh %U %m
root postexec = /usr/bin/a_logout_script.sh %U %m
!!**!! ces scripts peuvent être très difficiles à débuguer car "stdout" est envoyé par défaut sur /dev/null
!!****!! les scripts "root ...exec" sont
équivalents à des "suid"
==> il faut les protéger, mais aussi protéger
correctement le smb.conf !!
[cdrom]
comment = cdrom on unix
path = /cd
root preexec = /bin/mount /dev/cdrom /cd
root postexec = \
(/bin/umount /cd; /usr/bin/eject /dev/cdrom)
read only = yes
public = yes
Automatisation sur le serveur
paramètre "include" et variable %L
Recherche de pannes
Vérification du fonctionnement
/usr/doc/samba-2.0.5a/docs/textdocs/DIAGNOSIS.txt
==>(test 1) tester smb.conf [root@hydra /root]# testparm Load smb config files from /etc/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[projet]" Loaded services file OK. Press enter to see a dump of your service definitions ==>(test 2) ping dans les 2 sens Microsoft(R) Windows 95 (C)Copyright Microsoft Corp 1981-1995. C:\WINDOWS>ping hydra Pinging hydra.utc.fr [195.83.155.125] with 32 bytes of data: Reply from 195.83.155.125: bytes=32 time=18ms TTL=255 Reply from 195.83.155.125: bytes=32 time=10ms TTL=255 Reply from 195.83.155.125: bytes=32 time<10ms TTL=255 Reply from 195.83.155.125: bytes=32 time=3ms TTL=255 C:\WINDOWS> [root@hydra /root]# ping virgo PING virgo.utc.fr (195.83.155.126): 56 data bytes 64 bytes from 195.83.155.126: icmp_seq=0 ttl=32 time=22.5 ms 64 bytes from 195.83.155.126: icmp_seq=1 ttl=32 time=1.4 ms 64 bytes from 195.83.155.126: icmp_seq=2 ttl=32 time=0.9 ms --- virgo.utc.fr ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.9/8.2/22.5 ms
Recherche de pannes
Vérification du fonctionnement
==>(test 3) démon smbd ok ? [root@hydra /root]# smbclient -L hydra -N Added interface ip=195.83.155.125 bcast=195.83.155.255 nmask=255.255.255.0 Domain=[SI] OS=[Unix] Server=[Samba 2.0.3] Sharename Type Comment --------- ---- ------- projet Disk exemple de partage sur hydra IPC$ IPC IPC Service (hydra serveur Samba) lj Printer lp0 Printer Server Comment --------- ------- HYDRA hydra serveur Samba SIRIUS sirius Samba Server Workgroup Master --------- ------- SI SIRIUS [root@hydra /root]# ==>(test 4) démon nmbd ok ? [root@hydra /root]# nmblookup -B hydra __SAMBA__ Sending queries to 195.83.155.125 195.83.155.125 __SAMBA__<00> [root@hydra /root]#
Recherche de pannes
Vérification du fonctionnement
==>(test 5) client ok ? [root@hydra /root]# nmblookup -B virgo '*' Sending queries to 195.83.155.126 195.83.155.126 *<00> [root@hydra /root]# nmblookup -B deneb '*' Sending queries to 195.83.155.124 195.83.155.124 *<00> [root@hydra /root]# ==>(test 6) tester adresse broadcast [root@hydra /root]# nmblookup -d 2 '*' Added interface ip=195.83.155.125 bcast=195.83.155.255 nmask=255.255.255.0 Sending queries to 195.83.155.255 Got a positive name query response \ from 195.83.155.125 ( 195.83.155.125 ) ........ Got a positive name query response \ from 195.83.155.126 ( 195.83.155.126 ) 195.83.155.125 *<00> ....... 195.83.155.126 *<00> [root@hydra /root]#
Recherche de pannes
Vérification du fonctionnement
==>(test 7) se connecter à un partage Samba localement depuis Unix [root@hydra /root]# \ smbclient '\\hydra\vayssade' -U vayssade Added interface ip=195.83.155.125 bcast=195.83.155.255 nmask=255.255.255.0 Password: Domain=[SI] OS=[Unix] Server=[Samba 2.0.3] smb: \> dir .Xdefaults H 1422 Tue Sep 21 12:31:33 1999 ............... pc D 0 Tue Oct 12 16:10:06 1999 55604 blocks of size 32768. 19916 blocks available smb: \> Remarque au sujet des noms UNC (Universal Naming Convention) : \\hydra\vayssade or \ est caractère d'échapement dans Unix => le cacher par des quotes (simples ou doubles) smbclient supporte le remplacement des \ par des / [root@hydra /root]# \ smbclient //hydra/vayssade -U vayssade Added interface ip=195.83.155.125 bcast=195.83.155.255 nmask=255.255.255.0 Password: Domain=[SI] OS=[Unix] Server=[Samba 2.0.3] smb: \> exit [root@hydra /root]#
Recherche de pannes
Vérification du fonctionnement
==>(test 8) "browse" serveur Samba C:\WINDOWS>net view Serveurs disponibles dans le groupe de travail SI. Nom de serveur Remarque --------------------------------------------------------- \\HYDRA hydra serveur Samba \\KAPPA kappa, serveur des PC du Service Informat \\SIGMA sigma, serveur FTP public \\SIPCJMB \\SIRIUS sirius Samba Server Exécution achevée. Attention ! il est con : C:\WINDOWS>net view \\hydra /YES Erreur 86 : Le mot de passe réseau spécifié est incorrect. Tapez le mot de passe correct ou pour plus d'informations, contactez votre administrateur réseau. Il veut le nom de la machine en MAJUSCULES ! (grrrr) C:\WINDOWS>net view \\HYDRA /YES Ressources partagées à \\HYDRA Nom de partageType Commentaire --------------------------------------------------- lj Impr. lp0 Impr. projet Disque exemple de partage sur hydra vayssade Disque Home Directories Exécution achevée. C:\WINDOWS>
Recherche de pannes
Vérification du fonctionnement
==>(test 9) se connecter à un partage
se connecter à un lecteur réseau
dans l'explorateur ou au prompt DOS :
C:\WINDOWS>net use h: \\HYDRA\VAYSSADE
Exécution achevée.
C:\WINDOWS>dir h:
Le volume dans le lecteur H est VAYSSADE
Répertoire de H:\
Desktop <REP> 21/09/99 11:31 Desktop
z <REP> 22/09/99 8:32 z
vmware <REP> 22/09/99 12:23 vmware
nsmail <REP> 22/09/99 15:32 nsmail
pcmcia img 1 474 560 23/09/99 14:13 pcmcia.img
pc <REP> 12/10/99 15:10 pc
1 fichier(s) 1 474 560 octets
5 répertoire(s) 652 574 720 octets libres
C:\WINDOWS>net use h: /delete /yes
Exécution achevée.
C:\WINDOWS>
Recherche de pannes
Vérification du fonctionnement
==>(test 10) fichiers de log de samba [root@hydra /root]# ls -l /var/log/samba/ total 137 -rw-r--r-- 1 root root 1230 Oct 13 11:51 log.deneb -rw-r--r-- 1 root root 546 Oct 13 12:41 log.hydra -rw-r--r-- 1 root root 129 Oct 13 11:51 log.nmb -rw-r--r-- 1 root root 2886 Oct 13 11:51 log.nmb.1 -rw-r--r-- 1 root root 7080 Oct 5 12:59 log.nmb.2 -rw-r--r-- 1 root root 53410 Sep 27 12:52 log.nmb.3 -rw-r--r-- 1 root root 55391 Sep 23 09:21 log.nmb.old -rw-r--r-- 1 root root 0 Sep 23 18:34 log.pclaurent -rw-r--r-- 1 root root 0 Sep 22 12:21 log.sipc02 -rw-r--r-- 1 root root 0 Sep 22 12:22 log.sipc04 -rw-r--r-- 1 root root 0 Sep 23 17:23 log.sipclabo -rw-r--r-- 1 root root 2241 Oct 13 11:51 log.smb -rw-r--r-- 1 root root 848 Oct 13 11:55 log.venus -rw-r--r-- 1 root root 9151 Oct 13 12:51 log.virgo [root@hydra /root]#
Recherche de pannes
Vérification du fonctionnement
==>(test 10) fichiers de log de samba [root@hydra samba]# more log.smb [1999/09/27 12:53:54, 1] smbd/server.c:main(614) smbd version 2.0.3 started. Copyright Andrew Tridgell 1992-1998 [1999/09/27 12:53:54, 1] smbd/files.c:file_init(219) file_init: Information only: requested 10000 open files, 1014 are available. [root@hydra samba]# more log.nmb [1999/10/13 11:51:42, 1] nmbd/nmbd.c:main(672) Netbios nameserver version 2.0.3 started. Copyright Andrew Tridgell 1994-1998
Recherche de pannes
Vérification du fonctionnement
==>(test 10) fichiers de log de samba [root@hydra samba]# more log.virgo ............extrait.......... [1999/10/13 10:50:11, 1] smbd/service.c:close_cnum(514) virgo (0.0.0.0) closed connection to service projet [1999/10/13 10:50:43, 0] smbd/oplock.c:request_oplock_break(943) request_oplock_break: no response received to oplock break request to pid 1537 on port 1060 for dev = 305, inode = 436230 [1999/10/13 10:52:26, 0] smbd/oplock.c:oplock_break(742) oplock_break: receive_smb timed out after 30 seconds. oplock_break failed for file test-pierre.txt (dev = 305, inode = 436230). [1999/10/13 10:52:26, 0] smbd/oplock.c:oplock_break(812) oplock_break: client failure in break - shutting down this smbd. [1999/10/13 10:52:26, 1] smbd/service.c:close_cnum(514) virgo (0.0.0.0) closed connection to service projet [1999/10/13 10:52:28, 1] smbd/service.c:make_connection(488) virgo (195.83.155.126) connect to service projet as user jean (uid=602, gid=100) (pid 1546) [1999/10/13 10:55:17, 1] smbd/service.c:close_cnum(514) virgo (195.83.155.126) closed connection to service projet
Les outils Samba sur Unix - smbclient
# faire liste services d'une machine smbclient -L kappa -U '' -N # sauver dans un tar fichiers windows smbclient //server/service -Tc file.tar
kappa:~samba/docs> smbclient //kappa/homes -U vayssade Added interface ip=192.54.189.39 ... Added interface ip=195.83.155.100 ... Server time is Mon Oct 18 12:25:17 1999 Timezone is UTC+2.0 Password: Domain=[SI] OS=[Unix] Server=[Samba 1.9.18p8] security=user smb: \> help ls dir lcd cd pwd get mget put mput rename more mask del rm mkdir md rmdir rd pq prompt recurse translate lowercase print printmode queue qinfo cancel quit q exit newer archive tar blocksize tarmode setmode help ? ! smb: \>
Les outils Samba sur Unix -
smbfs - smbmount - smbumount
NAME
smbmount - mount smb file system
smbmount [ options ]
DESCRIPTION
smbmount is a stripped-down version of
the smbclient(1) program used to mount
smbfs shares. It implements only the
mount command, which then calls the
smbmnt(8) program to do the actual
mount.
smbmount "\\server\tmp" -c 'mount /mnt -u 123 -g 456'
smbmnt is a helper application used
by the smbmount(8) program to do the
actual mounting. smbmnt is meant to be
installed setuid root so that normal
users can mount their smb shares.
NAME
smbumount - umount for normal users
smbumount mount-point
DESCRIPTION
With this program, normal users can
unmount smb-filesystems, provided that
it is suid root.
smbumount has been written to give
normal linux-users more control
over their resources. It is safe to
install this program suid root, because
only the user who has mounted a
filesystem is allowed to unmount it
again.
Les outils Samba sur Unix -
smstatus, smbtar
454 vayssade kappa:~> smbstatus Samba version 1.9.18p8 Service uid gid pid machine ---------------------------------------------- .... vayssade vayssade si 20580 kappa \ (192.54.189.39) Mon Oct 18 12:25:22 1999 ... vayssade vayssade si 30525 hydra \ (195.83.155.125) Fri Oct 15 16:32:38 1999 dupont dupont persutc 25874 pcdupont \ (172.18.6.10) Mon Oct 18 13:47:12 1999 ... Locked files: Pid DenyMode R/W Oplock Name ---------------------------------------------- 25874 DENY_NONE RDWR EXCLUSIVE+BATCH \ mac/dupont/work 99.xls Mon Oct 18 13:50:54 1999 .... 30525 DENY_NONE RDONLY EXCLUSIVE+BATCH \ dmv/samba/docs/popup.txt Mon Oct 18 11:56:33 1999 Share mode memory usage (bytes): 101624(99%) free + 616(0%) used + 160(0%) overhead = 102400(100%) total 455 vayssade kappa:~> man smbstatus
Contrôle d'un domaine Win9x
Pour faire de Samba un contrôleur de domaine Win9x :
os level = 64
domain master = yes
local master = yes
prefered master = yes
[netlogon]
path = /home/samba/netlogon
writeable = no
public = no
# option recommandée :
logon script = logon.bat
# sera exécutée par Windows au début de la session
On peut y mettre par exemple :
net use h: \\serveur\homes
et cette commande exécutée sur windows va monter
à travers Samba sur la machine "serveur"
le répertoire de l'utilisateur (entrée [homes]
du smb.conf )
Contrôle d'un domaine Win9x
Après la configuration de Samba comme contrôleur de domaine Win9x , il faut configurer les clients windows.
Panneau de configuration / Réseau
Client pour les réseaux Microsoft / Propiétés
Cocher "Ouvrir la session sur un domaine NT"
ET remplir la case "nom du domaine"


Quand le PC reboote, la boîte de login aura les trois champs des logins NT : Username / Password / Domaine
Si le client ne trouve pas le serveur de domaine, la raison la plus fréquente est que ce client ne résout pas correctement les noms Netbios (config. WINS).
Si le mot de passe est refusé alors que c'est "le bon":
Contrôle d'un domaine Win9x
Les "user profiles"
Le "profil" windows peut être assimilé à une collection de fichier ".rc" sous Unix.
La base de registres de windows est constituée de deux fichiers :
C:\windows\system.dat
C:\windows\user.dat
Dans le cas de "roaming profile" (profil pour utilisateur itinérant, c'est-à-dire qui ne connecte pas au réseau toujours depuis le même PC), le fichier "user.dat" peut être téléchargé depuis le serveur.

L'entrée "HKEY_CURRENT_USER" (HKCU hive) contient les choix personnels de l'utilisateur, les derniers fichiers ouverts, etc ...
On le met en place dans "Panneau de configuration / Mot de passe" :

Si un client windows a "user profil" actif, et est configuré pour se logger sur un domaine, alors, les profiles sont stockés dans son "home directory".
Le profil est alors copié depuis le serveur au login et du PC sur le serveur au logout.
Par défaut, Samba stocke le profil dans un sous-répertoire "profile" du répertoire de base de l'utilisateur.
MAIS, de nombreux administrateur Samba préfèrent les stocker dans un "partage" séparé par :
[profile] comment = les profiles windows des utilisateurs path = /another_disk/profile create mode = 600 directory mode = 0770 browseable = yes writeable = yes et logon path = \\serveur\profile\%U
en effet, le profile va inclure le bureau, ... et si les utilisateurs "déposent" des fichiers sur le bureau, ceux-ci seront copiés avec le profil, ce qui peut faire beaucoup de place.
Samba PDC expérimental
Actuellement (novembre 1999, Samba
version 2.0.5a), le PDC NT n'est pas officiellement
supporté par Samba. Mais la fonctionalité est
présente sous forme de code
expérimental. Le support , non officiel, se fait
sur la liste samba-ntdom@samba.org
Malgré tout ... ça fonctionne ...
suffisamment bien pour être utilisé dans des contextes de production industriels.
Le protocole d'authentification du domaine NT est resté non documenté par le fabriquant. Il a été entièrement découvert à l'aide d'analyse de trames réseau.
Aujourd'hui, Samba peut :
Il ne peut pas :
Samba PDC expérimental
Mise en place
Créer un fichier smb.conf contenant :
[global] security = user encrypt password = yes domain logon = yes et une entrée [netlogon] comme dans Win9x DC
Quand Samba démarre, il regarde dans le même répertoire que le fichier smbpasswd la présence d'un fichier domain.sid
!!**!! Ne modifiez jamais ce fichier, sinon tous les PCs clients déjà membres du domaine ne pourront plus s'y connecter et devront être à nouveau "ajoutés au domaine".
Samba PDC expérimental
Mise en place : ajouter les clients
Chaque PC client devra être "ajouté au domaine" :
Qu'est-ce qu'un "compte machine" ?
Samba PDC expérimental
Mise en place : ajouter les clients
"Compte machine" : complications
Attention ! Sous WinNT les UID et GID sont pris dans le même espace ! Il est ainsi impossible sous NT d'avoir un UID et un GID de même valeur. NT associe un flag à chaque compte pour indiquer si c'est un groupe ou un utilisateur.
client$:*:10100:5000:NT client:/dev/null:/bin/false
Ceci peut être réalisé avec smbpasswd qui va, par l'option -m , créer le compte avec le mot de passe prévu par NT :
root# smbpasswd -a -m client Added user client$ Password changed for user client$
quand le client joint le domaine, il génère un mot de passe, qu'il envoie sous forme cryptée au serveur; il se servira de ce mot de passe pour se connecter après le reboot.
Samba PDC expérimental
Mise en place : ajouter les clients
Chaque PC client devra être "ajouté au domaine" :
Panneau de configuration / réseau Onglet identification / bouton "changer" entrer le nom du domaine, et cliquer OK ----> message de bienvenue ----> demande de rebooter reboot -----> on peut se connecter
Samba PDC expérimental
gestion des utilisateurs : groups et users
Samba va effectuer une projection ("mapping") des noms d'utilisateurs et de groupes NT vers et depuis des usernames et groupes Unix.
Ceci est géré par trois paramètres :
domain group map = samba/lib/domain_group.map
Unixgroupname = NTgroupname
domain user map = samba/lib/domain_user.map
Unixusername = \\Domainname\\NTusername
!* ne pas confondre avec
! username map = file contenant:
! unixusername = clientusername
!* qui n'est pas associé au domaine NT
local group map = samba/lib/local_group.map
Unixgroupname = [BUILTIN\]NTgroupname
la chaine "BUILTIN\" doit précéder
tous les groupes "biens connus"
(Users , Administrator)
Samba PDC expérimental
gestion des utilisateurs : groups et users
Samba permet aussi d'indiquer l'emplacement des répertoires "homes" des utilisateurs , une lettre de disque ou samba monte le répertoire de l'utilisateur et un chemin d'accès au profil.
logon drive = Z: logon home = \\%N\%U (ou bien utiliser [homes] ) logon path = \\serveur\profiles\user
Sous NT les profils sont plus une nécessité, alors que ce n'était qu'un luxe sous Win9.x
Si on veut "verrouiller" les stations clientes, il est nécessaire de que l'environnement d'un utilisateur qui change de machine (salle en libre service) lui soit restitué à chaque login .
La méthode est la même que pour Win9x.
Microsoft a publié un certain nombre de "white papers" sur la gestion des profils :
www.microsoft.com/ntserver/nts/techdetails/
et dispose en téléchargement d'un certain nombre des outils de NT server (normalement sur le CDrom NTserver) : Server Manager, User Manager for Domains et System Policy Editor :
ftp://ftp.microsoft.com/Softlib/MSLFILES/ --> srvtool.exe pour WinNT --> nexus.exe pour Win9x
Samba PDC expérimental
un outil de test sur Unix : rpcclient
Cet outil (expérimental) permet d'aller lister et modifier des informations sur des machines Win NT, par le réseau, depuis Unix (par utilisation des DCE/RPC).
[vayssade@sirius vayssade]$ rpcclient -S sipcjmb Added interface ip=195.83.155.123 bcast=195.83.155.255 nmask=255.255.255.0 Enter Password: smb: \> ? regenum regdeletekey regcreatekey regquerykey regdeleteval regcreateval reggetsec regtestsec ntlogin wksinfo srvinfo srvsessions srvshares srvconnections srvfiles lsaquery lookupsids enumusers ntpass samuser samtest enumaliases samgroups quit q exit bye help ? ! smb: \> smb: \> lsaquery lsaquery LSA Query Info Policy Domain Member - Domain: SI SID: S-0-0 Domain Controller - Domain: SIPCJMB \ SID: S-1-5-21-347670475-1819742162-1947940980 smb: \> lookupsids S-1-5-21-347670475-1819742162-1947940980 lookupsids S-1-5-21-347670475-1819742162-1947940980 Lookup SIDS: SID: S-1-5-21-347670475-1819742162-1947940980 -> \SIPCJMB\ smb: \> srvinfo srvinfo Server Info Level 101: SIPCJMB Wk Sv NT PtB LMB platform_id : 500 os version : 4.0 smb: \>
Samba PDC expérimental
un exemple de smb.conf (1/4)
# Samba config file created using SWAT # from pc-c.hq.dalalu.fr (192.168.24.104) # Date: 1998/11/25 20:02:05 # Global parameters workgroup = DALALU server string = Serveur principal encrypt passwords = Yes passwd program = /usr/bin/passwd %u username map = /usr/local/samba/lib/users.map unix password sync = Yes read prediction = Yes read size = 4096 socket options = SO_RCVBUF=4096 domain admin group = root admins bcantou logon script = %U.bat logon path = \\%L\Profiles\%U domain logons = Yes os level = 33 preferred master = Yes domain master = Yes wins support = Yes guest account = samba print command = lpr -h -r -P%p %s log file = /usr/local/samba/var/log.%m [homes] comment = Repertoire utilisateur path = /home/%u read only = No .../...
Samba PDC expérimental
un exemple de smb.conf (2/4)
.../... [Commun] comment = Repertoire de stockage commun path = /home/commun read only = No create mask = 0777 directory mask = 0777 [Logiciels] comment = Logiciels installables path = /home/logiciels write list = root administrateur micoulea create mask = 0774 directory mask = 0775 [paie] comment = Partage PAIE path = /home/paie ;write list = root administrateur micoulea ; les seuls utilisateurs qui peuvent se connecter ; sont ceux du groupe paie valid users = @paie ; force le groupe sur les fichiers force group = paie force create mode = 0770 force directory mode = 0770 read only = no
Samba PDC expérimental
un exemple de smb.conf (3/4)
.../... [expedition] read only = yes comment = Planning expeditions path = /home/expedition force group = expediti write list = @expediti force create mode = 0664 force directory mode = 0775 [presence] read only = yes comment = Planning presence path = /home/presence force group = presence write list = @presence force create mode = 0664 force directory mode = 0775 [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = Yes share modes = No locking = no public = no write list = root administrateur bcantou
Samba PDC expérimental
un exemple de smb.conf (4/4)
.../... [Profiles] path = /home/profiles read only = No guest ok = Yes [Netscape] path = /home/profiles_netscape read only = No [imp-eng-1] comment = Imprimante HP6 salle reunion Bat. Vert path = /tmp print ok = Yes printer name = imp-eng-1
Autres trucs et techniques
Winpopup
On peut utiliser Winpopup pour envoyer des messages aux PCs depuis Unix (il faut que winpopup soit activé sur le PC) :
268 vayssade kappa:~> smbclient -M hydra Added interface ip=192.54.189.39 bcast=192.54.189.255 nmask=255.255.255.0 Added interface ip=195.83.155.100 bcast=195.83.155.255 nmask=255.255.255.0 Connected. Type your message, ending it with a Control-D test 3 3<control-D> sent 11 bytes (status was 0-0)![]()
si on veut que la fenêtre vienne sur l'écran à réception :
Documentation et bibliographie
Une introduction rapide :
http://us1.samba.org/samba/docs/SambaIntro.html Samba: An Introduction by Chris Hertel , Samba Team
Article très complet et pointeurs pertinents (en français) :
par Jerome.Le-Tannou@linuxfr.org http://www.ujf-grenoble.fr/~letanou/samba_frame.html avec des exemples de "smb.conf" commentés.
L'arborescense de documentation de Samba
(fichiers txt et html) :
/usr/docs/samba-2.0.5a/docs ou /usr/local/samba/docs
Des articles dans les archives de "LinuxWorld" :
http://www.linuxworld.com/linuxworld/archive.html
Sur la sécurité de NT :
http://www.emf.net/~ddonahue/NThacks/ntexploits.htm
Des livres sur Samba :
Samba. Integrating Unix and Windows. John D. Blair (Samba Team). published by SSC. => bonne introduction aux réseaux Netbios Sams Teach Yourself Samba in 24 hours.
Gerald Carter (Samba Team) ISBN : 0-672-31609-9 => le meilleur (prix ~ 185 FTTC)
![]()
![]()