Gentoo Logo

Aviso : Este documento não é válido e não é mais mantido.


Gentoo Samba3/CUPS/ClamAV HOWTO

Conteúdo:

1.  Introdução deste HOWTO

Propósito

Este HOWTO foi desenvolvido para ajudá-lo a migrar uma rede com vários clientes diferentes falando línguas diferentes, para muitas máquinas diferentes que falam uma linguagem comum. O objetivo final é ajudar diferentes arquiteturas e tecnologias, viverem juntas em um feliz ambiente produtivo de coexistência.

Seguindo na direção definida neste HOWTO você deve dar um excelente passo para uma coexistência pacífica entre Windows, e virtualmente todas as variações de *nix conhecidas.

Este HOWTO originalmente não iniciou como um HOWTO, mas como um FAQ. Pretendeu-se explorar a funcionalidade e poder do sistema Gentoo, do portage e da flexibilidade das USE flags. Assim como muitos outros projetos, descobriu-se rapidamente o que faltava no reino Gentoo: não havia nenhum Samba HOWTO criado por usuários Gentoo. Esses usuários são mais exigentes do que a maioria; eles requerem performance, flexibilidade e customização. Entretanto isto não implica que este HOWTO não seja útil para outras distribuições; ele foi desenvolvido para trabalhar com uma versão altamente customizada do Samba.

Este HOWTO descreverá como compartilhar arquivos e impressoras entre PCs Windows e PCs *nix. Irá também demonstrar o uso da funcionalidade VFS (Virtual File System) do Samba para incorporar detecção automática de vírus. Para finalizar, irá mostrar a vocễ como montar e manipular compartilhamentos.

Há alguns tópicos que serão mencionados, mas estão fora do escopo deste HOWTO. Estes serão notados pois são apresentados.

Este HOWTO é baseado em uma compilação e junção de um excelente HOWTO fornecido nos forúms do Gentoo pelo Andreas "daff" Ntaflos e o conhecimento coletado de Joshua Preston. O link para esta discussão está disponível abaixo para sua referência:

Antes de você usar este guia

Existem diversos outros guias para configurar CUPS e/ou Samba, por favor leia-os também, pois eles podem dizer coisas que estão fora deste HOWTO (intencionalmente ou não). Um destes documentos mais útil e bem escrito é o Guia de Impressão Gentoo, edições de arquivos de configuração e configurações de impressoras específicas não serão discutidos aqui.

Breve Visão

Ápos a apresentação das várias USE flags, a seguinte lista esboçará todos os tópicos cobertos como eles serão apresentados:

  • No servidor Samba:
    • Instalar e configurar ClamAV
    • Instalar e configurar Samba
    • Instalar e configurar CUPS
    • Adicionando a impressora no CUPS
    • Adicionando os PS drivers para os clientes Windows
  • Nos clientes Unix:
    • Instalar e configurar CUPS
    • Configurando uma impressora padrão
    • Montando um compartilhamento Windows ou Samba
  • Nos clientes Windows:
    • Configurando a impressora
    • Accessando compartilhamentos Samba

Requisitos

Íremos precisar do seguinte:

  • net-fs/samba
  • app-antivirus/clamav
  • net-print/cups
  • net-print/foomatic
  • net-print/hpijs (se tiver uma impressora HP)
  • Um dos diversos kernel (preferencialmente 2.4.24+ ou 2.6.x)
  • Uma impressora (PS ou não, talvez não tão nova ou exagerada)
  • Uma rede funcionando (casa/escritório/etc, contendo mais de uma máquina)

O pacote principal que usamos aqui foi o net-fs/samba, entretanto, você irá precisar de um kernel com suporte a smbfs habilitado para montar um compartilhamento samba ou windows de outro computador. Será feito o emerge do CUPS caso ele já não esteja instalado. O app-antivirus/clamav será usado também, mas os outros devem ser facilmente adaptados para trabalharem com o Samba. O ebuild do samba no Gentoo suporta todo tipo de tecnologia de detecção de vírus, como Sophos, FProt, Fsav, Trend, Icap, Nai, ...

2.  Começando a se familiarizar com o Samba

