Capítulo 48. Samba

Índice

48.1. Configurando o servidor
48.2. Samba como servidor de login
48.3. Configurando um servidor Samba com o YaST
48.4. Configurando clientes
48.5. Otimização

Resumo

Com o Samba, uma máquina Unix pode ser configurada como um servidor de arquivos e de impressão para máquinas em DOS, Windows e OS/2. O Samba se tornou um produto completo e bastante complexo. Além de descrever a funcionalidade básica, este capítulo apresenta os princípios da configuração do Samba e descreve os módulos YaST que podem ser usados para configurar o Samba na sua rede.

Informações detalhadas sobre o Samba estão disponíveis na documentação digital. Digite apropos samba na linha de comando para exibir algumas páginas do manual ou simplesmente navegue pelo diretório /usr/share/doc/packages/samba se o Samba estiver instalado para obter mais documentação e exemplos online. Uma configuração de exemplo comentada (smb.conf.SuSE) pode ser encontrada no subdiretório exemplos.

Alguns novos recursos importantes da versão 3 que vem com o pacote samba incluem:

[Tip]Migração para o Samba3

Alguns pontos especiais devem ser levados em consideração ao se migrar do Samba 2.x para o Samba 3. Uma discussão desse tópico aparece na Coleção HOWTO do Samba, onde um capítulo inteiro é dedicado ao assunto. Depois de instalar o pacote samba-doc, encontre o HOWTO em /usr/share/doc/packages/samba/Samba-HOWTO-Collection.pdf.

O Samba usa o protocolo SMB (bloco de mensagens do servidor), que é baseado nos serviços NetBIOS. Devido à pressão da IBM, a Microsoft lançou o protocolo para que outros fabricantes de software pudessem estabelecer conexões com uma rede de domínio Microsoft. Com o Samba, o protocolo SMB opera acima do protocolo TCP/IP, de modo que este último precisa estar instalado em todos os clientes.

O NetBIOS é uma interface de software (API) projetada para a comunicação entre máquinas. Nesse caso, é prestado um serviço de nome. Ele permite que máquinas conectadas à rede reservem nomes para si. Após a reserva, essas máquinas podem ser tratadas pelo nome. Não há um processo central para a verificação de nomes. Qualquer máquina da rede pode reservar quantos nomes quiser, contanto que os nomes não estejam em uso ainda. A interface NetBIOS passa a poder ser implementada para diferentes arquiteturas de rede. Uma implementação que funciona com relativa proximidade com o hardware da rede é chamada de NetBEUI, mas ela muitas vezes é chamada de NetBIOS. Os protocolos de rede implementados com o NetBIOS são o IPX da Novell (NetBIOS via TCP/IP) e TCP/IP.

Os nomes de NetBIOS enviados por TCP/IP não possuem nada em comum com os nomes usados em /etc/hosts ou com os nomes definidos pelo DNS. O NetBIOS usa sua própria convenção de nomes independente. Contudo, é recomendável usar nomes que correspondam aos nomes de hosts DNS para facilitar a administração. Esse é o padrão usado pelo Samba.

Todos os sistemas operacionais comuns, como Mac OS X, Windows e OS/2, prestam suporte ao protocolo SMB. O protocolo TCP/IP precisa estar instalado em todos os computadores. O Samba fornece um cliente para as diferentes versões do UNIX. No caso do Linux, há um módulo de kernel para SMB que permite a integração de recursos SMB no nível de sistema Linux.

Os servidores SMB oferecem espaço em hardware a seus clientes por meio de compartilhamentos. Um compartilhamento inclui um diretório e seus subdiretórios no servidor. Ele é exportado por meio de um nome e pode ser acessado pelo nome. O nome do compartilhamento pode ser definido por qualquer nome; não precisa ser o nome do diretório de exportação. Uma impressora também recebe um nome. Os clientes podem acessar a impressora pelo nome.

48.1. Configurando o servidor

Se você pretende usar o Samba como um servidor, instale samba. Inicie os serviços necessários ao Samba com rcnmb start && rcsmb start e use rcsmb stop && rcnmb stop para interrompê-los.

