[Tutorial] Controle de Impressão - CUPS + Jasmine + Active Directory

Tutorias diversos sobre serviços e aplicações em servidores Linux
Avatar do usuário
marceloleaes
Administrator
Administrator
Mensagens: 1516
Registrado em: 10 Jun 2013 12:45
Localização: Novo Hamburgo
Idade: 41
Contato:
Status: Offline

[Tutorial] Controle de Impressão - CUPS + Jasmine + Active Directory

Mensagem por marceloleaes »

Este tutorial aborda a configuração básica dos serviços CUPS e Jasmine com autenticação integrada ao AD para gestão das impressoras da rede em um servidor de impressão centralizado e com relatórios de impressão por impressora e por usuário ao AD. Mãos na massa:

Instalando o Kerberos

Código: Selecionar todos

apt-get install ldap-utils libldap2 krb5-user
Se a libldap2 não for encontrada, utilizadar: libldap-2.4-2

O instalador fará alguns questionamentos.
O primeiro é qual o nome do seu controlador de domínio.
Depois você será questionado sobre qual o controlador de domínio primário da sua rede.

Informe o nome DNS do servidor e adicione o DNS do AD no arquivo /etc/resolv.conf

Instalação e configuração do Samba

Código: Selecionar todos

apt-get install samba samba-common winbind
Mais uma vez o instalador lhe fará perguntas. A primeira é qual o nome do domínio.
Responda em letras maiúsculas. exemplo: DOMINIO

Depois disso você será perguntado se quer modificar smb.conf para usar configurações WINS fornecidas via DHCP.
Responda Não.

Utilize o seguinte smb.conf :

Código: Selecionar todos

[global]
workgroup = DOMINIO
server string = PRINTSERVER
netbios name = PRINTSERVER
realm = DOMINIO.LOCAL
dns proxy = no
ldap ssl = no
log file = /var/log/samba/%m.log
max log size = 500
debug level = 1
security = ads
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
username map = /etc/samba/smbusers
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
unix charset = iso-8859-1
password server = IP_DO_SERVIDOR_DE_DOMINIO
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /dev/null
template shell = /dev/null
winbind use default domain = yes
passdb backend = smbpasswd
preferred master = no
wins support = yes
os level = 254
printing = cups
load printers = yes

[printers]
comment = Impressoras do Servidor
path = /var/spool/samba
printable = Yes
printing = cups
public = yes
writable = yes
load printers = yes
print ok = yes
guest ok = yes
browseable = yes
Feito isso reinicie o Samba e o Winbind para que as modificações entrem em vigor.

Código: Selecionar todos

/etc/init.d/samba restart && /etc/init.d/winbind restart
Agora já podemos ingressar a máquina no domínio Active Directory. Para isso execute:

Código: Selecionar todos

net ads join -U administrator
Onde administrator é o administrador do domínio. Coloque a senha e pronto! Já temos a máquina como membro do domínio Active Directory. Edite também o arquivo nsswitch.conf para que fique da seguinte forma:

Código: Selecionar todos

# /etc/nsswitch.conf

passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

hosts:          files dns
networks:       files

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

netgroup:       nis
Instalando o Jasmine

Depois de ingressar a máquina no domínio iremos começar a instalação e configuração do jasmine propriamente dita. Vamos começar instalando os pré-requisitos:

Código: Selecionar todos

apt-get install mysql-server-5.0 apache2 php5 php5-mysql python-imaging cups libdbd-mysql-perl
Cadastre uma senha para o usuário root do mysql e em seguida configure o bando de dados do Jasmine conforme abaixo:

Código: Selecionar todos

mysql -uroot -psenha
CREATE DATABASE jasmine;
GRANT ALL ON jasmine.* TO [email protected] IDENTIFIED BY 'jasmine';
Baixando e instalando os pacotes do Jasmine

Vamos baixar os pacotes do Jasmine e colocá-los em um diretório chamado /dados:

Código: Selecionar todos

mkdir /dados && cd /dados
wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-MySQL-0.0.3.tar.bz2
wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Backend-0.0.3.tar.bz2
wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Web-0.0.3.ta
r.bz2
tar xvjf JASmine-Backend-0.0.3.tar.bz2
tar xvjf JASmine-Web-0.0.3.tar.bz2
tar xvjf JASmine-MySQL-0.0.3.tar.bz2
cd JASmine-MySQL-0.0.3
Agora iremos rodar o script .sql no banco do jasmine criado anteriormente:

