Aprenda Linux, 302 (Ambientes Mistos): Funções do Samba

Conceitos, arquitetura e design

O Samba não é um único programa; ao invés disso, ele é uma série de servidores e utilitários inter-relacionados, cada um com seu fim específico. Entender as diferenças entre esses servidores e utilitários ajudará você a gerenciar seu sistema Samba. Além disso, o Samba implementa vários modelos de segurança diferentes, que você deve entender para integrar o Samba adequadamente a uma rede existente ou configurar uma nova rede com servidores Samba em seu núcleo.

Roderick W. Smith, Consultant and author

Roderick Smith author photoRoderick W. Smith é consultor e autor de dezenas de livros sobre UNIX e Linux, incluindo The Definitive Guide to Samba 3, Linux in a Windows World e Linux Professional Institute Certification Study Guide. Ele é autor do software de particionamento GPT fdisk. Atualmente, Roderick reside em Woonsocket, Rhode Island.



19/Abr/2011

Sobre esta série

Esta série de artigos ajuda você a saber mais sobre as tarefas de administração de sistemas Linux. Também é possível usar o material desses artigos para se preparar para os exames de certificação do Linux Professional Institute nível 3 (LPIC-3).

Consulte o developerWorks roadmap for LPIC-3 para ver uma descrição de cada artigo da série e um link para cada um desses artigos. O roteiro está em andamento e reflete os objetivos atuais (novembro de 2010) em relação aos exames LPIC-3. À medida que cada artigo é concluído, eles são adicionados ao roteiro.

Visão geral

Neste artigo, saiba mais sobre estes conceitos:

  • Modos de segurança do Samba
  • Funções dos principais daemons do Samba
  • Gerenciamento de daemons do Samba

Este artigo ajuda você a se preparar para o Objetivo 310.2 no Tópico 310 do exame de especialidade de Ambiente Misto da LPI (302). O objetivo tem peso 1.

Pré-requisitos

Para aproveitar ao máximo os artigos desta série, é necessário ter um conhecimento avançado de Linux e um sistema Linux funcional, no qual seja possível praticar os comandos mencionados neste artigo. Especificamente, este artigo pressupõe que você tenha um conhecimento de trabalho das funções de linha de comando do Linux e, pelo menos, um entendimento geral do propósito do Samba, conforme o explicado em "Learn Linux, 302 (Mixed environments): Concepts". Para executar as ações descritas neste artigo, é necessário ter o software Samba instalado. Algumas ações requerem uma rede Server Message Block (SMB)/Common Internet File System (CIFS) funcional à disposição.


Identificando daemons do Samba

Sobre o exame elegível LPI-302

O Linux Professional Institute Certification (LPIC) é como muitas outras certificações, pois também oferece certificações em níveis diferentes, e cada nível requer mais conhecimento e experiência que o anterior. O exame LPI-302 é um exame elegível especial no terceiro nível da hierarquia do LPIC, e requer um nível avançado de conhecimento de administração de sistema Linux.

Para obter a certificação LPIC nível 3 (LPIC-3), é necessário passar nos dois primeiros exames do primeiro nível (101 e 102), nos dois exames do segundo nível (201 e 202) e no exame principal do LPIC-3 (301). Depois de alcançar esse nível, é possível fazer os exames elegíveis especializados, como o LPI-302.

Os servidores Linux são frequentemente implementados como daemons, uma palavra derivada da mitologia grega, na qual os daemons eram seres sobrenaturais prestativos. Um daemon do Linux é executado em segundo plano para realizar alguma tarefa útil. O conjunto de servidor Samba consiste de vários daemons, incluindo smbd, nmbdewinbindd. O programa swat é outro servidor Samba, mas ele é tipicamente executado em um super servidor e, portanto, não é tecnicamente um daemon.

Entendendo o smbd

O programa smbd fornece a maior parte das principais funcionalidades do Samba. Suas funções incluem:

  • Fornecer compartilhamento de arquivo e impressora. Este recurso é possivelmente a mais importante função do Samba, e o smbd o realiza.
  • Autenticar usuários.O smbd autentica usuários com base em um banco de dados local ou passa as solicitações de autenticação para outro computador. Se seu servidor Samba estiver configurado como controlador de domínio, o smbd também responde a solicitações de autenticação de outros computadores. (Configurações de grupo de trabalho e domínio serão descritas em breve, em Configurando seu modo de segurança).
  • Fornecer serviços de horário. O Samba pode informar a outros computadores qual é a hora atual; o smbd é responsável por esse detalhe.

Desenvolva sua própria alimentação

