CUPS Negociar os problemas de autenticação

1

Eu tenho lutado para Kerberize certos serviços dentro do nosso domínio, um dos quais é o CUPS. A configuração é a seguinte: um servidor de impressão central se conecta a cada impressora individual ao redor do domínio e as compartilha, e cada cliente se conecta a determinadas impressoras nesse servidor. Portanto, o servidor e todos os clientes executam um spooler do CUPS. A autenticação é necessária no servidor de impressão por razões óbvias - o uso da autenticação Básica funciona (com uma caixa de diálogo nome de usuário / senha aparecendo em um cliente tentando imprimir), mas a autenticação Negotiate não.

O servidor de impressão possui um keytab de serviço com o nome de serviço 'host', e os clientes e o servidor possuem entradas DNS e DNS reversas adequadas para o servidor de impressão e o KDC. Conseguir um ticket para um diretor funciona nos clientes. Mas quando tento imprimir, uma caixa de diálogo com o texto 'negociar' aparece com uma caixa de texto ao lado. Não importa o que é digitado na caixa de diálogo, continua a aparecer.

Curiosamente, usar o client.conf para apontar o cliente diretamente para o spooler do servidor de impressão funciona com a autenticação Negotiate - a obtenção de um ticket de serviço funciona e a autenticação acontece sem problemas. Mas isso não é o ideal, pois todos os clientes vêem todas as impressoras - salas diferentes querem ver suas impressoras de sala específicas.

Como a autenticação Negotiate deve funcionar? No momento não tenho absolutamente nenhuma idéia para onde ir. O servidor está executando o Ubuntu 12.04 LTS (totalmente atualizado) e os clientes também estão usando o Ubuntu 12.04 LTS (não totalmente atualizado). Ambos os clientes e o servidor executam o CUPS 1.5.3. O KDC é um servidor Samba4, com o servidor de impressão e os clientes configurados corretamente para o Kerberos. A configuração do cliente é apenas a versão padrão do Ubuntu. O servidor atual cupsd.conf é o seguinte:

LogLevel warn
MaxLogSize 0
SystemGroup lpadmin
# Allow remote access
Port 631
HostNameLookups on
Listen /var/run/cups/cups.sock
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseLocalProtocols CUPS dnssd
BrowseAddress @LOCAL
DefaultAuthType Negotiate
DefaultPolicy authenticated
WebInterface Yes

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

<Policy default>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Create-Job Print-Job Print-URI Validate-Job>
  AuthType Default
  Require valid-user
    Order allow,deny
Allow from 172.30.*.*
  </Limit>
  <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 Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    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 CUPS-Get-Devices>
    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 Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

<Policy authenticated>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Default
    Order deny,allow
  </Limit>
  <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 Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Default
    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 Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
    
por Xenopathic 05.03.2013 / 14:33

0 respostas