Código: Selecionar todos

mysql -uroot -psenha jasmine < jasmine.sql
Instalação do Backend

Código: Selecionar todos

cd ..
cd JASmine-Backend-0.0.3
tar zxvf pkpgcounter-2.10.tar.gz
cd pkpgcounter-2.10
./setup.py install
cd ..
cp jasmine /usr/lib/cups/backend
chmod 755 /usr/lib/cups/backend/jasmine
cp dummy /usr/lib/cups/backend
chmod 755 /usr/lib/cups/backend/dummy
Modifique as linhas do arquivo /usr/lib/cups/backend/jasmine da seguinte forma:

Código: Selecionar todos

my $DBhost="localhost";
my $DBlogin="jasmine";
my $DBpassword="senha_do_usuario_jasmine";
my $DBdatabase="jasmine";

my $Want_Sys_Syslog=1;
my $Debug_Mode=0;

my $path_to_pkpgcounter="/usr/local/bin/pkpgcounter";
my $path_to_python="/usr/local/bin/python";
Editando o cupsd.conf

Deixe-o da seguinte forma:

Código: Selecionar todos

LogLevel warning
SystemGroup lpadmin

# Allow remote access
Port 631
Listen /var/run/cups/cups.sock

# Share local printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAddress @LOCAL
DefaultAuthType Basic
<Location />
Allow From 127.0.0.1
Allow From 192.168.*

# Allow shared printing and remote administration...
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin>
Allow From 127.0.0.1
Allow From 192.168.*

# Allow remote administration...
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM

# Allow remote access to the configuration files...
Order allow,deny
Allow @LOCAL
</Location>
<Policy default>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Cancel-Job CUPS-Authenticate-Job>
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
DefaultEncryption Never
Instalando a parte web do jasmine

Código: Selecionar todos

mkdir /var/www/jasmine
cp -R /dados/JASmine-Web-0.0.3/* /var/www/jasmine
cp /var/www/jasmine/config.php.dist /var/www/jasmine/config.php
/etc/init.d/apache2 restart
Edite as seguintes linhas do arquivo conf.php:

Código: Selecionar todos

$DB_host="localhost";
$DB_login="jasmine";
$DB_pass="senha_do_usuario_jasmine";
$DB_db="jasmine"
Pronto. Com isso já teremos o jasmine emitindo relatórios por nome de usuário do AD.

Instalando as Impressoras no CUPS

Para que se possa imprimir e ser contabilizado no Jasmine você precisa instalar a impressora escolhendo a opção Really Virtual Printer for Testing Cups e colocar jasmine antes da URL. Veja o Exemplo abaixo:

Código: Selecionar todos

jasmine:socket://ip_da_impressora:9100
Dessa forma o backend do Jasmine será executado e as impressões serão contabilizadas.

Instalando as Impressoras nos Clientes

Essa solução foi testada tanto em estações Windows quanto em Linux. Em ambas as impressões saíram com o nome dos usuários. Basta que nas duas situações as máquinas estejam ingressadas no domínio.

Para instalar as impressoras nos clientes escolha a opção Impressora de rede e coloque o seguinte endereço:

Código: Selecionar todos

http://ip_do_servidor_jasmine:631/printers/nome_da_impressora
Ou mapeie da maneira tradicional: \\SERVIDOR\ImpressoraXYZ , mapeando é necessário adicionar os drivers, tenha em mãos.

Bom proveito ;)


"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio

geisgf
Newbie
Newbie
Mensagens: 2
Registrado em: 06 Set 2023 09:52
Status: Offline

Re: [Tutorial] Controle de Impressão - CUPS + Jasmine + Active Directory

Mensagem por geisgf »

Bom dia,
   Surgiu um duvida na configuração da interface do jasmine, na configuração do PHP, você orienta a modificar o conf.PHP, mas no diretório existe somente o arquivo config.PHP, seria este o arquivo a ser configurado?

geisgf
Newbie
Newbie
Mensagens: 2
Registrado em: 06 Set 2023 09:52
Status: Offline

Re: [Tutorial] Controle de Impressão - CUPS + Jasmine + Active Directory

Mensagem por geisgf »

Boa tarde,
Qual versão do linux você esta usando?

Responder

Voltar para “Tutoriais”