SAMBA - Samba4 et CUPS
Sommaire
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 ...