As USE Flags

Antes de fazer o emerge de qualquer coisa, de uma olhada nas várias USE flags disponíveis para o Samba.

Listagem de código 2.1: Samba usa as seguintes variáveis USE:

kerberos mysql xml acl cups ldap pam readline python oav libclamav

Dependendo da sua topologia de rede e dos requisitos específicos do servidor, as USE flags exibidas abaixo irão definir o que incluir ou excluir da sua instalação do Samba.

USE flag Descrição
kerberos Inclui suporte para Kerberos. O servidor necessitará disto se pretende-se fazer parte de um domínio existente ou Active Directory. Veja a nota abaixo para mais informações.
mysql Isto irá permitir ao Samba usar MySQL para fazer autenticação de senha. Ele armazenará ACLs, nomes de usuário, senhas, etc em um banco de dados contra um arquivo texto. Se Samba necessitar fazer autenticação de senha, como agir como um servidor de validação de senha ou um Controlador de Domínio Primário (PDC).
xml A opção xml na USE para o Samba fornece um backend de banco de dados de senha permitindo ao Samba armazenar detalhes de conta em arquivos XML, para as mesmas razões listadas na descrição da USE flag mysql.
acl Habilita Listas de Controle de Acesso. O suporte a ACL no Samba usa uma correção no ext2/ext3, ou SGI's XFS de modo que funcione corretamente como uma extensão mais detalhada de acesso aos arquivos ou diretórios; bem mais do que os típicos esquemas GID/UID do *nix.
cups Este habilita suporte para o Sistema Único de Impressão Unix. Ele Fornece uma interface permitindo impressoras locais CUPS serem compartilhadas com outros sistemas na rede.
ldap Habilita o Lightweight Directory Access Protocol (LDAP). Se espera que o Samba use Active Directory, está opção deve ser usada. Isto seria usado no evento necessário do Samba para fazer login ou fornecer login para um Domínio/Servidor Active Directory. A USE flag kerberos é necessária para o funcionamento apropriado desta opção.
pam Inclui suporte para pluggable authentication modules (PAM). Isto fornece a habilidade para autenticar usuários no Servidor Samba, que é requerido para os usuários fazerem login no seu servidor. A USE flag kerberos é recomendada junto com esta opção.
readline Liga o Samba a libreadline. Isto é altamente recomendado e provavelmente não deve ser desabilitado.
python API de ligamento Python. Fornece uma API que permitirá usar Python para uma interface com o Samba.
oav Fornece acesso a varredura online de compartilhamentos Samba com FRISK F-Prot Daemon, Kaspersky AntiVirus, OpenAntiVirus.org ScannerDaemon, Sophos Sweep (SAVI), Symantec CarrierScan, e Trend Micro (VSAPI).
libclamav Use the ClamAV library instead of the clamd daemon

Algumas coisas a se mencionar sobre USE flags e diferentes funções incluidas no Samba:

3.  Instalação do Software Servidor

Fazendo o emerge no Samba

Primeiro de tudo: certifique-se que todos os nomes de suas máquinas resolvem corretamente. Qualquer um funcionando, seja um sistema de nomes de domínio executando em sua rede ou entradas apropriadas no seu arquivo /etc/hosts. cupsaddsmb apresentará falhas frequentes se os nomes das máquinas não estiverem apontando para as máquinas corretas.

Espero que agora você possa fazer uma avaliação do que realmente necessitará usar do Samba na sua instalação em particular. A configuração usada neste HOWTO é:

  • oav
  • cups
  • readline
  • pam

Para otimizar performance, tamanho e o tempo de compilação, as USE flags são especificamentes incluídas ou excluídas.

Listagem de código 3.1: Emerge Samba

# echo "net-fs/samba oav readline cups pam" >> /etc/portage/package.use
# emerge net-fs/samba

Nota: As seguintes arquiteturas necessitarão adicionar ~ para suas KEYWORDS: x86, ppc, sparc, hppa, ia64 e alpha

Isto irá fazer um emerge no Samba e no CUPS (se CUPS já não estiver instalado).

Fazendo o Emerge do ClamAV

