Jeudis du libre, Samba ou comment donner le rythme aux stations Windows
Qui suis-je? Philip Richardson Sysadmin à Bruxelles Formation Formateur occasionnel Membre du BxLUG (http://www.bxlug.be) A été RHCE et est toujours utilisateur admiratif de Debian p.richardson@bruxellesformation.be
Bruxelles Formation est l'organisme public régisseur de la formation professionnelle à Bruxelles. Il en est également un des opérateurs avec plus de 200 formations proposées.
En gestion samba 9 sites en liaison VPN sdsl 450 utilisateurs, 2000 stagiaires 1500 stations Windows, 15 serveurs Samba
Objectifs Présentation du projet Samba par un retour d'expérience en production de plus de 10 ans. Cet exposé revisitera la mise en oeuvre de Samba en partant du premier serveur de fichiers jusqu'à la gestion complète en domaine de 2500 utilisateurs et 1500 stations répartis sur 8 sites.
Les thèmes abordés par l'étude de cas pratiques seront : Serveur de fichiers. Serveur d'impression Domaine centralisé Divers : gestion de scripts mise en place d'une "policy" déploiement de logiciels à partir de Samba
C'est quoi Samba? Samba est une suite de logiciels permettant l'interopérabilité avec un réseau Windows Basé sur le protocole SMB (SERVER MESSAGE BLOCK) ce projet fut initié en 1992 par Andew Tridgell pour répondre à un besoin personnel de compatibilité entre une station DOS et un serveur Unix. Initialement appelé SMBserver, a été renommé Samba pour raison de marque déposée.
Pojet édité sous licence GPLv3, il est actuellement en version stable 3.6.x et existe en paquet dans toute bonne distribution. site du projet : http://www.samba.org
Principes de base : Un serveur samba se compose en version "full options" de 3 démons. nmbd, qui prend en charge tous les aspects liés au voisinage réseau. smbd, pour la gestion des partages, de l'authentification et des droits. winbindd, pour l'intégration dans un Domaine et pour la résolution de nom via wins.
3 démons, 1 seul fichier de configuration /etc/samba/smb.conf Pour la distribution debian. 1 section principale pour la configuration des services. [GLOBAL]... X sections pour la définition et la configuration des partages [PARTAGE]...
Bruxelles Formation : premier Linux Première installation de Linux en 1999 Redhat 5.2 (Apollo) avec Samba 1.9 Apparition étrange d'un WORKGROUP et d'une machine inconnue dans le voisinage réseau. Seule machine à passer l'année 2000 sans rencontrer de bug. Normal, les autres étaient des Windows.
Etude de cas 1 : serveur de fichier "standalone" Où comment se faire un serveur NAS perso à deux cents. 1) création d'un utilisateur côté Linux. En root : useradd -m joe 2) ajout de l'utilisateur et de son mot de passe dans samba. smbpasswd -a joe New SMB password: Retype new SMB password:
Options importantes de smb.conf : # "security = user" is always a good idea. This will require a Unix account # in this server for every user accessing the server. See # /usr/share/doc/samba-doc/htmldocs/samba3-howto/servertype.html # in the samba-doc package for details. # security = user et par défaut [homes] comment = Home Directories valid users = %S create mask = 0700 directory mask = 0700 browseable = No
Ajout d'un partage : 1) création du dossier mkdir /home/temporaire 2) mise en place des droits chmod 777 /home/temporaire 3) ajout de la section en fin smb.conf [temp] path = /home/temporaire writable = yes
Gestion des droits : 1) via le système de fichier : chmod, chown, chgrp 2) via les options de partage définies dans smb.conf valid users =, invalid users =, writable =, write list = ex: [temp] path = /home/temporaire writable = no write list = joe, @IT
Bruxelles Formation : premiers serveurs de fichiers En 2002 plusieurs serveurs de fichiers NT4 débordent de données. Pas de gestion de quotas en natif. En réponse aux droits "limités" de Linux (ugo), apparition des acl (Access Control List). Pour cette raison, la distribution choisie fut Mandrake en version 9.0 avec XFS comme système de fichier.
Etude de cas 2 : serveur samba membre de domaine 1) Ajout des fonctionnalités acl au niveau du FS. option acl pour le point de montage dans /etc/fstab. 2) Configuration de smb.conf workgroup = MONDOMAINE ;netbios name = NAS netbios aliases = ALPHA BETA GAMMA security = DOMAIN idmap uid = 15000-20000 idmap gid = 15000-20000 winbind use default domain = Yes
3) Arrêt des démons smbd, nmdb, winbindd 4) Joindre la machine au domaine net rpc join -UUnCompteAdminDuDomaine 5) Démarrer les services 6) Etablissement d'un lien entre Winbindd et Linux Dans /etc/nsswitch.conf passwd: files winbind group: files winbind hosts: files dns winbind
7) Tests de base wbinfo -u, wbinfo -g pour Winbindd getent passwd, getent group pour Linux 8) Ajout de la propriété de droits hérités Dans smb.conf inherit permissions = yes inherit acls = yes Gestion des droits via les outils setfacl, getfacl
Bruxelles Formation : Alerte au virus Mise HS définitive du serveur d'impression NT4
Etude de cas 3 : serveur d'imprimante 1) Installer CUPS 2) Ajouter les imprimantes réseau via web http://localhost:631 ou via lpadmin -E -p netprint1 -vlpd://172.16.32.25 -mraw 3) Redémarrer Samba l'imprimante doit être visible dans le voisinage réseau
Bruxelles Formation : la grande décision 31 décembre 2004 arrêt du support pour NT4 8 bâtiments avec 8 domaines et 8 serveurs MsExchange Windows 2000 ou Samba? Choix porté sur un domaine unique Samba :-)
Etude de cas 4 : Principes de mise en place d'un domaine Samba Plan de migration : Mise en place d'un PDC central Samba Mise en place d'un MsEXchange central membre du domaine Samba Mise en place de BDC Samba Aspiration des comptes Migration des boîtes mails Ajout des machines dans le domaine
1) Mise en place des serveurs OpenLDAP en master slave 2) Installation des smbldap-tools 3) Configuration de samba pour le PDC workgroup = DOMAINE netbios name = PDC server string = Bruxelles domain logons = Yes domain master = yes
passdb backend = ldapsam:ldap://pdc.domain.be ldap admin dn = cn=smbadmin,dc=domain,dc=be ldap suffix = dc=domain,dc=be ldap group suffix = ou=groups ldap user suffix = ou=users ldap machine suffix = ou=computers ldap passwd sync = yes add user script = /usr/sbin/smbldap-useradd "%u" delete user script = /usr/sbin/smbldap-userdel "%u" add machine script = /usr/sbin/smbldap-useradd -w "%u" add group script = /usr/sbin/smbldap-groupadd "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
4) Configuration de samba pour les BDC workgroup = DOMAINE netbios name = BDC1 domain logons = Yes domain master = No passdb backend = ldapsam:ldap://bdc1.domain.be ldap admin dn = cn=smbadmin,dc=domain,dc=be ldap suffix = dc=domain,dc=be ldap group suffix = ou=groups ldap user suffix = ou=users ldap machine suffix = ou=computers ldap passwd sync = yes
Gestion de scripts Avec les droits de l'utilisateur via le dossier netlogon Via des scripts lancés par l'accès aux partages ex : [service] comment = Répertoire de service browsable = no writable = yes path = /services/%g root preexec = /usr/local/bin/service "%G" Via une commande depuis le serveur ex via un script bash :... net rpc group ADDMEM administrateurs domaine\"$1" -Udomaine\admin%pass -S"$2" net rpc group MEMBERS administrateurs -Udomaine\admin%pass -S"$2"...
Déploiement de logiciels en "push" Via "l'utilitaire" winexe http://sourceforge.net/projects/winexe/ richardson@richardson:~$ winexe -UDOMAINE/admin%pass //machine-xp 'cmd' Microsoft Windows XP [version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:WINDOWSsystem32>ipconfig Configuration IP de Windows Carte Ethernet Connexion au r seau local 3: Suffixe DNS propre la connexion : brufor.be Adresse IP............ : 172.16.21.218 Masque de sous-r seau...... : 255.255.0.0 Passerelle par d faut...... : 172.16.2.254 C:WINDOWSsystem32>
Principe d'une installation : Copie des fichiers msi, exe, bat, reg sur la machine cliente via smbclient Exécution de l'installation (silencieuse) via winexe
Conclusions et avenir.
Questions?
Merci
Présentation réalisée (à la bourre) à l'aide de logiciels libres : Pinpoint https://live.gnome.org/pinpoint Shutter http://shutter-project.org Imagemagick http://www.imagemagick.org