É possível desenvolver uma alimentação RSS, Atom ou HTML customizado para receber uma notificação sobre a inclusão de novos artigos ou a atualização do conteúdo. Acesse as Alimentações RSS do developerWorks. Selecione Linux como zona e Articles como tipo, e digite Linux Professional Institute como palavra-chave. Em seguida, escolha o tipo preferencial de alimentação.

Por padrão, o daemon smbd vincula-se às portas TCP 139 e 445. O protocolo SMB usa a porta 139 através de NetBIOS sobre TCP, que é a maneira como muitos clientes mais antigos usam SMB/CIFS. A porta 445 oferece serviços de SMB sobre TCP simples, que é a maneira como muitos novos clientes acessam o servidor Samba.

Devido à natureza crítica dessas funções (especificamente, fornecer compartilhamento e autenticação de arquivo e impressora), o smbd pode ser considerado o núcleo do Samba. Na verdade, é possível fazer a conexão com um computador que executa apenas o smbd usando um programa como o smbclient do próprio Samba para realizar transferências de arquivos. Porém, alguns clientes dependem de serviços fornecidos por outros daemons do Samba.

Entendendo o nmbd

O segundo entre os principais daemons do Samba é o nmbd. A principal função deste servidor é manipular tarefas relacionadas a nomes. Podemos concebê-lo como uma versão do Samba para o Domain Name System (DNS), apesar de ser mais simples de configurar e menos sofisticado que o DNS. Entre as tarefas específicas que o nmbd executa estão:

  • Responder a transmissões de nomes. Em um modo comum de operação, os clientes transmitem consultas de nome para um segmento de rede inteiro. O servidor nmbd ouve essas transmissões e, quando o Samba está configurado para usar o nome consultado, responde. Também responde quando está configurado para funcionar como um proxy para outro computador ou rede.
  • Registrar um nome de NetBIOS. Para que a resolução de nome de NetBIOS funcione, os computadores devem registrar seus nomes, ou com um servidor de nome NetBIOS centralizado (NBNS; ou servidor Windows Internet Name Service [WINS]) ou através da transmissão do nome e da negociação dos direitos do nome com a rede como um todo. nmbd é responsável por fazer isso e também pela negociação com outros computadores que registram seus nomes.
  • Funcionar como um servidor NBNS. O Samba pode ser configurado como um sistema NBNS; em tal caso, o nmbd lida com essas funções.
  • Funcionar como navegador mestre. Parte da experiência do usuário de uma rede SMB/CIFS é a navegação—a capacidade de navegar pelos servidores em uma rede da mesma maneira que buscaria os diretórios em seu disco rígido. Esse recurso depende da presença de um navegador mestre, que coleta e dissemina listas de navegação. Quando o Samba age como navegador mestre, é o nmbd que realiza todo o trabalho.

Como esta lista demonstra, o nmbd trabalha muito. Apesar de não estarem relacionadas com a entrega de arquivos ou impressoras, muitas dessas tarefas são partes essenciais de qualquer servidor SMB/CIFS; portanto, o nmbd deve ser considerado uma parte crítica do Samba. Tipicamente, ele é executado junto com o smbd pelos scripts de inicialização de uma distribuição.

A maior parte das funções do nmbd exige que ele se vincule à porta TCP 137, mas as funções de navegador mestre envolvem a porta 138 de User Datagram Protocol.

Entendendo o winbindd

Um terceiro daemon do Samba é o daemon Winbind, winbindd. Ao contrário do smbd e do nmbd, winbindd não fornece serviços a computadores remotos; ao invés disso, ele serve de interface entre um controlador de domínio do Windows ® (ou do Samba) e as ferramentas de Pluggable Authentication Modules do próprio computador local, permitindo que um controlador de domínio hospede informações de contas Linux.

Em muitas distribuições, o winbindd é instalado em um pacote separado do resto do Samba—tipicamente em um pacote chamado winbind ou winbindd. Também é geralmente iniciado separadamente. Em princípio, é possível executar owinbindd em um computador que não é executado em um servidor Samba, ou que nem mesmo funciona como cliente SMB/CIFS, exceto na medida em que o winbindd é um cliente SMB/CIFS. Na prática, porém, é provável que você execute um servidor Samba ou use um computador Linux como cliente SMB/CIFS se estiver executando o winbindd.


Controlando o Samba

Controlar o Samba envolve pelo menos duas tarefas: ajustar suas opções de configurações usando seu arquivo de configuração e mudando suas opções temporariamente, conforme necessário. A primeira tarefa é realizada através do arquivo de configuração do Samba, ao passo que a segunda pode ser feita através da ferramenta de configuração smbcontrol .

Ajustando as opções do arquivo de configuração

O principal arquivo de configuração do Samba é chamado de smb.conf e reside tipicamente em /etc/samba, apesar de poder ser encontrado em outros locais. (Se o Samba for desenvolvido a partir da origem, /usr/local/samba/lib é um local comum).