Pelo fato da USE flag oav somente prover uma interface para permitir a verificação de vírus no acesso, um real detector de vírus deve ser instalado. O detector utilizado neste HOWTO é o ClamAV.

Listagem de código 3.2: Emerge Clamav

# emerge app-antivirus/clamav

Fazendo o Emerge do foomatic

Listagem de código 3.3: Emerge foomatic

# emerge net-print/foomatic

Fazendo o Emerge do net-print/hpijs

Somente necessário fazer este emerge caso utilize uma impressora HP.

Listagem de código 3.4: Emerge hpijs

# emerge net-print/hpijs

4.  Configuração do Servidor

Configurando o Samba

O principal arquivo de configuração do Samba é o /etc/samba/smb.conf. Ele é dividido em secões indicadas por [nomeseção]. Comentários são qualquer um # ou ;. Um exemplo do smb.conf está incluído abaixo com comentários e sugestões para modificações. Se precisar de mais detalhes, veja o man page para smb.conf, o smb.conf.example instalado, o web site do Samba ou qualquer um dos vários livros do Samba disponíveis.

Listagem de código 4.1: Um exemplo do arquivo /etc/samba/smb.conf

[global]
# Substitua MYWORKGROUPNAME pelo seu GrupodeTrabalho/domínio
workgroup = MYWORKGROUPNAME
# Naturalmente isto não tem nenhuma finalidade REAL à excepção de 
# deixar claro para todos que não é um Windows!
# %v exibe a versão do Samba que estamos utilizando.
server string = Samba Server %v
# Nós usaremos cups, então iremos colocá-lo aqui dentro ;-)
printcap name = cups
printing = cups
load printers = yes
# Queremos um arquivo de log e não queremos que seja maior do que 
# 50kb.
log file = /var/log/samba/log.%m
max log size = 50
# Definimos algumas opções para nossas interfaces...
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# Esta é uma boa idéia, ligaremos o servidor samba a nossa rede local.
# Por exemplo, se eth0 é seu dispositivo de rede local
interfaces = lo eth0
bind interfaces only = yes
# Agora especificaremos quem permitimos, estaremos após tudo
# muito concientes da segurança, pois está configuração não 
# utiliza senhas!
hosts allow = 127.0.0.1 192.168.1.0/24
hosts deny = 0.0.0.0/0
# Outras opções para isto são USER, DOMAIN, ADS e SERVER
# O padrão é user
security = share
# Sem senhas, então usaremos uma conta convidado!
guest account = samba
guest ok = yes
# Implementaremos agora a verificação de vírus no acesso.
# NOTA: Colocando isto na nossa seção [Global], habilitaremos
# verificação em TODOS compartilhamentos, você pode opcionalmente mover
# isto para um compartilhamento específico e detectar somente nele.

# Para Samba 3.x. Isto habilita verificação no acesso do ClamAV.
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/samba/vscan-clamav.conf

# Agora configuramos nossas informações sobre drivers de 
impressoras
[print$]
comment = Printer Drivers
path = /etc/samba/printer # this path holds the driver structure
guest ok = yes
browseable = yes
read only = yes
# Modifique isto para "nomeusuário,root" se não quiser que o root seja 
# o único administrador de impressoras)
write list = root

# Agora configuramos uma impressora para compartilhar, o nome é arbitrário
# e deve ser consistente entre Samba e CUPS!
[HPDeskJet930C]
comment = HP DeskJet 930C Network Printer
printable = yes
path = /var/spool/samba
public = yes
guest ok = yes
# Modifique isto para "nomeusuário,root" se não quiser que o root seja 
# o único administrador de impressoras)
printer admin = root

# Agora configuramos nosso compartilhamento de impressoras. Este deve ser
# browseable, printable, public.
[printers]   
comment = All Printers
browseable = no 
printable = yes   
writable = no
public = yes   
guest ok = yes
path = /var/spool/samba
# Modifique isto para "nomeusuário,root" se não quiser que o root seja 
# o único administrador de impressoras)
printer admin = root

