O interface WEB do CUPS



Introdução

O CUPS é o sistema de impressão usado actualmente na grande maioria dos Sistemas Operativos *NIX, e a Caixa Mágica não é excepção.

Para configurar uma impressora na Caixa Mágica o mais simples é utilizar o xLucas -> Impressoras, mas o próprio CUPS traz um interface de configuração WEB que permite através de um navegador de internet (Firefox, Mozilla, Opera, etc.) adicionar, editar e remover impressoras, além de permitir diversos tipos de administração das filas de impressão entre várias outras coisas.

Aceder ao interface de configuração localmente

Para aceder a este interface temos de ter o CUPS a correr no sistema. Para verificar isso basta abrir uma consola e fazer o comando:

/etc/init.d/cups status
e deve devolver como resultado "Running".

Se não estiver a correr basta fazer como root o comando:

/etc/init.d/cups start

E para o iniciar automáticamnete em todos os arranques fazemos

insserv cups

A Caixa Mágica já trás o CUPS activo por omissão, logo estes passos não devem ser necessários, mas é sempre melhor garantir...

Agora abrimos o nosso navegador favorito e escrevemos no endereço a seguinte morada:

http://localhost:631

E vamos aceder ao interface do CUPS. Como utilizador normal do sistema podems ver a nossa fila de impressão, e algumas outras coisas, mas não podemos realizar tarefas administrativas, porque quand clicamos em "Administration" é-nos pedido um login e password. Este login e password NÃO É O DE ROOT... por isso não se assustem se não conseguirem aceder.

O CUPS passou na versão 10 da Caixa Mágica a ser corrido pelo utilizador "lp" e não pelo utilizador "root". Isto permite que se consiga restringir mais os serviços prestados pelo CUPS e garantir assim ainda mais a segurança do sistema. O problema é que o utilizador "lp" não é um utilizador normal de sistema, e por isso nem tem nenhuma password associada.

Assim para entrar no interface WEB do CUPS como o utilizador "root" temos de, numa consola como root, fazer o seguinte comando:

lppasswd -g sys -a root

e colocar uma password nova que pode ou não ser igual à password para entrar no sistema, e que tem as seguintes restrições:

Esta password só vai servir para aceder ao interface do cups, mais nada, ou seja para entrarmos no sistema como root continuamos a usar a password normal do root.

Depois de realizar este passo já podemos aceder à secção de administração do interface WEB com o utilizador root e a password que definimos no comando lppasswd.

Aceder ao interface de configuração remotamente

É possível a partir de qualquer computador aceder ao interface de configuração WEB de um servidor CUPS que esteja a correr em outra máquina, e realizar diversas tarefas. Por omissão este acesso está negado à partida, ou seja não é possível aceder ao interface remotamente. No entanto através da alteração de algumas configurações no ficheiro /etc/cups/cupsd.conf é possível alterar esta situação.

Existem duas formas de acesso: Como Utilizador e como Administrador, cuja configuração é realizada de forma distinta. Vou de seguida falar da configuração de cada uma delas.

Aceder ao interface de configuração remotamente como Utilizador

Como root editem o ficheiro /etc/cups/cupsd.conf e procurem uma secção parecida com:

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

Esta secção diz respeito aos utilizadores normais de sistema poderem aceder ao interface WEB remotamente. Esta secção neste momento só está a permitir o acesso ao interface a utilizadores que se tentem ligar a partir da própria máquina, e está a negar todos os outros pedidos. esta é uma excelente politica de segurança e acho que a devem seguir sempre, ou seja negar tudo excepto aquilo que for expressamente permitido.

Supondo que estamos numa rede interna em que todos os utilizadores têm IP's na gama 10.10.96.1, e queremos dar permissão a todos os utilizadores desta gama de IP's para acederem ao interface WEB do CUPS que está a correr no nosso servidor de impressão. Basta alterar aquele bloco de forma a ficar assim:

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 127.0.0.2
Allow From 10.10.96.*
Allow From @LOCAL
</Location>

Agora é preciso reiniciar o servidor CUPS de forma a que ele leia esta nova configuração, para isso basta no servidor fazer o seguinte comando como root:

/etc/init.d/cups restart

Aceder ao interface de configuração remotamente como Administrador

Para o administrador devem fazer basicamente o mesmo que fizeram para o utilizador, a única diferença é que o bloco a editar é outro. Procurem por um bloco do género:

<Location /admin>
#
# You definitely will want to limit access to the administration functions.
# The default configuration requires a local connection from a user who
# is a member of the system group to do any admin tasks.  You can change
# the group name using the SystemGroup directive.
#

AuthType BasicDigest
AuthClass Group
AuthGroupName sys

## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
#Encryption Required
</Location>

reparem que a localização aponta para /admin. Aqui, e visto estarmos a falar no acesso a uma secção de administração, aconselho vivamente a analisarem se querem mesmo permitir isto, e caso queiram nunca ponham uma gama de IP's, mas somente aqueles IP's a partir dos quais querem aceder ao interface para administração. Por exemplo se o IP do computador pessoal do administrador for 10.10.96.233 ou 10.10.96.110 devem colocar assim:

<Location /admin>
#
# You definitely will want to limit access to the administration functions.
# The default configuration requires a local connection from a user who
# is a member of the system group to do any admin tasks.  You can change
# the group name using the SystemGroup directive.
#

AuthType BasicDigest
AuthClass Group
AuthGroupName sys

## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 10.10.96.233
Allow From 10.10.96.110
#Encryption Required
</Location>

Mais uma vez, é preciso reiniciar o servidor CUPS de forma a que ele leia esta nova configuração, para isso basta no servidor fazer o seguinte comando como root:

/etc/init.d/cups restart

Cuidado com a segurança

Mais uma vez chamo a atenção que o acesso remoto à secção de administração (e mesmo à secção de Utilizadores) traz sempre questões de segurança que devem ser bem ponderados, visto estarmos a activar mais um porto a partir do qual podem ocorrer ataques à máquina servidor. Assim, se não for necssário acesso remoto NÃO O ACTIVEM. E já agora vejam bem todas as opções do ficheiro de configuração /etc/cups/cupsd.conf porque podem por exemplo tornar os método de autenticação mais seguros, mudar o porto do interface web, o utilizador do CUPS, entre muitas outras coisas. Mas tenham sempre MUITA atenção a todas as mudanças.