11.6. Recursos especiais do SUSE Linux

Vários recursos do CUPS foram adaptados para o SUSE Linux. Algumas das mudanças mais importantes são abordadas aqui.

11.6.1. Servidor e firewall do CUPS

Existem várias maneiras de configurar o CUPS como cliente de um servidor de rede.

  1. Para cada fila do servidor de rede, você pode configurar uma fila local por meio da qual encaminhará todas as tarefas ao servidor de rede correspondente (fila de encaminhamento). Geralmente, essa abordagem não é recomendada porque todas as máquinas clientes devem ser reconfiguradas sempre que a configuração do servidor de rede sofrer alguma mudança.

  2. As tarefas de impressão também podem ser encaminhadas diretamente a um servidor de rede. Para esse tipo de configuração, não execute um daemon CUPS local. A chamada de lp ou da biblioteca correspondente de outros programas pode enviar tarefas diretamente ao servidor de rede. No entanto, essa configuração não funcionará se você também quiser imprimir em uma impressora local.

  3. O daemon CUPS pode ouvir pacotes de transmissão IPP que outros servidores de rede enviam para anunciar as filas disponíveis.

    Essa é a melhor configuração do CUPS para impressão em servidores CUPS remotos. No entanto, há o risco de que um invasor envie transmissões IPP com filas e o daemon local acesse uma fila falsa. Se ele exibir a fila com o mesmo nome de outra fila no servidor local, o proprietário da tarefa poderá acreditar que a tarefa foi enviada a um servidor local, enquanto, na verdade, ela foi enviada ao servidor do invasor.

O YaST pode localizar os servidores CUPS verificando os hosts de rede local para ver se eles oferecem o serviço IPP ou ouvindo transmissões IPP. Isso exige que o firewall permita a transmissão de pacotes recebidos na porta 631/UDP (cliente de serviço IPP). Isso será habilitado automaticamente quando você tiver configurado sua máquina para estar na zona de firewall interna. Abrir uma porta para configurar acesso a filas remotas na zona externa pode constituir um risco de segurança porque o invasor pode transmitir um servidor que talvez seja aceito pelos usuários. Por padrão, as transmissões de IPP são rejeitadas na zona externa. Consulte Seção 4.1.4.1, “Configurando com o YaST” para obter detalhes sobre a configuração de firewall.

O usuário também pode detectar os servidores CUPS verificando ativamente os hosts de rede locais ou configurar filas manualmente. No entanto, por causa das razões mencionadas no início desta seção, esse método não é recomendado.

11.6.2. Mudanças no serviço de impressão do CUPS

Estas mudanças foram inicialmente aplicadas para o SUSE Linux 9.1.

11.6.2.1. Execuções de cupsd como usuário lp

Na inicialização, cupsd muda do usuário root para o usuário lp. Isso oferece um nível de segurança muito maior porque o serviço de impressão CUPS não é executado com permissões irrestritas, mas somente com as permissões necessárias para o serviço de impressão.

Entretanto, a autenticação (a verificação de senha) não pode ser executada via /etc/shadow, porque lp não tem acesso a /etc/shadow. Em vez disso, deve ser usada a autenticação específica do CUPS via /etc/cups/passwd.md5. Para esses fins, o administrador do CUPS com o grupo de administração do CUPS sys e a senha do CUPS devem ser digitados em /etc/cups/passwd.md5. Para isso, digite o seguinte como root:

lppasswd -g sys -a CUPS-admin-name

Esta configuração também é essencial se você quiser usar o front end da Web de administração CUPS ou a ferramenta de administração da impressora KDE.

Quando cupsd é executado como lp, /etc/printcap não pode ser gerado, porque lp não pode criar arquivos em /etc/. Portanto, cupsd gera /etc/cups/printcap. Para assegurar que os aplicativos que lêem somente nomes de fila de /etc/printcap continuem a funcionar adequadamente, /etc/printcap é um link simbólico que aponta para /etc/cups/printcap.

Quando cupsd é executado como lp, a porta 631 não pode ser aberta. Portanto, cupsd não pode ser recarregado com rccups reload. Use rccups restart.

11.6.2.2. Funcionalidade genérica para BrowseAllow e BrowseDeny

As permissões de acesso para BrowseAllow e BrowseDeny se aplicam a todos os tipos de pacotes enviados para cupsd. As configurações padrão em /etc/cups/cupsd.conf são as seguintes:

BrowseAllow @LOCAL
BrowseDeny All

e

<Local /> 
  Order Deny,
  Allow Deny From All 
  Allow From 127.0.0.1 
  Allow From 127.0.0.2 
  Allow From @LOCAL 
</Local> 

Dessa forma, somente hosts LOCAL podem acessar cupsd em um servidor CUPS. Hosts LOCAL são hosts cujos endereços IP pertencem a uma interface não-PPP (interfaces cujos sinalizadores IFF_POINTOPOINT não estão definidos) e pertencem à mesma rede do servidor CUPS. Pacotes de todos os outros hosts serão rejeitados imediatamente.

11.6.2.3. cupsd ativado por padrão

Em uma instalação padrão, cupsd é ativado automaticamente, permitindo fácil acesso a filas de servidores de rede CUPS sem qualquer ação manual adicional. Os itens em Seção 11.6.2.1, “Execuções de cupsd como usuário lp” e Seção 11.6.2.2, “Funcionalidade genérica para BrowseAllow e BrowseDeny são pré-condições essenciais desse recurso, caso contrário a segurança não seria suficiente para ativação automática de cupsd.

