Imprimantes et partage réseau sous Samba avec authentification Active Directory Sommaire 1- Pré requis Page 2 2- Configuration réseau Page 3 3- Installation de samba Page 4 à 5 4- Installation de kerberos Page 6 5- Installation de winbind Page 7 6- Connexion au domaine Windows (Active Directory) Page 8 à 9 7- Installation de cupsys Page 10 à 17 Installer une imprimante sous CUPS Page 11 Installation depuis le poste client Windows XP Page 15 8- Installation de apache2 et du module php5 Page 18 9- Installation de phpprintanalyzer Page 19-1 -
1 Pré requis Les tests ont été effectués sur un serveur Linux Debian (Lenny) dans sa version 5.0 Sur ce serveur ont été installé les paquets suivants : - samba - kerberos (krb5-clients) - winbind - cupsys - apache2 et son module php5 (libapache2-mod-php5) - phpprintanalyzer - 2 -
2 Configuration réseau /etc/network/interfaces # The primary network interface allow-hotplug eth0 iface eth0 inet static address 10.10.12.162 netmask 255.255.0.0 network 10.10.0.0 broadcast 10.10.255.255 gateway 10.10.115.199 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 10.10.12.100 dns-search ch-estran.fr /etc/resolv.conf search ch-estran.fr nameserver 10.10.12.100 /etc/hosts 127.0.0.1 localhost 10.10.12.162 sambadb.ch-estran.fr sambadb sambadb : nom du serveur samba sambadb.ch-estran.fr : nom FQDN du serveur samba - 3 -
2 Installation de samba apt-get install samba Le fichier de configuration de samba (smb.conf) se situe dans le répertoire /etc/samba smb.conf [global] workgroup = CH-ESTRAN realm = ch-estran.fr password server = hutch.ch-estran.fr wins support = yes wins server = 10.10.12.100 dns proxy = no idmap uid = 10000-20000 idmap gid = 10000-20000 winbind enum users = yes winbind enum groups = yes winbind use default domain = yes winbind nested groups = yes winbind separator = + load printers = yes printing = cups printcap name = cups #### Debugging/Accounting #### log file = /var/log/samba/samba.log max log size = 1000 syslog = 0 log level = 2 panic action = /usr/share/samba/panic-action %d ####### Authentication ####### security = ADS encrypt passwords = yes ############ Misc ############ include = /home/samba/etc/smb.conf.%m message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' & template shell = /bin/bash usershare max shares = 100-4 -
#======================= Share Definitions ======================= [smbpartage] path = /home/smbpartage write list = @CH-ESTRAN+BUILTIN+users browseable = yes valid users = @CH-ESTRAN+BUILTIN+users create mask = 0770 directory mask = 0770 [printers] comment = Imprimantes path = /var/spool/samba browseable = no public = yes guest ok = yes writable = yes printable = yes print command = lpr-cups -P %p -o raw %s -r [print$] comment = Répertoire des pilotes pour imprimantes path = /var/lib/samba/printers browseable = yes guest ok = no read only = no create mask = 0770 directory mask = 0770 write list = root @CH-ESTRAN+BUILTIN+administrators - 5 -
3 Installation de Kerberos apt-get install krb5-clients Le fichier de configuration de kerberos (krb5.conf) se situe dans le répertoire /etc krb5.conf [libdefaults] default_realm = CH-ESTRAN.FR # The following krb5.conf variables are only for MIT Kerberos. krb4_config = /etc/krb.conf krb4_realms = /etc/krb.realms kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true # The following libdefaults parameters are only for Heimdal Kerberos. v4_instance_resolve = false v4_name_convert = { host = { rcmd = host ftp = ftp } plain = { something = something-else } } fcc-mit-ticketflags = true [realms] CH-ESTRAN.FR = { kdc = hutch.ch-estran.fr admin_server = hutch.ch-estran.fr default_domain = CH-ESTRAN.FR } [domain_realm].ch-estran.fr = CH-ESTRAN.FR ch-estran.fr = CH-ESTRAN.FR [login] krb4_convert = true krb4_get_tickets = false Le domaine étant CH-ESTRAN.FR, le contrôleur de domaine et serveur kerberos HUTCH. - 6 -
4 Installation de winbind apt-get install winbind - 7 -
6 Connexion au domaine Windows (Active Directory) testadm est un utilisateur membres du groupe administrateur. Après un redémarrage du serveur Linux il est possible de lister grâce à winbind les utilisateurs et les groupes du domaine windows. wbinfo u Liste les utilisateurs présents dans le domaine. wbinfo g Liste les groupes présents dans le domaine. - 8 -
Test de connexion au partage (smbpartage) avec un compte membre du domaine (testadm). Dans notre cas le client Windows XP étant membre du domaine et par conséquent utilisant un compte du domaine, il n y à pas à spécifier un nouveau compte de connexion, samba reprendra directement le compte utilisateur connecter sur le client XP. [smbpartage] valid users = @CH-ESTRAN+BUILTIN+users Extrait du samba.log lors de la connexion du lecteur. [2009/06/04 12:23:05, 2] auth/auth.c:check_ntlm_password(308) check_ntlm_password: authentication for user [testadm] -> [testadm] -> [CH- ESTRAN-FR+testadm] succeeded [2009/06/04 12:25:17, 1] smbd/service.c:make_connection_snum(1194) clientdamien (::ffff:10.10.12.161) connect to service smbpartage initially as user CH-ESTRAN-FR+testadm (uid=10000, gid=10002) (pid 2011) - 9 -
7 Installation de cupsys apt-get install cupsys Il faut à présent modifier certains paramètres de configuration afin de faire fonctionner cups. /etc/cups/ cupsd.conf ServerName 10.10.12.162 # Only listen for connections from the local machine. Listen *:631 - La ligne ServerName indique l adresse IP du serveur CUPS (notre serveur Linux) - La ligne suivante permet de se connecter via son navigateur web depuis n importe quelle machine du réseau. mime.convs Dé commenter la ligne : application/octet-stream application/vnd.cups-raw 0 - mime.types Dé commenter la ligne : application/octet-stream - 10 -
Installer une imprimante sous CUPS : Il faut tout d abord se connecter au serveur CUPS via un navigateur en tapant l adresse http://@ipsamba:631 Puis cliquer sur Administration et Ajouter une imprimante - 11 -
Sélectionner l imprimante correspondant à son adresse IP. Cliquer sur parcourir pour spécifier un fichier.ppd L imprimante est désormais installée. - 12 -
Il est possible de lister les imprimantes partagées manuellement par samba grâce à la commande : smbclient L NomFQDNserveurSamba U administrateur Permet de lister les imprimantes partagées. - 13 -
Permet de lister les drivers utiliser pour les postes Windows. Résultat de la commande smbstatus Samba version 3.2.5 PID Username Group Machine ------------------------------------------------------------------- 2708 testadm utilisa. du domaine clientdamien (::ffff:10.10.12.161) Service pid machine Connected at ------------------------------------------------------- smbpartage 2708 clientdamien Fri Jun 5 11:08:20 2009 Locked files: Pid Uid DenyMode Access R/W Oplock SharePath Name Time -------------------------------------------------------------------------------------------------- 2708 10000 DENY_NONE 0x100001 RDONLY NONE /home/smbpartage. Fri Jun 5 11:08:20 2009 2708 10000 DENY_NONE 0x100001 RDONLY NONE /home/smbpartage. Fri Jun 5 11:08:20 2009-14 -
Installation depuis le poste client Windows XP Cliquer sur Ajouter une imprimante dans le menu en haut à gauche. - 15 -
Le message suivant va apparaître lors de la première connexion de l imprimante. Le serveur samba ne dispose pas encore du pilote Windows pour cette imprimante. Cliquer sur OK puis disque fourni. - 16 -
Il faut maintenant aller chercher le pilote Windows.inf propre à cette imprimante. Grâce à cette manipulation, le serveur samba copiera en local dans son répertoire /var/lib/samba/printers (comme spécifié dans le fichier de configuration de samba). Si au contraire ont venait à utiliser les pilotes proposés par Windows, ceux-ci étant déjà présent en local sur le client XP, il ne serait pas recopié dans le répertoire prévu à cet effet sur le serveur samba. La manipulation serait donc à recommencer sur chaque nouveau client. Maintenant le serveur samba est en mesure de fournir directement sans une aide quelconque de l utilisateur les pilotes adéquats. Il ne faut pas oublier de mettre les droits nécessaires à l écriture des utilisateurs du domaine sur le répertoire printers. Voici un extrait du répertoire /var/lib/samba/printers/w32x86/3 L imprimante a bien été installée. - 17 -
8 Installation de apache2 et du module php5 apt-get install apache2 libapache2-mod-php5 Apache2 est obligatoire afin d utiliser par la suite l interface phpprintanalyser. - 18 -
9 Installation de phpprintanalyzer Phpprintanalyzer ne peut pas être télécharger avec apt-get, il faut donc le télécharger et l installer manuellement. Le nom complet du paquet étant : phpprintanalyzer-1.2.tar.gz Une fois le répertoire de phpprintanalyzer extrait, celui-ci doit être plaçer dans le répertoire www d apache2 (/var/www) Il est maintenant accessible via un navigateur à l adresse : http://@ipsamba/phpprintanalyzer Cependant, phpprintanalyzer faisant remonter les informations des logs de cups, il doit pour cela posséder les droits en lecture. Répertoire log de CUPS : /var/log/cups/page_log L ajout de l argument LogFilePerm 0660 dans le fichier config.inc.php.sample apres l avoir renommer en config.inc.php se trouvant dans le répertoire /var/www/phpprintanalyzer Modification du fichier config.inc.php // Serveur Web de CUPS // ex: "http://cups.xxxxx.com:631" $serveurwebcups = "http://10.10.12.162:631"; // Serveur LDAP (mettre à vide si pas d'utilisation de LDAP) // ex: "ldap.xxxxx.com" $serveurldap = "hutch.ch-estran.fr"; // ex: "dc=toto" $racineldap = "dc=hutch"; - 19 -