O arquivo smb.conf é composto de seções, cada uma das quais começa com um nome entre colchetes ([]), como [global] ou [documents]. A maioria das seções definem compartilhamentos de arquivo ou impressora; porém, a seção [global] é especial: ela guarda opções que afetam o servidor como um todo ou que definem valores padrão usados em definições de compartilhamento subsequentes. (A seção[global] tipicamente aparece primeiro no arquivo).

As linhas em smb.conf podem ser linhas de comentário que começam com um sinal numérico (#) ou um ponto e vírgula (;); elas podem ser nomes de seção; ou podem ser linhas que definem parâmetros do Samba. Esse último tipo de linha toma a seguinte forma:

parâmetro = Valor

O parâmetro é uma palavra-chave, como security ou create mask. Nomes de parâmetros não fazem distinção de maiúsculas e minúsculas. Alguns parâmetros comuns têm sinônimos, e outros poucos possuem antônimos. Por exemplo, writable e writeable são sinônimos, e read only é antônimo dos dois— ou seja, read only = Yes é equivalente a writable = No.

O Valor que você especifica com um parâmetro pode ser uma cadeia de caractere livre, um número (incluindo valores numéricos especializados, como endereços IP), um valor booleano, uma variável ou uma lista. Valores booleanos podem receber um dos dois valores de verdade: Sim, Verdadeiroe1 são sinônimos, assim como Não, Falsoe0.

As variáveis começam com um símbolo de porcentagem %) e aparecem no lugar de informações que não podem ser conhecidas quando o arquivo de configuração foi escrito. Por exemplo, %D se refere ao grupo de trabalho ou nome de domínio do servidor; %h se refere ao nome DNS do servidor; %H se refere ao diretório inicial do usuário; %L se refere ao nome de NetBIOS do servidor; e %u se refere ao nome do usuário.

Alguns parâmetros recebem listas de vários valores, como listas de nomes do usuário. Em tais casos, os elementos da lista são separados por vírgulas, como em george, mary para se referir tanto a george quanto a mary. De maneira geral, o arquivo smb.conf é cego a espaços em branco. Se for necessário incluir espaços em branco em um valor, coloque-os entre aspas.

O arquivo smb.conf contém opções para smbd, nmbd, winbindd e outros servidores e programas do Samba. As opções para os diferentes programas não são separadas ou claramente diferenciadas, apesar de às vezes o nome tornar óbvio a qual daemon o parâmetro se aplica.

Controlando o Samba com smbcontrol

É possível usar o programa smbcontrol para controlar o Samba enquanto ele é executado. Por exemplo, é possível pedir ao Samba que feche um compartilhamento específico, force uma eleição de navegador mestre, recarregue um arquivo de configuração e assim por diante. A sintaxe básica para esse comando é:

smbcontrol [-i] [-s configfile]
smbcontrol [destino] [tipo-de-mensagem] [parâmetro]

Quando usado com a opção -i , o smbcontrol entra em modo interativo, no qual é possível passar uma série de comandos em sequência, fazendo com que se evite digitar smbcontrol na frente de cada comando. O destino é o nome do servidor (smbd, nmbdouwinbindd), all para enviar a mensagem a todos os daemons ou um número de ID de processo. O tipo-de-mensagem é um comando, como resumido na Tabela 1. O parâmetro é um parâmetro opcional que alguns comandos podem exigir.

Tabela 1. Limites de tamanho e volume do sistema de arquivos
Comando (tipo-de-mensagem)Significado
close-shareFecha o compartilhamento que o parâmetro especifica.
depureDefine o nível de depuração para o valor especificado pelo parâmetro.
force-electionForça uma nova eleição de navegador mestre.
debuglevelExibe o nível de depuração atual de um daemon.
printnotifyEnvia uma mensagem aos clientes conectados ao compartilhamento de impressora, forçando uma mudança no status de fila dos clientes.
samsyncSincroniza o bando de dados do usuário com um controlador de domínio.(A documentação oficial indica que esta função não está funcionando atualmente; teste-a antes de confiar nela).
shutdownFecha um daemon especificado.
pool-usageExibe informações de uso de memória para o daemon especificado.
drvupgradeNotifica clientes de que um novo driver de impressora está disponível. O comando recebe um nome de compartilhamento de impressora como parâmetro.
reload-configForça o servidor a carregar o arquivo smb.conf novamente.

Configurando seu modo de segurança