O principal arquivo de configuração do Samba é o /etc/samba/smb.conf. Esse arquivo pode ser dividido em duas partes lógicas. A seção [global] contém as configurações central e global. As seções [share] contêm os compartilhamentos individuais de arquivo e impressora. Com essa abordagem, detalhes relativos aos compartilhamentos podem ser definidos de forma diferenciada ou global na seção [global], que aumenta a transparência estrutural do arquivo de configuração.

48.1.1. A seção global

Os seguintes parâmetros da seção [global] precisam de ajustes para atender aos requisitos de configuração da sua rede para que outras máquinas possam acessar seu servidor Samba via SMB em um ambiente Windows.

workgroup = TUX-NET

Essa linha designa o servidor Samba a um grupo de trabalho. Substitua o TUX-NET por um grupo de trabalho apropriado do seu ambiente de rede. Seu servidor Samba aparece sob o nome DNS, a menos que esse nome tenha sido designado a alguma outra máquina na rede. Se o nome DNS não estiver disponível, defina o nome do servidor usando netbiosname=MYNAME. Consulte mansmb.conf para obter mais detalhes sobre esse parâmetro.

os level = 2

Esse parâmetro determina se o seu servidor Samba tenta se tornar um LMB (local master browser) para seu grupo de trabalho. Escolha um valor bem reduzido para poupar a rede do Windows existente de perturbações causadas por um servidor Samba mal configurado. Mais informações sobre esse importante tópico podem ser encontradas nos arquivos BROWSING.txt e BROWSING-Config.txt, no subdiretório textdocs da documentação do pacote.

Se nenhum outro servidor SMB estiver presente na rede (como o servidor Windows NT ou 2000) e você desejar que o servidor Samba mantenha uma lista de todos os sistemas presentes no ambiente local, ajuste o os level em um valor mais alto (por exemplo, 65). Assim, o servidor Samba é selecionado como LMB para a rede local.

Ao mudar essa configuração, reflita bem sobre como isso pode afetar um ambiente de rede Windows existente. Primeiro, teste as mudanças em uma rede isolada ou em um horário não crítico do dia.

suporte WINS e servidor WINS

Para integrar o servidor Samba a uma rede Windows existente dotada de um servidor WINS ativo, habilite a opção wins server e defina seu valor para o endereço IP desse servidor WINS.

Se as suas máquinas do Windows estiverem conectadas a sub-redes separadas e ainda assim precisarem levar as restantes em consideração, será necessário configurar um servidor WINS. Para transformar um servidor Samba em um servidor WINS, defina a opção wins support = Yes. Verifique se somente um servidor Samba da rede possui essa configuração habilitada. As opções wins server e wins support nunca devem ficar habilitadas ao mesmo tempo no arquivo smb.conf.

48.1.2. Compartilhamentos

Os exemplos a seguir ilustram como uma unidade de CD-ROM e os diretórios do usuário (homes) são disponibilizados aos clientes SMB.

[cdrom]

Para evitar a disponibilização acidental da unidade de CD-ROM, essas linhas são desativadas com marcas de comentários (nesse caso, pontos-e-vírgulas). Remova os pontos-e-vírgulas da primeira coluna para compartilhar a unidade do CD-ROM com o Samba.

Exemplo 48.1. Compartilhamento de CD-ROM

;[cdrom]
;       comment = Linux CD-ROM
;       path = /media/cdrom
;       locking = No
[cdrom] e comment

A entrada [cdrom] é o nome do compartilhamento que pode ser visto por todos os clientes SMB na rede. Um comment adicional pode ser feito para enriquecer a descrição do compartilhamento.

path = /media/cdrom

path exporta o diretório /media/cdrom.

Por meio de uma configuração padrão bastante restritiva, esse tipo de compartilhamento somente é disponibilizado aos usuários presentes nesse sistema. Se esse compartilhamento precisar ser disponibilizado a todos, adicione uma linha guest ok = yes à configuração. Essa configuração concede permissões de leitura a todos na rede. Recomenda-se muita cautela no manejo desse parâmetro. Isso se aplica ainda mais intensamente ao uso desse parâmetro na seção [global].

