CUPS no Ubuntu

15 10 2008

Esta semana tive um trabalhão para instalar uma impressora no Linux. Precisava instalar um servidor com uma interface web para controle, e optei pelo EBox. O Ebox, tem um característica interessante com appliance. Ele é chato de configurar, mas bem poderoso. Você pode trabalhar com “objetos” como usuários e redes, e cadastrar as regras de firewall e proxy usando esses “objetos”. Você descobre a importância e utilidade disso quando precisa fazer um mudança na rede. Daí você não precisa mudar as regras, apenas as características do objeto em questão, e tudo fica funcionando. Existem também a facilidade de uma interface de administração web, toda construida em AJAX. A tradução tem umas escorregas, mas tudo bem, é prática. Ele oferece suporte a VPN, compartilhamento de arquivos e impressoras, hospedagem de email e páginas, Anti-SPAM integrado, controle de banda e compartilhamento de internet, podendo ser usando um proxy integrado (SQUID/DansGuardian). Tudo muito bonito, tudo muito bom, mas tem um problema. O controle de banda é excelente, mas o proxy é bem pobre na parte da administração. Pouquíssimos recursos ante o que o Squid oferece.

Bem, mas vamos falar sobre a dificuldade experimentada. Esse cliente queira um proxy simples, só para acelerar a rede, e centralizar os arquivos da empresas para facilitar compartilhamento e backup. Isso também diminui a inconsistencia de versões, já que os arquivos estão todos e ficaram no servidor. Como dizem aqui no Paraná, montamos um “baguá” de um servidor para um rede com apenas 6 máquinas. Ele queria coisa boa, e montamos um Core 2 Duo 2,53GHz com 1 GB de memória, 1 HD de 250 GB (principal) e outro de 1 TB (secundário). Realmente uma super-máquina!Além disso o cliente comprou um impressora Samsung SCX-4200, e aí o pessoal da empresa pisou na bola. Ninguém me perguntou se dava para instalar essa impressora no servidor. Instalei o Ubuntu Server 8.04 LTS, coloquei as fontes do ebox no source.list. Se quiserem testar o EBox as linhas são:

deb http://ppa.launchpad.net/juruen/ubuntu hardy main

Atualizei tudo, configurei o EBox e comecei daí a configurar os serviços:

  • Módulos do EBox necessários – OK
  • Rede – OK
  • DHCP – OK
  • Firewall – OK
  • Logs e eventos – OK
  • Proxy – OK
  • Usuários e Grupos – OK
  • Compartilhamento de Arquivos – OK
  • Compartilhamento da Impressora – …

Nesse momento começou o meu calvário! Fui na listagem do Ebox… ADD Printer… USB… Samsung… e cadê a SCX-4200? Já havia visto uma vez que havia o driver para linux. Fui no site e bingo! tava lá. Abaixei o driver para o servidor, instalei e voltei na listagem do EBox e nada!

Pensei com os meus botões, bem vou acessar a interface web do CUPS e tá tudo tranquilo. Apontei o browser para o endereço do server: http://192.168.1.1:631. Nada! Apertei o Refresh, e… nada.

Após pensar sobre a situação, tive a idéia de que poderia ter alguma restrição ao acesso remoto, por ser tratar de um servidor. Abri o cupsys.conf e tá lá! Ele estava assim:

…
Listen localhost:631
… 

DefaultAuthType Basic
…
# Restrict access to the server...
<location />
  Order allow,deny
 # Restrict access to the admin pages...
<location /admin>
  Order allow,deny
</location> # Restrict access to configuration files...
<location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</location>

Li e vi que estava com o acesso liberado apenas para o localhost. Fácil, vou adicionar o acesso para a minha rede local. Coloquei as linhas e nada! Fui pra internet dar uma googlada e achei as regras certas. Como quero prestar suporte remoto tirei a linhas escrito Listen localhost:631 e coloquei com Port. Meu arquivo ficou assim:

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 localhost
 Allow 192.168.1.0/24
 Allow <strong>meu_ip/rede_remoto</strong>/27
 # Allow shared printing and remote administration...
 Order allow,deny
 Allow all     

<location /admin>
 Allow localhost
 Allow 192.168.1.0/24
 Allow <strong>meu_ip/rede_remoto</strong>/27
 # Allow remote administration...
 Order allow,deny
 Allow all
</location>
<location /admin/conf>
 AuthType Default
 Require user @SYSTEM
 Allow localhost
 Allow 192.168.1.0/24
 Allow <strong>meu_ip/rede_remoto</strong>/27
 # Allow remote access to the configuration files...
 Order allow,deny
 Allow all
</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 CUPS-Authenticate-Job>
 Require user @OWNER @SYSTEM
 Order deny,allow
 </limit>
	<limit All>
 Order deny,allow
 </limit>
</policy>

Apontei o browser e bingo (de novo)! Abriu a interface do CUPS, tudo lá bonitinho… fui em Administration e… nada! Percebi que tinha um monte de processos do CUPS rodando (quando restartava ele não deveria estar fechando o processo direito), matei um por um e rodei o serviço de novo. Beleza! Mas ainda pede um senha.

Depois de dois dias de pesquisa, e muitas threads de foruns encontradas, achei esta, do site CaixaMágica, que dava o pulo do gato pra coisa funcionar. O comando é este abaixo:

lppasswd -g sys -a root

Com isso você consegue cadastrar a maldita senha que o sistema fica pedindo. Em relação ao acesso local, eu tentei usar o Lynx, mas ele sempre dava esse pau de senha também. Depois de cadastrar ele também funcionou. Depois de cadastrada a senha, o sistema já tinha enxergado a impressora pendurada na USB, já me deu a opção do driver correto e daí foi só terminar de configurar.


Ações

Informações

2 respostas

21 05 2009
Carlos

Opa…

valew a dica….
acora instalei a impressora ta funfando no linux… na hora de compartilhar esta me dando acesso negado tem alguma ideia????

valew

2 10 2009
Leonardo

Instalei o EBOX para teste em minha empresa…..criei os objetos….inclui nos objetos os nomes das estações………Criei o filtro que utilizaria para este objeto………mas como amarro o objeto ao filtro de sites do proxy que criei? A unica maneira que vi que dava pra fazer era se criasse um grupo……esse grupo amarraria o objeto………..e no filtro amarraria esse grupo…….porém ele exige que exista autenticação do usuário……….o que é muito chato para navegar na internet ……….pois pediria a senha do server proxy…….e portanto eu teria que criar usuários no proxy………Eh isso mesmo ou tem alguma outra maneira de ligar o objeto criado com os ips das estações ao filtro que quero utilizar para este grupo? (como é feito no squid.conf)

Obrigado!

Deixe um comentário