我一直在努力Kerberize在我们的域内的某些服务,其中之一是CUPS。 设置如下:中央打印服务器连接到域中的每台打印机并共享它们,每个客户端连接到该服务器上的某些打印机。 因此,服务器和所有客户端都运行一个CUPS假脱机程序。 打印服务器上需要进行身份validation,原因很明显 – 使用基本身份validation工作(在尝试打印的客户端上显示用户名/密码对话框),但协商身份validation不会。
打印服务器有一个服务密钥表,服务名称为“主机”,客户端和服务器有适当的DNS和反向DNS条目,用于打印服务器和KDC。 获得客户的主要工作的票。 但是当我尝试打印时,出现一个文本框“Negotiating”的对话框,旁边有一个文本框。 无论在对话框中input什么内容,都会继续显示出来。
有趣的是,使用client.conf将客户端直接指向打印服务器的后台处理程序可以使用协商身份validation – 获取服务故障单并且身份validation正常进行。 但是由于每个客户都看到每台打印机,所以这并不理想 – 不同的房间想要看到他们特定的房间打印机。
谈判authentication应该如何工作? 目前我绝对不知道该去哪里。 服务器运行Ubuntu 12.04 LTS(完全更新),客户端也使用Ubuntu 12.04 LTS(不完全更新)。 客户端和服务器都运行CUPS 1.5.3。 KDC是Samba4服务器,打印服务器和客户端都正确configurationKerberos。 客户端configuration只是默认的Ubuntu版本。 当前的服务器cupsd.conf如下所示:
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>