O Samba oferece diversas opções relacionadas à maneira como os usuários são autenticados. A mais importante delas é a opção security , que recebe cinco valores possíveis:

  • Share. Este modo de segurança tenta emular o método de autenticação que os sistemas operacionais Microsoft® Windows 9x/Windows Me usam, no qual os nomes dos usuários eram ignorados e as senhas eram associadas aos compartilhamentos. Para fazer isso, o Samba tenta a senha fornecida pelo cliente com vários nomes do usuário.
  • User. Este modo de segurança, que é o padrão, usa um nome do usuário e senha para autenticações, parecido com a maneira que o Linux normalmente funciona. Porém, na maior parte dos sistemas modernos, a senha é armazenada em um banco de dados de senhas criptografadas apenas do Samba.
  • Server. Se desejar que o Samba se submeta a outro servidor para autenticação, use este método de autenticação. Para um cliente, este método é igual à autenticação no nível do usuário, mas o Samba entre em contato com o servidor especificado com o parâmetro password server para fazer a autenticação real.
  • Domain. É possível se juntar totalmente a um domínio do Windows usando este método, que para o cliente é igual à autenticação no nível do usuário. Ao contrário da autenticação no nível do servidor, a autenticação de domínio envolve uma troca de senhas mais segura no nível do domínio. Juntar-se totalmente ao domínio requer a execução de comandos adicionais no sistema Samba e possivelmente também no controlador de domínio.
  • ADS. Este método de autenticação funciona de forma muito parecida com a autenticação de domínio; porém, ele requer um controlador de domínio Active Directory® Domain Services.

Como regra geral, a autenticação no nível do usuário é a melhor escolha se o seu servidor Samba for membro de um grupo de trabalho do Windows, que é a forma básica de uma rede SMB/CIFS. Um grupo de trabalho difere de um domínio principalmente no sentido de que um domínio fornece um controlador de domínio, que é um servidor que fornece serviços de autenticação ao domínio. Para usar um controlador de domínio, é necessário usar segurança no nível do servidor, domínio ou ADS. security. A segurança no nível do servidor é a mais fácil de configurar, mas é a menos segura, ao passo que a segurança no nível ADS é a mais difícil de configurar, mas é a mais segura.

Para se juntar totalmente a um domínio para obter segurança no nível do domínio ou no nível ADS, é necessário configurar diversas opções na seção [global] do arquivo smb.conf:

password server = DOMCONT
domain logons = No
encrypt passwords = Yes

O sistema DOMCONT é um controlador de domínio. Também é necessário digitar o seguinte comando no servidor Samba que deve se juntar ao domínio:

# net join member -U adminuser

Também pode ser necessário configurar o controlador do domínio para aceitar o servidor Samba no domínio. (O Objetivo 312.4 aborda este tópico para servidores Samba).

A segurança no nível do compartilhamento está predominantemente ultrapassada; ela existe principalmente para oferecer compatibilidade com clientes muito antigos que não entendam nomes do usuário. Também pode ser útil para alguns tipos de compartilhamento que você possa desejar tornar disponíveis com segurança mínima, como compartilhamentos de impressora. Como o Linux requer que uma conta seja usada para todos os acessos, o Samba tenta a senha fornecida com uma série de contas até que uma funcione ou que nenhuma delas funcione. Essas contas incluem:

  • A conta de convidado (definida através do parâmetro guest account ) se guest only = Yes
  • O nome do usuário fornecido pelo cliente (nem todos os clientes fornecem um, mas alguns fornecem)
  • O nome do usuário usado no último acesso a partir do computador cliente
  • O nome do compartilhamento sendo acessado
  • O nome de NetBIOS do cliente
  • Quaisquer nomes do usuário especificados através do parâmetro username .

Como a maioria dos clientes em uso hoje entendem nomes do usuário, é raro haver necessidade de oferecer suporte à segurança no nível do compartilhamento. Usá-la apenas cria confusão e aumenta o risco de segurança—com as senhas sendo verificadas em tantas contas, uma única senha que caia nas mãos erradas pode se tornar um risco significativo para seu servidor.


Progredindo

O objetivo LPIC-3 310.3—e o próximo artigo nesta série—descreve o formato de arquivo do Samba Trivial Database (TDB), que o Samba usa para armazenar informações de conta.

Recursos

Aprender

Obter produtos e tecnologias

  • O Samba Web site possui downloads e informações do Samba.
  • Avalie os produtos IBM da maneira que for melhor para você: faça download da versão de testes de um produto, avalie um produto on-line, use-o em um ambiente de nuvem ou passe algumas horas na SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de modo eficiente.

Discutir

  • Participe da comunidade do My developerWorks . Entre em contato com outros usuários do developerWorks, enquanto explora os blogs, fóruns, grupos e wikis orientados ao desenvolvedor.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux
ArticleID=648445
ArticleTitle=Aprenda Linux, 302 (Ambientes Mistos): Funções do Samba
publish-date=04192011