11.6.3. Arquivos PPD em pacotes diferentes

A configuração de impressora do YaST define as filas do CUPS usando apenas os arquivos PPD instalados em /usr/share/cups/model/ no sistema. Para localizar os arquivos PPD adequados ao modelo de impressora, o YaST compara o fabricante e o modelo determinados durante a detecção do hardware aos fabricantes e modelos de todos os arquivos PPD disponíveis em /usr/share/cups/model/ no sistema. Para isso, a configuração de impressora do YaST gera um banco de dados com as informações de fabricante e modelo extraídas dos arquivos PPD. Quando você seleciona uma impressora na lista de fabricantes e modelos, recebe os arquivos PPD que correspondem ao fabricante e modelo adequados.

A configuração usando apenas arquivos PPD e nenhuma outra fonte de informação tem a vantagem de permitir a livre modificação de arquivos PPD em /usr/share/cups/model/. A configuração de impressora do YaST reconhece as mudanças e gera novamente o banco de dados de fabricantes e modelos. Por exemplo, se você tem apenas impressoras PostScript, normalmente não precisa dos arquivos PPD Foomatic do pacote cups-drivers ou os arquivos PPD Gimp-Print do pacote cups-drivers-stp. Em vez disso, os arquivos PPD de suas impressoras PostScript podem ser copiados diretamente para /usr/share/cups/model/ (se já não existem no pacote manufacturer-PPDs) para que você obtenha uma configuração ideal para suas impressoras.

11.6.3.1. Arquivos PPD do CUPS do pacote cups

Os arquivos PPD genéricos do pacote cups foram complementados com arquivos PPD Foomatic adaptados para impressoras PostScript nível 1 e 2:

  • /usr/share/cups/model/Postscript-level1.ppd.gz

  • /usr/share/cups/model/Postscript-level2.ppd.gz

11.6.3.2. Arquivos PPD do pacote cups-drivers

Normalmente, o filtro de impressora Foomatic foomatic-rip é usado junto com Ghostscript para impressoras não-PostScript. Os arquivos PPD Foomatic adequados têm as entradas *NickName: ... Foomatic/Ghostscript driver e *cupsFilter: ... foomatic-rip. Esses arquivos PPD estão localizados no pacote cups-drivers.

O YaST preferirá um arquivo PPD Foomatic se um arquivo destes com a entrada *NickName: ... Foomatic ... (recommended) corresponder ao modelo de impressora e o pacote manufacturer-PPDs não contiver um arquivo PPD mais adequado.

11.6.3.3. Arquivos PPD Gimp-Print do pacote cups-drivers-stp

Em vez de foomatic-rip, o filtro CUPS rastertoprinter do Gimp-Print pode ser usado em várias impressoras não-PostScript. Esse filtro e os arquivos PPD Gimp-Print adequados estão disponíveis no pacote cups-drivers-stp. Os arquivos PPD Gimp-Print estão localizados em /usr/share/cups/model/stp/ e têm as entradas *NickName: ... CUPS+Gimp-Print e *cupsFilter: ... rastertoprinter.

11.6.3.4. Arquivos PPD de fabricantes de impressoras no pacote manufacturer-PPDs

O pacote manufacturer-PPDs contém arquivos PPD de fabricantes de impressoras que são liberados mediante uma licença suficientemente permissiva. Impressoras PostScript devem ser configuradas com o arquivo PPD adequado do fabricante da impressora, já que esse arquivo permite o uso de todas as funções da impressora PostScript. O YaST preferirá um arquivo PPD do pacote manufacturer-PPDs se as seguintes condições forem atendidas:

  • O fabricante e o modelo determinados durante a detecção do hardware correspondem ao fabricante e ao modelo de um arquivo PPD do pacote manufacturer-PPDs.

  • O arquivo PPD do pacote manufacturer-PPDs é o único arquivo PPD adequado para o modelo de impressora ou existe um arquivo PPD Foomatic com uma entrada *NickName: ... Foomatic/Postscript (recommended) que também corresponde ao modelo de impressora.

Assim, o YaST não usa nenhum arquivo PPD do pacote manufacturer-PPDs nos seguintes casos:

  • O arquivo PPD do pacote manufacturer-PPDs não corresponde ao fabricante e ao modelo. Isso poderá ocorrer se o pacote manufacturer-PPDs contiver apenas um arquivo PPD para modelos semelhantes, por exemplo, se não houver arquivo PPD separado para os modelos individuais de uma série de modelos, mas o nome do modelo for especificado na forma Funprinter 1000 series no arquivo PPD.

  • O arquivo PPD Foomatic PostScript não é recomendado. Isso talvez ocorra porque o modelo de impressora não funciona suficientemente bem no modo PostScript; por exemplo, a impressora pode não ser confiável nesse modo porque tem pouca memória ou é muito lenta porque seu processador é fraco. Além disso, a impressora pode não suportar PostScript por padrão porque, por exemplo, o suporte a PostScript só está disponível como módulo opcional.

Se um arquivo PPD do pacote manufacturer-PPDs for adequado para uma impressora PostScript, mas o YaST não puder configurá-lo por esses motivos, selecione manualmente o modelo de impressora respectivo no YaST.