# Criamos um novo compartilhamento que possamos ler/gravar de qualquer lugar
# Este é um modelo de compartilhamento temporário público, qualquer um pode fazer 
# o que quiser aqui.
[public]
comment = Public Files
browseable = yes
public = yes
create mode = 0766
guest ok = yes
path = /home/samba/public

Aviso: Se quiser usar a conta convidado do Samba para fazer qualquer coisa a respeito de imprimir dos clientes Windows: não defina guest only = yes na seção [global]. A conta convidado parece causar problemas quando executando cupsaddsmb às vezes quando tentando conectar de máquinas Windows. Veja abaixo, também, quando falamos sobre cupsaddsmb e os problemas que podem ocorrer. Use um usuário de impressão dedicado, como printeruser ou printer ou printme ou qualquer outro. Isto não prejudica e irá certamente lhe proteger de diversos problemas.

Aviso: Habilitando verificação no acesso do ClamAV na seção [global] irá degradar a performance do seu servidor Samba dramáticamente.

Agora criamos os diretórios requeridos para a mínima configuração do Samba para compartilhar a impressora instalada pela rede.

Listagem de código 4.2: Criando os diretórios

# mkdir /etc/samba/printer
# mkdir /var/spool/samba
# mkdir /home/samba/public

Ao menos um usuário do Samba é requerido a fim de instalar os drivers da impressora e para permitir usuários de se conectarem a impressora. Usuários devem existir no arquivo de sistema /etc/passwd.

Listagem de código 4.3: Criando os usuários

# smbpasswd -a root 

(Se algum outro usuário for um administrador de impressoras)
# smbpasswd -a username

As senhas do Samba não necessitam ser as mesmas senhas do sistema em /etc/passwd.

Você precisará atualizar também o /etc/nsswitch.conf para que sistemas Windows possam encontrar facilmente usando NetBIOS:

Listagem de código 4.4: Editando o arquivo /etc/nsswitch.conf

# nano -w /etc/nsswitch.conf
(Edite a linha hosts:)
hosts: files dns wins

Configurando o ClamAV

O arquivo de configuração especificado para ser utilizado em smb.conf é o /etc/samba/vscan-clamav.conf. As suas opções estão configuradas para o padrão, pode ser necessário alterar a ação para o arquivo infectado.

Listagem de código 4.5: /etc/samba/vscan-clamav.conf

[samba-vscan]
; configuração em tempo real para vscan-samba usando
; clamd
; todas opções estão configuradas para valores padrão

; não verifique arquivos maiores do que X bytes. Se definido como 0 
; (padrão), está funcionalidade é desabilitada (ex. todos arquivos são verificados)
max file size = 0

; gerar log de todos acessos aos arquivos (yes/no). Se definido como yes,
; todo acesso será logado. Se definido como no (padrão), somente acesso a arquivos 
; infectados serão logados
verbose file logging = no

; se definido como yes (padrão), o arquivo será verificado quando 
; aberto
scan on open = yes
; se definido como yes, o arquivo será verificado quando fechado (o 
; padrão é yes)
scan on close = yes

; se a comunicação com o clamd falhar, deve negar o acesso ao arquivo?
; (padrão: yes)
deny access on error = yes

; se o serviço falhar com um erro menor (arquivo corrompido, etc.),
; deve negar o acesso ao arquivo?
; (padrão: yes)
deny access on minor error = yes

; enviar uma mensagem de alerta pelo serviço Windows Messenger 
; quando vírus forem encontrados?
; (padrão: yes)
send warning message = yes

; o que fazer com os arquivos infectados
; quarantine: tentar mover para diretório de quarentena; se mover falhar apagá-lo
; delete:     deletar arquivo infectado
; nothing:    não faça nada
infected file action = delete

; onde colocar os arquivos infectados - você quer realmente alterar isto!
; Ele tem que estar no mesmo dispositivo físico que o compartilhamento!
quarantine directory  = /tmp
; prefixo para arquivos em quarentena
quarantine prefix = vir-

; como o Windows tenta abrir um arquivo múltiplas vezes em um período 
; (muito) curto de tempo, samba-vscan usa o mais recente mecanismo usado para 
; evitar múltiplas verificações de um arquivo. Está configuração especifica o 
; número máximo de elementos da mais recente lista de arquivos utilizada. 
; (padrão: 100)
max lru files entries = 100

