560 likes | 721 Views
Michel Le Tohic GET/ENST Bretagne. Partage de ressources entre le monde Windows 2000/XP et le monde Unix. Fonctionnalités réseau NetBIOS Organisation en domaine Active Directory. Architecture réseau Windows. Architecture réseau Windows. Fonctionnalités réseau
E N D
Michel Le Tohic GET/ENST Bretagne Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de ressources entre le monde Windows 2000/XP et le monde Unix
Fonctionnalités réseau NetBIOS Organisation en domaine Active Directory Architecture réseau Windows Partage de ressources entre le monde Windows 2000/XP et le monde Unix
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows Fonctionnalités réseau Totalement intégrées au système d’exploitation Déclinaison station de travail fonctions de type « poste à poste » apportées par : Le composant Client pour les réseaux Microsoft …qui équivaut au service Station de travail Le composant Partage de fichiers et d’imprimantes pour les réseaux Microsoft …qui équivaut au service Serveur Déclinaison serveur idem ci-dessus + services de type client-serveur (principalement TCP/IP) Services réseaux au-dessus de TCP/IP : DNS, DHCP, WINS, etc Contrôleur de domaine (au sens NT ou 2000 du terme), DFS, etc
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Composants de base
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows Protocole SMB, au cœur des réseaux Windows SMB (Server Message Block) Cf. plus avant Nombreuses API : Mailslots, Named Pipes, …etc. Mécanismes de communication inter-processus Pour la plupart s’appuyant sur SMB NetBIOS, une API historiquement liée à SMB NetBT, mise en œuvre de cet API dans le monde TCP/IP Cf. plus avant
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows Protocole SMB au cœur des réseaux Windows (suite) Winsock, une implémentation Windows des sockets BSD Pour toutes les applis client-serveur Internet (MS)RPC, une implémentation Windows des RPC DCE RPC sur TCP/IP Pour transporter DCOM, MAPI, …etc RPC sur SMB (via “tubes nommés”) Partage spécial IPC$ Pour la plupart des outils Windows d’administration à distance Impléméntation rpcclient(Samba)
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows Source O’Reilly
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows NetBIOS Une API, à l’origine Extension du BIOS pour l’échange de données réseau Nécessite un protocole de transport D’où la création de NetBEUI… mais NetBEUI n’est pas routable D’où le recours à un protocole routable : TCP/IP (typiquement) Un espace de nommage Pour identifier les éléments d’un réseau MS-Windows : Machines, Groupes de travail, Domaine Plat, à l’inverse de DNS (NB : même si la segmentation est possible avec les ID d’étendue NetBIOS …à proscrire !) Un protocole « bavard » Recours par défaut à la diffusion (broadcast), en particulier pour la résolution de nom NetBIOS… si l’on y prend pas garde
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Nommage d’un ordinateur
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows Problématique de résolution de nom NetBIOS Type de nœud NetBIOS mode de résolution B-nœud diffusion (= broadcast) P-nœud point à point (cf. service WINS) M-nœud mixte (B-nœud puis P-nœud au besoin) H-nœud hybride (P-nœud puis B-nœud au besoin) Nom NetBIOS = <chaîne><type> 15 octets pour la chaîne + 1 octet pour le type (caractérisant un type de machine ou un type de ressource) Types de ressources Référencent les services session ou datagrammes (Cf. Services NetBT) Deux classes principales : Unique et Group (i.e. partagé par plusieurs hôtes) Commandes utiles nbtstat (Windows) et nmblookup (Samba)
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Type de ressources NetBIOS
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows Organisation en domaine Modèle de domaine (jusqu’à NT 4.0 inclus) La sécurité pour l’accès aux ressources est assurée par le contrôleur de domaine Un domaine est constitué... d’au moins un PDC Fondamentalement différent d’un groupe de travail ! Service d’annuaire utilisateurs et machines La base de compte du domaine permet une authentification centralisée Contrôleur(s) & serveur(s) au sein d’un domaine Contrôleurs : PDC (éventuellement BDC…) Autres serveurs (tout ce qu’il y a de classique) Serveurs de fichier, d’impression, …etc Fournisseurs de « services réseaux»
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Groupe de travail versus Domaine Serveurs Domaine Groupe de travail Clients Clients Clients et/ou Serveurs Contrôleur de domaine Clients
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows Enregistrement dans un domaine Notion de SID Identifiant unique sur un domaine (utilisateur, groupe, machine) E.g. S-1-5-21-3585186845-3833581854-4065617495-1006 Utilisateur (et groupes d’utilisateurs) Enregistrement des utilisateurs dans la base de compte du PDC Différents types de groupes (locaux, globaux) et possibilité d’imbrication Machines (serveur, station, contrôleur…) Comptes cachés ! Jonction d ’un ordinateur à un domaine (= création d’un compte) Domaine unique ? domaines multiples ? Relation d’approbation : domaine approuvant ou approuvé Problème de hiérarchie (intransitivité des relations)
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Architecture réseau Windows Active Directory Évolution (majeure!) depuis Windows 2000 Annuaire de type LDAP (+ Kerberos + DDNS) Structure hiérarchique : domaine, arbre, forêt, site Espace global de nommage (basé sur DNS) Avantages/inconvénients Impose la présence d’un DDNS Intégration délicate avec le monde Unix Le système de relations d’approbation devient caduque Réplication sur plusieurs maîtres Compatibilité Avec le monde Windows (systèmes NT, architecture de composants distribués COM/DCOM, …) Avec l ’extérieur : LDAP, NetWare (?)
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Active Directory DNS (racine) Espace de nommage Kerberos AD Internet (public) org LDAP AD Espace de nommage Active Directory (privé) TUYAUX.ORG tuyaux tuyaux.org si la la.tuyaux.org si.tuyaux.org bemol bemol.si.tuyaux.org
TCP/IP à la « sauce » NT : NetBT Services d’annuaires TCP/IP en environnement Windows Partage de ressources entre le monde Windows 2000/XP et le monde Unix
Partage de ressources entre le monde Windows 2000/XP et le monde Unix TCP/IP en environnement Windows TCP/IP à la « sauce » NT : NetBT NetBT= NBT = NetBIOS over TCP/IP Virage TCP/IP opéré par Microsoft Cf. %SystemRoot%\system32\drivers\etc\ services Fourni en standard dans la pile… Des services TCP/IP Fournis principalement avec les déclinaisons serveurs ;-) Exceptions notables : httpd, ftpd, telnetd Des utilitaires TCP/IP Connectivité : telnet, ftp, rsh, rexec, …etc. Diagnostic : ping, tracert, netstat, nbtstat,...etc. Offre tierce-partie Vient combler les manques Essentiellement : NFS et X-Window
TCP/IP en environnement Windows Extrait du fichier services (…) netbios-ns 137/tcp nbname #Service de nom NETBIOS netbios-ns 137/udp nbname #Service de nom NETBIOS netbios-dgm 138/udp nbdatagram #Service de datagramme NETBIOS netbios-ssn 139/tcp nbsession #Service de session NETBIOS (…) microsoft-ds 445/tcp microsoft-ds 445/udp • Services NetBT • Réseau virtuel via la couche NetBIOS • Même si les nœuds appartiennent à différents sous-réseaux • Concept de Voisinage Réseau • NetBT procure 3 services différents • Service de nom, Service de session, Service de datagramme Partage de ressources entre le monde Windows 2000/XP et le monde Unix
Partage de ressources entre le monde Windows 2000/XP et le monde Unix TCP/IP en environnement Windows Avenir de NetBT ? Importance décroissante depuis Windows 2000 Windows repose désormais sur DNS, LDAP, Kerberos, …etc NetBT tend à disparaître SMB peut être transporté directement par TCP/IP Cf. plus avant CIFS Disparition de WINS Service permettant de répondre à la problématique NBNS (résolution de nom NetBios en adresse IP et vice-versa) Enregistrement SRV dans le DNS remplacent les noms NetBIOS pour la localisation des ressources Enregistrement dynamique dans le DNS (DDNS) remplacent les enregistrements auprès de WINS
Partage de ressources entre le monde Windows 2000/XP et le monde Unix TCP/IP en environnement Windows Services d’annuaires Services DNS, DHCP, etc. En standard sur les déclinaisons serveurs WINS : résolution de noms NetBIOS en @IP Une spécificité Windows (RFC => spécification NBNS) Rappel : broadcast par défaut sinon Inscription automatique du client dans la base de données du serveur ; renouvellement et libération automatique… en théorie Nécessité de WINS ? Dans un environnement routé Peut venir « épauler » le DNS NetBIOS et WINS peuvent être supprimés si l’on est passé en tout Windows 2000 (ou supérieure) Résolution statique possible (pour petits réseaux) Fichier %SystemRoot%\system32\drivers\etc\lmhosts
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Paramétrage WINS
Partage de ressources entre le monde Windows 2000/XP et le monde Unix TCP/IP en environnement Windows DHCP : affectation dynamique d’@IP Classique par ailleurs… Excepté base de donnée Jet (versus fichier texte sous Unix) DNS : traduction des noms d’hôtes en @IP Le service DNS est devenu le principal service de nom au détriment de WINS Classique par ailleurs… Excepté intégrable dans Active Directory (versus fichier texte sous Unix) Excepté nécessité d’un DDNS si d’Active Directory Excepté collaboration étroite entre DHCP et DDNS Excepté mixage délicat avec Bind
Partage de ressources entre le monde Windows 2000/XP et le monde Unix DNS, DHCP, WINS (approche Windows 2000) Résolution de nom NetBIOS Résolution de nom d’hôte Affectation d’@IP Dynamique ? Dynamique ? Dynamique ? ? oui oui oui Serveur DDNS Serveur DHCP Serveur WINS Synchro. DHCP/DNS
SMB CIFS Visibilité des ressources partagées Accès aux ressources partagées Traitement réparti Services de base Windows NT/2000/XP Partage de ressources entre le monde Windows 2000/XP et le monde Unix
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Services de base Windows NT/2000/XP • SMB • Protocole à tout faire du monde Windows… • Protocole implémenté historiquement sur NetBIOS • Partage de fichiers et d’imprimantes • Également orienté communications : tubes nommés, BAL, etc (et même ports séries !) • Paquets « Server Message Blocks » • (NFS + Lpd/Lpr + Login/Passwd) du monde Unix • Protocole client-serveur de « niveau application » • Orienté connexion • Très complexe : 65 opérations de premier niveau, des dizaines de sous-fonctions comprenant chacune des dizaines d’options • Difficile à inclure dans un noyau Unix standard… d’où SAMBA (implémentation la plus répandue)
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Modèle NetBIOS vs TCP/IP
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Services de base Windows NT/2000/XP • Sécurité et contrôle d’accès • Très différent de NFS • Sensible à la rupture de connexion • Incluant un système d’authentification « utilisateur » et non basée sur la machine • Protection au niveau ressource (Share-level) • Un mot de passe par répertoire partagé (disponible uniquement sur les systèmes de type Windows 9x) => on oublie !!! • Protection au niveau utilisateur (User-level) • Authentification basée sur le couple login/mot de passe (seul mode disponible sur les systèmes de type Windows NT) • Évolution du protocole • Différents dialectes : Lan Manager, NTLM, CIFS • SAMBA implémente la version NTLM 1.0 (?) • Une session SMB comprend une phase de négociation sur la version de protocole utilisée
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Session SMB Négociation Protocole sélectionné Ouverture de session ? UID Connexion à l ’arborescence ? TID
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Services de base Windows NT/2000/XP • CIFS • SMB au-dessus de TCP/IP • Version « ouverte » du protocole SMB • Code offert à l’IETF… dans le but d’en faire un standard Web ? • Nombreux utilitaires de type passerelle Web-SMB • S’appuie sur les adresses IP et non sur NetBIOS • Depuis Windows 2000 on peut ainsi faire du SMB sans NetBIOS (Direct Hosting) • CIFS troque WINS au profit de DDNS • CIFS peut donc (en théorie) franchir les routeurs • Réfère à une suite de protocoles • Partage de fichiers et/ou imprimantes, annonce de service, nommage, authentification, autorisations • Maintient une compatibilité avec les anciennes versions SMB
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Services de base Windows NT/2000/XP • Visibilité des ressources partagées • Mécanisme d’exploration • Voisinage Réseau • Basé sur SMB • Rôle : identifier/répertorier les ressources réseau disponibles • Toute machine s’enregistre auprès du Master Browser • Cela a pour principal avantage de limiter les broadcast !-) • Types d’explorateurs • Explorateur maître de domaine (= PDC), explorateur maître, explorateur de sauvegarde, potentiel et non-explorateur • Temps de synchronisation (plusieurs minutes) • Mécanismes d’élections d’explorateurs • Rôle dévolue à Active Directory désormais • Recensement des ressources partagées dans LDAP
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Services de base Windows NT/2000/XP • Accès aux ressources partagées • Notation UNC • Localisation des ressources partagées via SMB • Dans sa version la plus simple : \\nom_serveur\nom_partage • Commande net share (~ exportfs Unix) et net use (~ mount Unix) • Accès direct via chemin UNC • Accès via disque réseau = mappage ou montage sous une lettre de lecteur disponible (e.g. net use H: \\homesrv\my_home) • Permissions • Deux « niveaux » de permissions • Grossier : permissions de dossiers partagés (~ type d’export Unix) • Très fin : permissions de disques NTFS (> permissions Unix) • Permission à distance = & logique entre les permissions NTFS et de partage
Répertoire partagé • Onglet Général • Informations générales • Onglet Partage • Si partage : Autorisations (i.e. Permissions de partage), Mise en cache (travail hors connexion), … etc • Onglet Sécurité • Permissions NTFS Partage de ressources entre le monde Windows 2000/XP et le monde Unix
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Services de base Windows NT/2000/XP Traitement réparti Principe Client-serveur Déjà vu par ailleurs Mécanismes de communications inter-processus (IPC) De très nombreux mécanismes : Interface NetBIOS , Canaux nommés, BAL, RPC, Windows Sockets (ou WINSocks), NetDDE, DCOM, Message Queues Certains mécanismes utilisent en fait des API sous-jacentes (eg. RPC qui peut s’appuyer sur les Canaux nommés, WINSocks, NetBIOS ou autre)
Constat et approches possibles SAMBA (GNU) Partage de fichiers entre Windows & Unix Partage de ressources entre le monde Windows 2000/XP et le monde Unix
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Constat Pas de protocole commun :-( Monde Microsoft : SMB (CIFS) Monde Unix : NFS Approche tout SMB Solution atypique Serveurs Windows ou Samba => Clients SMB pour Unix Produits tiers ou support natif : Sharity, smbsh, smbfs, cifsfs Approche tout NFS Solution très répandue… jusqu’en 1995 Serveurs Unix purs et durs => Clients, Serveurs et Passerelles NFS pour Windows Produits chez Intergraph, FTP Software, NetManage, SunSoft, ...
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Approche SMB et NFS Solution très répandue aujourd’hui Avantage : rien à ajouter côté postes clients Windows Serveurs de fichiers multi-protocoles (NAS) Solutions matérielles Entièrement dédiées (aka Appliance) : baie RAID + système spécifique et/ou optimisé ; offre variée : produits d’entrée de gamme (Iomega, SnapAlliance, etc.), produits intermédiaires (IBM, Dell, HP/Compaq, Additionnal Design, etc.), produits haut de gamme (Network Appliance, etc.) Solutions logicielles (libres essentiellement) FreeNAS, OpenFiler, NasLite : (NFS + Samba + Ftp) pour le moins ; supporte parfois Rsync, WebDAV, SSH, …etc Élément clé : surcouche SMB pour Unix Typiquement : SAMBA (GNU) Autres solutions : AS/U (AT&T), TAS (Syntax), VisionFS (SCO)
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers (approche serveur & client SMB) Serveur SMB Client SMB Serveur Unix Serveur NT Station Unix PC Windows SMB NFS
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix SAMBA (GNU) Implémentation open-source du protocole SMB Un colossal travail (développement et documentation) Environ une trentaine de développeurs (Samba Team) Permet (essentiellement) à un client Windows d’accéder aux fichiers d’un serveur Unix Mais permet également… Partage d’imprimantes (évolution CUPS), Exploration réseau, Authentification des utilisateurs (PDC et/ou BDC NT), Serveur intégré dans un domaine AD Produit gratuit disponible pour tous les Unix Inclus dans certaines offres éditeurs/constructeurs Configurable via un navigateur (Swat) D’autres interfaces graphiques sont possibles : Webmin, …etc.
Partage de ressources entre le monde Windows 2000/XP et le monde Unix SWAT
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Version 2.x : implémentation quasi complète des services réseaux NT sous Unix Contrôleur de domaine (DC) … mais pas de réplication possible avec du pur DC Windows Serveur de fichiers/d’imprimantes Gestion des ACLs NT Serveur WINS Maître explorateur Version 3.0 : intégration avec Active Directory Intégration dans un domaine AD finalisée Prochaine étape, Samba 4 : DC pour domaine AD
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Démons et services 2 démons principaux : smbd et nmbd smbd : serveur de partage de fichier et d’impression nmbd : serveur de noms NetBIOS (« contrôlé » par smbd) 1 démon « auxiliaire » : winbindd Permet « d’importer » des utilisateurs de domaine Windows en tant qu’utilisateurs Unix (via PAM et nsswitch) Indépendant de smbd
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Fichier de configuration : smb.conf 3 sections prédéfinies (et réservées !) : [global] : configuration globale [homes] : homedir utilisateurs ( auto-montage) [printers] : imprimantes ( auto-montage) Autres sections réservées : [netlogon]: scripts de login et stratégies (usage en PDC) [profiles]: profils errants utilisateurs [print$]: drivers imprimantes
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Bases de données de comptes ou backends Évolution au fil des versions Samba 2, Samba TNG, Samba 3 Anciens backends « Texte clair » : ie.base de compte Unix (typiquement /etc/passwd) ; proscrit (mots de passe circulent en clair !) smbpasswd : inclut compte LanMan et NT maispas les autres informations ; déprécié ldapsam_compat : utilisée lors de mise à niveau ; déprécié
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Bases de données de comptes ou backends (suite) Nouveaux backends tdbsam : inclut toutes les informations de compte mais non recommandé au delà de 250 comptes ldapsam : basé sur OpenLDAP, inclut toutes les informations de compte et représente la solution de choix actuellement mysqlsam : possible dans un contexte très orienté MySQL xmlsam : utile lors de migration ?
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Plusieurs utilitaires Binaires : testparm : vérification du fichier smb.conf smbstatus : statut des connexions actives smbpasswd : gestion des mots de passe cryptés nmblookup : résolution de noms NetBIOS en adresse IP smbclient : client SMB « ftp-like » smbmount : montage de système de fichier smbfs (ie. partage SAMBA) ; s’appuit sur smbmnt, équivalent à mount –t smbfs … smbcacls : modifie les ACLs des fichiers/répertoires SAMBA net : « semblable » à l’utilitaie net de Windows rpcclient : exécution de commandes à distance …etc
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Partage de fichiers entre Windows & Unix Plusieurs utilitaires (suite) Scripts : pdbedit : gestion des comptes (tous backends confondus) smbtar : sauvegarde/restauration de fichiers/répertoires Windows findsmb : information sur les systèmes SMB du réseau local ...etc
Problématique d’authentification utilisateur Problématique de contrôle d’accès Problématiques de types de fichiers Tests et diagnostics Mise en œuvre de SAMBA Partage de ressources entre le monde Windows 2000/XP et le monde Unix
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Mise en œuvre de SAMBA Problématique d’authentification utilisateur Bases de compte « parallèles » 2000/XP et Unix Pas de compte Samba… sans compte Unix ! Sinon pas d’accès au système de fichier ;-) Configuration très sensible du fichier smb.conf Principalement le paramètre security Samba supporte les modes (SMB) share et user En mode user le serveur SAMBA fait office de contrôleur … mais décline le mode user en plusieurs modes Mode server : l’authentification est déléguée à un autre serveur (qui doit être spécifié) ; connexion maintenue Mode domain: idem server et de plus le serveur SAMBA fait partie intégrante du domaine NT ( SAMBA 2.x) Mode ads : idem domain et de plus le serveur SAMBA fait partie intégrante du domaine Active Directory ( SAMBA 3.x)
Partage de ressources entre le monde Windows 2000/XP et le monde Unix Mise en œuvre de SAMBA Sans authentification… passons notre chemin !-) Mode security = share & encrypt passwords = no Pas d’authentification sur le partage à proscrire ! Authentification assumée par le serveur SAMBA Mode security = user & encrypt passwords = no Base locale Unix passwd ou autre (fonction de nsswitch.conf) Implique d’user de mot de passe non cryptés (i.e. transmis en clair) de modifier les clients Windows pour les obliger à cela (car ce n’est plus standard) à proscrire ! Mode security = user & encrypt passwords = yes Base locale smbpasswd (i.e. pseudo-base SAM à créer de toute pièce) commande smbpasswd et autres utilitaires… ou fichier type tdb ou base locale LDAP (compatible LDAP v3) Authentification NTLM Possibilité de synchronisation avec la base de compte Unix Possibilité d’être configuré en contrôleur de domaine NT