[homes]

O compartilhamento [home] possui especial importância aqui. Se o usuário possuir uma conta e senha válidas para o servidor de arquivos Linux e seu próprio diretório pessoal, pode ficar conectado a ele.

Exemplo 48.2. Share homes

[homes] 
	comment = Home Directories 
	valid users = %S 
	browseable = No 
	read only = No 
	create mask = 0640 
	directory mask = 0750
[homes]

Contanto que não haja nenhum outro compartilhamento usando o nome de compartilhamento do usuário que estabelece a conexão ao servidor SMB, um compartilhamento é gerado dinamicamente usando as diretivas de compartilhamento [homes]. O nome resultante do compartilhamento é o nome do usuário.

valid users = %S

%S é substituído pelo nome concreto do compartilhamento logo que uma conexão tenha sido estabelecida com sucesso. Para um compartilhamento [homes], sempre será usado o nome do usuário. Conseqüentemente, os direitos de acesso ao compartilhamento de um usuário ficam restritos exclusivamente a ele.

browseable = No

Essa configuração torna o compartilhamento invisível no ambiente da rede.

read only = No

Por padrão, o Samba proíbe o acesso de gravação aos compartilhamentos exportados por meio do parâmetro read only = Yes. Para tornar um compartilhamento gravável, defina o valor read only = No, que corresponde a writeable = Yes.

create mask = 0640

Como os sistemas que não se baseiam no MS Windows NT não compreendem o conceito de permissões do UNIX, não são capazes de designar permissões ao criar um arquivo. O parâmetro create mask define as permissões de acesso designadas a arquivos recém-criados. Isso somente se aplica a compartilhamentos graváveis. Na verdade, essa configuração significa que o proprietário possui permissões de leitura e gravação e que os membros do grupo principal do proprietário possuem permissões de leitura. valid users = %S impede o acesso de leitura mesmo se o grupo possuir permissões de leitura. Para que o grupo tenha acesso de leitura ou gravação, desative a linha valid users = %S.

48.1.3. Níveis de segurança

O protocolo SMB é derivado do universo DOS e Windows e leva diretamente em consideração o problema da segurança. Cada acesso a compartilhamento pode ser protegido com uma senha. O SMB possui três formas de verificar as permissões:

Segurança no nível do compartilhamento (security = share):

Uma senha é rigorosamente designada a um compartilhamento. Todos que conheçam essa senha possuem acesso ao compartilhamento.

Segurança no nível do usuário (security = user):

Essa variação introduz o conceito do usuário ao SMB. Cada usuário precisa se registrar no servidor com sua própria senha. Após o registro, o servidor pode conceder acesso a compartilhamentos exportados específicos condicionados a nomes de usuários.

Segurança no nível do servidor (security = server):

Para seus clientes, o Samba age como se estivesse operando em modo de nível de usuário. Entretanto, ele encaminha todas as consultas de senha a outro servidor de modo de nível de usuário, que se encarrega da autenticação. Essa configuração pressupõe um parâmetro adicional (password server =).

A distinção entre segurança no nível de compartilhamento, usuário e servidor se aplica ao servidor inteiro. Não é possível oferecer compartilhamentos individuais de uma configuração de servidor com segurança no nível de compartilhamento e outros com segurança no nível de usuário. Entretanto, é possível executar um servidor Samba separado para cada endereço IP configurado em um sistema.

Para obter mais informações sobre esse assunto, consulte a Coleção HOWTO do Samba. No caso de vários servidores em um sistema, preste atenção nas opções interfaces e bind interfaces only.

[Tip]Dica

Para tarefas administrativas simples com o servidor Samba, há também o swat de programa. Ele oferece uma interface da Web simples com a qual configurar o servidor Samba de forma prática. Em um browser, abra http://localhost:901 e efetue login como usuário root. Contudo, o swat também precisa ser ativado nos arquivos /etc/xinetd.d/samba e /etc/services. Para fazer isso no arquivo /etc/xinetd.d/samba, edite a linha disable de tal modo que indique disable = no. Mais informações sobre o swat estão disponíveis na página do manual.