; uma entrada é invalidada após o tempo de vida do arquivo lru (em 
; segundos).
; (Padrão: 5)
lru file entry lifetime = 5

; nome do socket do clamd (padrão: /var/run/clamd)
clamd socket name = /tmp/clamd

; número da porta onde o ScannerDaemon "escutará"
oav port = 8127

Geralmente é uma boa idéia iniciar a verificação por vírus imediatamente. Adicione-o para o runlevel default para que o serviço clamd inicie imediatamente. O serviço tem dois processos: freshclam mantém o banco de dados de definição de vírus atualizado quando o clamd é o serviço atual de anti-vírus. Primeiro você deve definir os locais dos arquivos de log de modo que atenda as suas necessidades.

Listagem de código 4.6: Verificando a localização dos arquivos de log

# vim /etc/clamd.conf
(Verifique a linha "LogFile /var/log/clamd.log")
# vim /etc/freshclam.conf
(Verifique a linha "UpdateLogFile /var/log/freshclam.log")
# vim /etc/conf.d/clamd
(Defina "START_CLAMD=yes" e "START_FRESHCLAM=yes")

Agora ative seu detector de vírus.

Listagem de código 4.7: Adicionando clamd para iniciar no boot

# rc-update add clamd default
# /etc/init.d/clamd start

Configurando o CUPS

Este é um pouco mais complicado. O arquivo de configuração do CUPS' é o /etc/cups/cupsd.conf. Ele tem a estrutura parecida com a do arquivo httpd.conf do Apache, assim como muitos você deve achá-lo familiar. No exemplo abaixo estão as diretivas que precisam ser alteradas:

Listagem de código 4.8: /etc/cups/cupsd.conf

ServerName PrintServer          # o nome do seu servidor de impressão
ServerAdmin root@PrintServer    # a pessoa que receberá os e-mails
		# relacionados a impressão, ex. você

AccessLog /var/log/cups/access_log # provavelmente não é necessário alterar
ErrorLog  /var/log/cups/error_log  # realmente não é necessário alterar isso

LogLevel  debug # somente quando estiver instalando e testando, deve ser 
		# alterado para 'info' depois

MaxClients 100 # I've had to set this to 1000000000 or so because some time back,
               # there seemed to be a bug in CUPS' controlling of the web interface,
               # making CUPS think a denial of service attack was in progress when
               # I tried to configure a printer with the web interface. weird.

BrowseAddress @IF(eth0) # Altere isto para sua interface de rede interna 

<Location />
Order Deny,Allow
Deny From All
Allow From 192.168.1.*  # o endereço da sua rede interna 
                        # ex 192.168.1.* irá permitir conexões de qualquer máquina da
                        # rede 192.168.1.0. altere para a sua realidade
</Location>

<Location /admin>
AuthType Basic
AuthClass System
Allow From 192.168.1.*  # o mesmo que antes, permite qualquer máquina 
                        # na rede 192.168.1.0 se conectar e ter tarefas 
			# administrativas após a autenticação
Order Deny,Allow
Deny From All
</Location>

Edite o arquivo /etc/cups/mime.convs e descomente algumas linhas. As alterações em mime.convs e mime.types são necessárias para fazer com que o CUPS imprima os documentos do Microsoft Office.

Listagem de código 4.9: /etc/cups/mime.convs

(A seguinte linha encontra-se no final do arquivo. Descomente-a)
application/octet-stream        application/vnd.cups-raw        0       

Edite o arquivo /etc/cups/mime.types e descomente algumas linhas.

Listagem de código 4.10: /etc/cups/mime.types

(A seguinte linha encontra-se no final do arquivo. Descomente-a)
application/octet-stream 

CUPS precisa ser iniciado durante o boot, e ser iniciado imediatamente.

Listagem de código 4.11: Configurando o serviço CUPS

(Para iniciar durante o boot)
# rc-update add cupsd default
(Para iniciar ou reiniciar o CUPS agora)
# /etc/init.d/cupsd restart

