Aller à : navigation, rechercher

SAMBA - Samba4 et CUPS

Installation samba

Nous proposons nos paquets samba, vous pouvez suivre la documentation ici SAMBA - Installer Samba 4

Préparer une configuration réseau propre

Modifier le fichier /etc/hostname pour qu'il contienne le nom FQDN (nom + suffixe DNS du réseau local) de la machine

srvcups.mondomaine.lan

Modifier le fichier /etc/hosts pour qu'il contienne la résolution DNS du FQDN de la machine sur son ip (ie pas 127.0.0.1), avec le nom long puis le nom court

127.0.0.1      localhost
192.168.1.13   srvcups.mondomaine.lan      srvcups

Rebooter la machine pour prendre en compte ce nouveau nom de machine (un hostname -F /etc/hostname n'a pas l'air de suffire pour le script samba qui récupère toujours l'ancien nom...)

reboot

Installer Cups et Samba

apt-get update
export DEBIAN_FRONTEND=noninteractive
apt-get install samba winbind krb5-user libnss-winbind cups
unset DEBIAN_FRONTEND


Configuration basique de cups

Modifier le fichier /etc/cups/cupsd.conf

# Allow remote access
Listen 0.0.0.0:631
Listen /var/run/cups/cups.sock
Browsing On
BrowseOrder allow,deny
BrowseRemoteProtocols
BrowseAddress @LOCAL
BrowseLocalProtocols CUPS dnssd
DefaultAuthType Basic
<Location />
  # Allow remote access...
  Order allow,deny
  Allow all
</Location>
<Location /admin>
</Location>
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
</Location>

Puis relancer CUPS

/etc/init.d/cups restart

Ajouter le serveur Cups membre du domaine

Configuration krb5.conf, éditer le fichier /etc/krb5.conf. Vous pouvez augmenter ou diminuer la variable clockskew qui est la différence maximale de temps entre le poste windows et le serveur linux en seconde. Ici clockskew=3600, c'est à dire que l'on tolère une erreur de ntp de 1h max.

[libdefaults]
  dns_lookup_realm = false
  dns_lookup_kdc = true
  default_realm = MONDOMAINE.LAN
  clockskew = 3600

Vérifier que la configuration DNS de dans /etc/nsswitch.conf n'a pas été modifié par l'installation d'un paquet quelconque. Si la ligne host ressemble à la ligne ci-dessous, la modifier pour qu'elle ressemble à la ligne juste après

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns    #MAUVAIS!!!
hosts:        files dns            #BON


Vérification que le kerberos est bien configuré (administrator est le compte par défaut créé par samba4, si l'on veut utiliser le compte administrateur, n'oubliez pas de le changer)

kinit administrator
klist

Identifier dans les DNS votre serveur d'impression CUPS (dans cette documentation, nous avons choisi de l'appeler srvcups)

Vérifier que mdns n'a pas été activé dans /etc/nsswitch.conf

passwd:         compat winbind
group:          compat winbind
shadow:         compat

hosts:          files  dns 
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis


configuration samba serveur d impressions

vi /etc/samba/smb.conf
 [global]
   workgroup = MONDOMAINE
   security = ADS
   realm = MONDOMAINE.LAN
   encrypt passwords = yes
   winbind separator = +
   idmap config *:backend = tdb
   idmap config *:range = 70001-80000
   idmap config MONDOMAINE:backend  = rid
   idmap config MONDOMAINE:range  = 10000-70000
   winbind enum users = yes
   winbind enum groups = yes
   vfs objects = acl_xattr
   map acl inherit = Yes
   store dos attributes = Yes
   winbind trusted domains only = no
   winbind use default domain = yes
   printcap cache time = 60
   printcap name = cups
   printing = cups
   rpc_server:spoolss = external
   rpc_daemon:spoolssd = fork

 [printers]
   comment = All Printers
   path = /var/spool/samba
   printable = Yes
   printing = CUPS

 [print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   read only = No
   writeable = yes

Jonction de la machine au domaine

net ads join -U administrator

relancer les services

systemctl restart nmbd smbd winbind cups

Attribution des privilège print operator

net rpc rights grant "MONDOMAINE\Domain Admins" SePrintOperatorPrivilege -U "MONDOMAINE\administrator"

Création des répertoires de spool et du répertoire de stockage des drivers

mkdir -p /var/lib/samba/usershares/imprimantes
chgrp -R "domain admins"  /var/lib/samba/usershares/imprimantes/
chmod -R 2755  /var/lib/samba/usershares/imprimantes/
setfacl -R -m g:"domain admins":rwx /var/lib/samba/printers
setfacl -R -d -m g:"domain admins":rwx /var/lib/samba/printers
chmod -R g+rwx /var/lib/samba/printers
chown -R administrator:"domain admins" /var/lib/samba/printers
chmod 1777 /var/spool/samba/


Ensuite à partir du Windows, aller sur les adresses suivantes et chanrger les pilotes sur le serveur comme sur un serveur Windows standard.

\\srvcups\Imprimantes   pour un win7
\\srvcups\printers      pour un winxp

Ensuite pour chacune des imprimantes, double-cliquer dessus, dire que l'on ne veut pas faire le chargement des drivers tout de suite. Ensuite, dans l'onglet pilote, choisir le pilote que l'on a chargé précédemment sur le serveur.

Ensuite il reste à modifier les valeurs par défaut de l'imprimante dans l'onglet avancé.

Désactiver la fonction cups pour éviter des messages d'erreur dans les logs

Si vous n'avez pas de serveur d'impression sur votre samba3/samba4 et que vous avez des messages d'erreurs comme suit dans votre /var/log/syslog

Jun 25 18:19:35 thor smbd[2916]: [2014/06/25 18:19:35.510096,  0] ../source3/printing/print_standard.c:68(std_pcap_cache_reload)
Jun 25 18:19:35 thor smbd[2916]:   Unable to open printcap file /etc/printcap for read!

Dans ce cas, vous pouvez rajouter les lignes suivante au fichier smb.conf

[global]
...
printcap name = /dev/null
load printers = no
...