SCIENTIFIC-LINUX-USERS Archives

May 2009

SCIENTIFIC-LINUX-USERS@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Jon Peatfield <[log in to unmask]>
Reply To:
Jon Peatfield <[log in to unmask]>
Date:
Fri, 29 May 2009 21:34:40 +0100
Content-Type:
TEXT/PLAIN
Parts/Attachments:
TEXT/PLAIN (112 lines)
On Fri, 29 May 2009, P. Larry Nelson wrote:

> I have a CUPS access control question.
>
> This relates to cups-1.3.7-8.el5_3.4 on a SL 5.1 system fully patched.
> This also relates to using CUPS as a printer server where all my other
> linux boxes use the browsing feature of CUPS to print thru the print
> server.
>
> With an older version of CUPS (1.1.17-13.3.58) I'm currently using
> on an older RHEL3 system, I can control access to all our printers
> by specifying either a network or specific IP address in a CUPS
> white list.  This is done via redhat-config-printer, which has,
> via a pulldown menu, a "sharing..." option, which then opens a
> box that allows one to specify a single host or a network that
> is allowed to access individual print queues.  This is very
> important for us in order to keep others, on different networks,
> from finding and using our printers (yes, I'm talking about
> those crafty grad students in other departments.) as well as
> allowing (via specific hostname) a user *not* on our network
> to print to our printers.
>
> Needing to migrate from RHEL3, I set up a test SL 5.1 box and
> was able to duplicate the printer server function of our old
> RHEL3 box, *except* that now, with the latest CUPS version,
> access control is only by user! - and even that seems to be
> broken when going thru system-config-printer.  I'm only able
> to add a user via the web interface (http://localhost:631).
> That functionality via system-config-printer is grayed out!
> And just what does "user" mean?  Where does it look for the
> "user" entry one might include?  Passwd file? NIS?
> Is the CUPS administrator expected to enter hundreds of user
> names?  And what about allowing someone, *not* in our NIS or
> passwd file to print to our printers?
>
> Anyway, we need to control access via network and hostname
> as in the past.  Is there no way to do that type of access
> control anymore?

I don't know about the gui interfaces, but in cupsd.conf for cups 1.3.x 
you can still use the <Location...> stuff to allow/deny access to specific 
netblocks or hosts.

We don't do this for specific printers, but we do for access to the entire 
server using <Location />, e.g (with the addresses hidden)

<Location />
   Order Deny,Allow
   Deny From All
   Allow From 127.0.0.1
   # allow general requests from any host in damtp
   Allow From xxxx/24
   Allow From xxxx/24
   Allow From xxxx/24
   ## # and from the printers (is this actually sensible, probably not!)
   ## Allow From 10.16.1.0/24
   # and from laptop machines (not NAT'd)
   Allow From yyyy/23
   # and from new range for laptop machines (not NAT'd)
   Allow From yyyy/22
   # allow from (hidden) for testing!
   Allow From zzzz
   Allow From zzzz
   Allow From zzzz
</Location>

there used to be a block of comments in the default cupsd.conf which said:

#<Location /printers>
#
# You may wish to limit access to printers and classes, either with Allow
# and Deny lines, or by requiring a username and password.
#
#</Location>

#<Location /printers/name>
#
# You may wish to limit access to printers and classes, either with Allow
# and Deny lines, or by requiring a username and password.
#

so I'd guess that to restrict access to a particular printer called foobar 
(say) you could use

<Location /printers/foobar>
   Order Deny,Allow
   Deny From All
   Allow From 127.0.0.1
   Allow From ... etc etc
</Location>

All this assumes that you trust the addresses and networks in between :-)

BTW we do the following, which may or may not be sensible for you:

<Location /admin>
   AuthType Basic
   Require user @SYSTEM

   ## Restrict access to localhost
   Order Deny,Allow
   Deny From All
   # MUST not let non-privelaged users log into the print server!
   Allow From 127.0.0.1
</Location>

but is good enough for my needs (we only do cups config locally on the 
print servers and only as SYSTEM users, but then we only use the lpadmin 
commands etc)...

  -- Jon

ATOM RSS1 RSS2