Instalando uma impressora para e com o CUPS

Primeiro, vá até LinuxPrinting.Org para encontrar e fazer o download do arquivo PPD correto para sua impressora e para o CUPS. Para fazer isso, clique na Lista de Impressoras no link a esquerda. Selecione o fabricante das suas impressoras e o modelo no menu pulldown, ex. HP e DeskJet 930C. Clique em "Show". Na próxima página clique no link "recommended driver" após ter lido as várias notas e informações. Então procure o arquivo PPD na próxima página, novamente após ter lido as notas e introduções existentes. Você pode ter que selecionar o fabricante das suas impressoras e o modelo novamente. Ler o Guia de inicialização do CUPS também é muito útil quando estiver trabalhando com o CUPS.

Agora você tem um arquivo PPD para sua impressora funcionar com o CUPS. Coloque-o dentro de /usr/share/cups/model. O arquivo PPD para a HP DeskJet 930C estava nomeado como HP-DeskJet_930C-hpijs.ppd. Você deve instalar a impressora agora. Isto pode ser feito pela interface web do CUPS ou pela linha de comando. A interface web se encontra em http://PrintServer:631 onde o CUPS estiver executando.

Listagem de código 4.12: Instalando a impressora pela linha de comando

# lpadmin -p HPDeskJet930C -E -v usb:/dev/ultp0 -m HP-DeskJet_930C-hpijs.ppd

Lembre-se de ajustar para a que você possui. Esteja certo de ter o nome (argumento -p) correto (o nome que definiu anteriormente durante a configuração do Samba!) e ponha o dispositivo correto usb:/dev/usb/blah, parallel:/dev/blah ou qualquer outro que esteja usando para sua impressora.

Você deve ser capaz agora de acessar a impressora pela interface web e imprimir uma página de teste.

Instalando os drivers da impressora do Windows

Agora que a impressora já deve estar funcionando é hora de instalar os drivers para os clientes Windows funcionarem. O Samba 2.2 introduziu está funcionalidade. Navegando no servidor de impressão pelo Ambiente de Rede, clicando com o botão direito na impressora compartilhada e selecionando "conectar" os drivers apropriados serão copiados automagicamente para o cliente conectado, evitando o trabalho de instalar manualmente os drivers da impressora localmente.

Existem dois tipos de drivers de impressora para isto. Primeiro, os drivers Adobe PS que podem ser obtidos em Adobe (Drivers de impressora PostScript). Segundo, existem os drivers PS do CUPS, que podem ser obtidos no site do CUPS selecionando "CUPS Driver for Windows" no menu pull down. Não existem diferenças entre as funcionalidades dos dois, mas os drivers Adobe PS necessitam ser extraídos em um Sistema Windows pois ele é um binário Windows. Também todo o processo de procurar e copiar os arquivos corretos é um bit mais trabalhoso. Os drivers do CUPS parecem ter suporte a algumas opções e os drivers do Adobe não.

Este HOWTO usa os drivers do CUPS para Windows. O arquivo baixado é chamado cups-samba-5.0rc2.tar.gz. Extraia os arquivos contidos em um diretório.

Listagem de código 4.13: Extraindo os drivers e executando a instalação

# tar -xzf cups-samba-5.0rc2.tar.gz
# cd cups-samba-5.0rc2
(Só use este script se CUPS estiver em /usr/share/cups)
# ./cups-samba.install

cups-samba.ss é um arquivo TAR contendo três arquivos: cups5.hlp, cupsdrvr5.dll e cupsui5.dll. Estes são os arquivos atuais de driver.

Aviso: O script cups-samba.install pode não funcionar para todos *nixes (ex FreeBSD) porque quase tudo que não é parte do sistema base é instalada em algum lugar sob o prefixo /usr/local/. Este não parece ser o caso da maioria das coisas que você instala sob o GNU/Linux. Entretanto, se sua instalação do CUPS está em algum outro lugar que /usr/share/cups/ veja o exemplo abaixo.

Suponha que sua instalação do CUPS se encontra sob /usr/local/share/cups/, e você quer instalar os drivers lá. Faça o seguinte:

Listagem de código 4.14: Instalando os drivers manualmente

# cd /path/you/extracted/the/CUPS-driver/tarball/into
# tar -xf cups-samba.ss
(Isto extrai os arquivos para usr/share/cups/drivers sob o 
DIRETÓRIO ATUAL)
# cd usr/share/cups/drivers
(no leading / !)
# cp cups* /usr/local/share/cups/drivers

Agora iremos usar o script cupsaddsmb disponibilizado pela distribuição CUPS. A man page é uma leitura interessante.

Listagem de código 4.15: Executando cupsaddsmb

# cupsaddsmb -H PrintServer -U root -h PrintServer -v HPDeskJet930C
(Ao invés de HPDeskJet930C você pode também especificar "-a", isto 
irá exportar todas as impressoras conhecidas".)
# cupsaddsmb -H PrintServer -U root -h PrintServer -a

Aviso: A execução deste comando causa frequentemente a maioria dos problemas. Leia postagens completas nesta thread.

Aqui estão alguns erros comuns que podem acontecer:

  • O nome da máquina informado com o parâmetro -h e -H (PrintServer) frequentemente não resolve corretamente e não identifica o servidor de impressão para interação com o CUPS/Samba. Se um erro do tipo: Warning: No PPD file for printer "CUPS_PRINTER_NAME" - skipping! ocorrer, a primeira coisa que deve fazer é substituir PrintServer por localhost e tentar novamente.
  • O comando falha com um NT_STATUS_UNSUCCESSFUL. Está mensagem de erro é muito comum, mas pode ser provocada por diversos problemas. Infelizmente isto não é muito útil. Uma das coisas que pode ser tentada é definir temporariamente security = user no seu arquivo smb.conf. Depois, caso a instalação terminar com sucesso, você deve definir isto de volta para share, ou qualquer outro que tenha definido antes.

Isto deve instalar o driver corretamente na estrutura de diretório sob /etc/samba/printer. Que deve ser /etc/samba/printer/W32X86/2/. Os arquivos contidos devem ser os 3 arquivos de driver e o arquivo PPD, renomeado para NomeSuaImpressora.ppd (o nome que você definiu para a impressora na instalação (veja acima).

Não havendo mais erros ou outras complicações, seus drivers estão agora instalados.

Finalizando sua configuração

Finalmente, configuramos nossos diretórios.

Listagem de código 4.16: Alterações finais necessárias

# mkdir /home/samba
# mkdir /home/samba/public
# chmod 755 /home/samba
# chmod 755 /home/samba/public

Testando nossa configuração do Samba

Iremos testar nossos arquivos de configuração para ter certeza que tudo está formatado apropriadamente e que todas as nossas opções estão com a sintaxe correta. Para fazer isto executamos o comando testparm.

Listagem de código 4.17: Executando o testparm

(Por padrão, testparm verifica o arquivo /etc/samba/smb.conf)
# /usr/bin/testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[printers]"
Global parameter guest account found in service section!
Processing section "[public]"
Global parameter guest account found in service section!
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
 ...
 ...

Iniciando o serviço do Samba

Agora configure o Samba para iniciar durante o boot; então continue iniciando-o.

Listagem de código 4.18: Iniciando o serviço do Samba

# rc-update add samba default
# /etc/init.d/samba start

Verificando nossos serviços

Seria provavelmente prudente verificar também nossos logs nesse momento. Queremos também fazer testes em nossos compartilhamentos Samba usando o comando smbclient.

Listagem de código 4.19: Verificando os compartilhamentos com smbclient

# smbclient -L localhost
Password:
(Você deve ver uma GRANDE lista de serviços aqui.)

5.  Configuração dos Clientes

Configuração de impressoras para clientes *nix

Independente da variação ou distribuição, a única coisa necessária é o CUPS. Faça o equivalente em qualquer outro cliente UNIX/Linux/BSD.

Listagem de código 5.1: Configurando um sistema Gentoo

# emerge cups
# nano -w /etc/cups/client.conf
ServerName PrintServer      # o nome do seu servidor de impressão

Deve ser isto. Nada mais será necessário.

Caso use somente uma impressora, ela será sua impressora padrão. Se seu servidor de impressão gerencia diversas impressoras, seu administrador terá que definir uma impressora padrão no servidor. Se deseja definir uma impressora padrão diferente para você mesmo, use o comando lpoptions.

Listagem de código 5.2: Definindo sua impressora padrão

(Listando as impressoras disponíveis)
# lpstat -a
(Exemplo de saída, a sua será diferente)
HPDeskJet930C accepting requests since Jan 01 00:00
laser accepting requests since Jan 01 00:00
(Definindo HPDeskJet930C como nossa impressora padrão)
# lpoptions -d HPDeskJet930C

Listagem de código 5.3: Imprimindo de um *nix

(Especificando a impressora a ser utilizada)
# lp -d HPDeskJet930C anything.txt
(Usando sua impressora padrão)
# lp foobar.whatever.ps

Simplesmente acesse pelo seu navegador o endereço http://printserver:631 de um cliente se deseja gerenciar suas impressoras e seus trabalhos por uma agradável interface web. Substitua printserver pelo nome da máquina que atua como seu servidor de impressão, não pelo nome que definiu para o servidor de impressão cups caso usasse nomes diferentes.

Montando um compartilhamento Windows ou Samba no GNU/Linux

Agora é o momento de configurarmos nosso kernel para suportar smbfs. Presumo que nós já tenhamos compilado totalmente pelo menos um kernel, precisaremos ter certeza que temos todas as opções corretas selecionadas no nosso kernel. Por causa da simplicidade, faça como um módulo para facilitar o uso. Está é a opnião do autor, os módulos do kernel são coisas boas e devem ser usados quando possível.

Listagem de código 5.4: Opções relevantes do kernel

CONFIG_SMB_FS=m
CONFIG_SMB_UNIX=y

Então faça os módulos/instale-os; carregue-os com:

Listagem de código 5.5: Lendo o módulo do kernel

# modprobe smbfs

Uma vez que os módulos estejam carregados, a montagem de compartilhamentos Windows ou Samba é possível. Use o comando mount para realizar isto, como detalhado abaixo:

Listagem de código 5.6: Montando um compartilhamento Windows/Samba

(A sintaxe para montar um compartilhamento Windows/Samba é:
  mount -t smbfs [-o username=xxx,password=xxx] //server/share /mnt/point
Se não estamos usando senhas ou uma senha não é necessária)

# mount -t smbfs //PrintServer/public /mnt/public

(Se uma senha é necessária)
# mount -t smbfs -o username=USERNAME,password=PASSWORD //PrintServer/public /mnt/public

Depois de montar o compartilhamento, você pode acessá-lo como se fosse um drive local

Configuração de impressoras para clientes Windows NT/2000/XP

Aqui é justamente um bit de apontar-e-clicar. Navegue até \\PrintServer e clique com o botão direito na impressora (HPDeskJet930C) e selecione conectar. Os drivers serão copiados para o cliente Windows e agora todas as aplicações (como o Word ou Acrobat) oferecerão HPDeskJet930C como uma impressora disponível para impressão. :-)

6.  Notas Finais

A Fond Farewell

Bem, deve ser isto. Agora você deve ter um bem sucedido ambiente de impressão que é amigável tanto para Windows como *nix, bem como compartilhamentos funcionando livres de vírus!

7.  Links e Recursos

Links

Estes são alguns links que podem ajudá-lo na instalação, configuração e solução de problemas da sua instalação:

Solução de problemas

Veja esta página de Kurt Pfeifle's "Printing Support in Samba 3.0" manual. Tem várias dicas úteis lá! Tenha certeza que procurou neste link primeiro, antes de postar questões e problemas! A solução para o que procura estará lá.



Imprimir

Atualizado 26 de março de 2005

A versão original desta tradução não é mais mantida

Resumo: Instalar e configurar um Servidor Samba sob Gentoo que compartilhe arquivos, imprima sem a necessidade de instalação de drivers e forneça detecção automática de vírus.

Andreas "daff" Ntaflos
Autor

Joshua Preston
Autor

Luiz Silva
Tradutor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.