Aplica-se a SUSE Linux Enterprise Desktop 12

23 Samba

Com o Samba, uma máquina Unix pode ser configurada como um servidor de arquivos e de impressão para máquinas Mac OS X, Windows e OS/2. O Samba se tornou um produto completo e bastante complexo. Configure o Samba com o YaST ou editando o arquivo de configuração manualmente.

23.1 Terminologia

A seguir são apresentados alguns termos usados na documentação do Samba e no módulo YaST.

Protocolo SMB

O Samba usa o protocolo SMB (bloco de mensagens do servidor), que é baseado nos serviços NetBIOS. 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.

Protocolo CIFS

O protocolo CIFS (sistema de arquivos da Internet comuns) é outro protocolo que possui suporte no Samba. O CIFS é um protocolo de acesso padrão a sistemas de arquivos remotos para utilização pela rede, permitindo que grupos de usuários trabalhem juntos e compartilhem documentos pela rede.

NetBIOS

NetBIOS é uma interface de software (API) projetada para a comunicação entre máquinas que fornecem serviço de nomes. 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 pode 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 host DNS para facilitar a administração ou usar o DNS nativamente. Esse é o padrão usado pelo Samba.

Servidor Samba

O servidor Samba fornece serviços SMB/CIFS e serviços de nomeação NetBIOS por IP aos clientes. Para o Linux, existem três daemons para servidor Samba: smbd para serviços SMB/CIFS, nmbd para serviços de nomeação e winbind para autenticação.

Cliente Samba

O cliente Samba é um sistema que usa serviços Samba de um servidor Samba pelo protocolo SMB. 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 oferece 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. Não é necessário executar nenhum daemon para o cliente Samba.

Compartilhamentos

Os servidores SMB oferecem recursos aos clientes por meio de compartilhamentos. Compartilhamentos são impressoras e diretórios com 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 como 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.

DC

Um controlador de domínio (DC) é um servidor que gerencia contas em um domínio. Para a replicação de dados, os controladores de domínio adicionais estão disponíveis em um domínio.

23.2 Instalando um servidor Samba

Para instalar um servidor Samba, inicie o YaST e selecione Software › Gerenciamento de Software. Escolha Ver › Padrões e selecione Servidor de Arquivos. Confirme a instalação dos pacotes necessários para concluir o processo de instalação.

23.3 Configurando um servidor Samba

Para configurar um servidor Samba, consulte a documentação do SUSE Linux Enterprise Server.

23.4 Configurando clientes

Os clientes somente podem acessar o servidor Samba via TCP/IP. O NetBEUI e o NetBIOS via IPX não podem ser usados com o Samba.

23.4.1 Configurando um cliente Samba com o YaST

Configure um cliente Samba para acessar recursos (arquivos ou impressoras) no servidor Samba ou Windows. Digite o domínio NT ou Active Directory ou o grupo de trabalho na caixa de diálogo Serviços de Rede › Participação no Domínio do Windows. Se você ativar Também Usar Informação SMB para Autenticação Linux, a autenticação do usuário será executada no servidor Samba, NT ou Kerberos.

Clique em Configurações de Especialista para ver as opções de configuração avançadas. Por exemplo, use a tabela Montar Diretórios do Servidor para habilitar a montagem de diretório pessoal do servidor automaticamente com autenticação. Assim os usuários poderão acessar seus diretórios pessoais quando estiverem hospedados no CIFS. Para ver os detalhes, consulte a página de manual de pam_mount.

Após concluir todas as configurações, confirme a caixa de diálogo para terminar a configuração.

23.5 Samba como servidor de login

Em redes onde se encontram predominantemente clientes Windows, muitas vezes é preferível que os usuários somente possam se registrar com uma conta e senha válidos. Em uma rede baseada no Windows, essa tarefa é gerenciada por um PDC (primary domain controller — controlador de domínio primário). Você pode usar um servidor Windows NT configurado como PDC, mas essa tarefa também pode ser executada com um servidor Samba. As entradas a serem feitas na seção [global] de smb.conf aparecem em Exemplo 23.1, “Seção global em smb.conf”.

Exemplo 23.1 Seção global em smb.conf
[global]
    workgroup = WORKGROUP
    domain logons = Yes
    domain master = Yes

É necessário preparar contas e senhas de usuários em formato de criptografia compatível com o Windows. Para isso, use o comando smbpasswd -a name. Crie a conta de domínio dos computadores, exigida pelo conceito de domínio do Windows , com os seguintes comandos:

useradd hostname\$
smbpasswd -a -m hostname

Com o comando useradd, um símbolo de cifrão é adicionado. O comando smbpasswd insere esse símbolo automaticamente quando o parâmetro -m é usado. O exemplo de configuração comentado (/usr/share/doc/packages/samba/examples/smb.conf.SUSE) contém configurações que automatizam essa tarefa.

add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \
-s /bin/false %m\$
     

Para certificar-se de que o Samba possa executar esse script corretamente, escolha um usuário do Samba com as permissões de administrador necessárias e adicione-o ao grupo ntadmin. Em seguida, será possível atribuir a todos os usuários pertencentes a esse grupo Linux o status de Domain Admin com o comando:

net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin

23.6 Tópicos avançados

Esta seção apresenta técnicas mais avançadas para gerenciar a parte tanto do cliente quanto do servidor da suíte do Samba.

23.6.1 Compactação de arquivos transparente no Btrfs

O Samba permite aos clientes manipular remotamente os flags de compactação de arquivos e diretórios para compartilhamentos localizados no sistema de arquivos Btrfs. O Windows Explorer oferece um recurso para marcar arquivos/diretórios para compactação transparente em Arquivo › Propriedades › Avançado caixa de diálogo:

Caixa de diálogo Atributos Avançados do Windows Explorer
Figura 23.1 Caixa de diálogo Atributos Avançados do Windows Explorer

Os arquivos marcados para compactação são compactados de forma transparente e descompactados pelo sistema de arquivos base quando acessados ou modificados. Isso normalmente resulta em economia na capacidade de armazenamento em detrimento do overhead extra da CPU ao acessar o arquivo. Os arquivos e diretórios novos herdam o flag de compactação do diretório pai, exceto quando criados com a opção FILE_NO_COMPRESSION.

O Windows Explorer apresenta os arquivos e diretórios compactados de forma visualmente diferente daqueles não compactados:

Listagem de diretórios do Windows Explorer com arquivos compactados
Figura 23.2 Listagem de diretórios do Windows Explorer com arquivos compactados

É possível habilitar a compactação de compartilhamentos Samba manualmente adicionando

vfs objects = btrfs

à configuração do compartilhamento em /etc/samba/smb.conf ou usando o YaST: Serviços de Rede › Servidor Samba › Adicionar e marcando Utilizar Recursos do Btrfs.

23.6.2 Instantâneos

Os instantâneos, também chamados de Cópias de Sombra, são cópias do estado do subvolume de um sistema de arquivos em determinado período. O Snapper é a ferramenta que gerencia os instantâneos no Linux. Os instantâneos são suportados no sistema de arquivos Btrfs ou em volumes LVM com aprovisionamento dinâmico. A suíte do Samba suporta o gerenciamento de instantâneos remotos por meio do protocolo FSRVP tanto no servidor quanto no cliente.

23.6.2.1 Versões anteriores

É possível expor os instantâneos do servidor Samba a clientes do Windows remotos como versões anteriores de arquivos ou diretórios.

Para habilitar instantâneos no servidor Samba, as seguintes condições devem ser atendidas:

  • O compartilhamento de rede SMB reside em um subvolume Btrfs.

  • O caminho do compartilhamento de rede SMB possui um arquivo de configuração do snapper relacionado. É possível criar o arquivo do snapper com

    snapper -c <cfg_name> create-config /path/to/share

    Para obter mais informações sobre o snapper, consulte o Capítulo 4, Recuperação de sistema e gerenciamento de instantâneos com o Snapper.

  • A árvore do diretório do instantâneo deve permitir o acesso de usuários relevantes. Para obter mais informações, consulte a seção PERMISSIONS (Permissões) da página de manual de vfs_snapper (man 8 vfs_snapper).

Para suportar instantâneos remotos, é necessário modificar o arquivo /etc/samba/smb.conf. Você pode fazer isso com o YaST, em Serviços de Rede › Servidor Samba, ou manualmente, incrementando a seção do compartilhamento relevante com

vfs objects = snapper

Observe que é necessário reiniciar o serviço Samba para que as mudanças manuais em smb.conf entrem em vigor:

systemctl restart nmb.service smb.service
Adicionando um novo compartilhamento Samba com criação de instantâneo habilitada
Figura 23.3 Adicionando um novo compartilhamento Samba com criação de instantâneo habilitada

Depois de configurados, os instantâneos criados pelo snapper para o caminho do compartilhamento Samba poderão ser acessados pelo Windows Explorer da guia Versões Anteriores de um arquivo ou diretório.

A guia Versões Anteriores no Windows Explorer
Figura 23.4 A guia Versões Anteriores no Windows Explorer

23.6.2.2 Instantâneos de compartilhamentos remotos

Por padrão, só é possível criar e apagar instantâneos do servidor Samba localmente, pelo utilitário de linha de comando snapper ou usando o recurso de linha do tempo do snapper.

É possível configurar o Samba para processar solicitações de criação e exclusão de instantâneos do compartilhamento de hosts remotos usando o FSRVP (File Server Remote VSS Protocol – Protocolo VSS Remoto do Servidor de Arquivos).

Além da configuração e dos pré-requisitos documentados em Seção 23.6.2.1, “Versões anteriores”, a seguinte configuração global é necessária no /etc/samba/smb.conf:

[global]
rpc_daemon:fssd = fork
registry shares = yes
include = registry

Os clientes FSRVP, incluindo o rpcclient do Samba e o DiskShadow.exe do Windows Server 2012, podem instruir o Samba a criar ou apagar um instantâneo de determinado compartilhamento e o expor como um novo compartilhamento.

23.6.2.3 Gerenciando instantâneos do Linux remotamente com rpcclient

O pacote samba-client inclui o cliente FSRVP que pode solicitar remotamente a um servidor Windows/Samba para criar e expor um instantâneo de determinado compartilhamento. Em seguida, é possível usar as ferramentas existentes no SUSE Linux Enterprise Server para montar o compartilhamento exposto e fazer backup de seus arquivos. As solicitações ao servidor são enviadas usando o binário rpcclient.

Exemplo 23.2 Usando o rpcclient para solicitar instantâneos de compartilhamento do Windows Server 2012

Conecte-se ao servidor win-server.example.com como administrador em um domínio EXAMPLE:

# rpcclient -U 'EXAMPLE\Administrator' ncacn_np:win-server.example.com[ndr64,sign]
Enter EXAMPLE/Administrator's password:

Verifique se o compartilhamento SMB está visível para rpcclient:

rpcclient $> netshareenum
netname: windows_server_2012_share
remark: 
path:   C:\Shares\windows_server_2012_share
password:       (null)

Verifique se o compartilhamento SMB suporta criação de instantâneo:

rpcclient $> fss_is_path_sup windows_server_2012_share \
UNC \\WIN-SERVER\windows_server_2012_share\ supports shadow copy requests

Solicite a criação de um instantâneo de compartilhamento:

rpcclient $> fss_create_expose backup ro windows_server_2012_share
13fe880e-e232-493d-87e9-402f21019fb6: shadow-copy set created
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
\\WIN-SERVER\windows_server_2012_share\ shadow-copy added to set
13fe880e-e232-493d-87e9-402f21019fb6: prepare completed in 0 secs
13fe880e-e232-493d-87e9-402f21019fb6: commit completed in 1 secs
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
share windows_server_2012_share@{1C26544E-8251-445F-BE89-D1E0A3938777} \
exposed as a snapshot of \\WIN-SERVER\windows_server_2012_share\

Confirme se o compartilhamento de instantâneo foi exposto pelo servidor:

rpcclient $> netshareenum
netname: windows_server_2012_share
remark: 
path:   C:\Shares\windows_server_2012_share
password:       (null)

netname: windows_server_2012_share@{1C26544E-8251-445F-BE89-D1E0A3938777}
remark: (null)
path:   \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{F6E6507E-F537-11E3-9404-B8AC6F927453}\Shares\windows_server_2012_share\
password:       (null)

Tente apagar o compartilhamento de instantâneo:

rpcclient $> fss_delete windows_server_2012_share \
13fe880e-e232-493d-87e9-402f21019fb6 1c26544e-8251-445f-be89-d1e0a3938777
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
\\WIN-SERVER\windows_server_2012_share\ shadow-copy deleted

Confirme se o compartilhamento de instantâneo foi removido pelo servidor:

rpcclient $> netshareenum
netname: windows_server_2012_share
remark: 
path:   C:\Shares\windows_server_2012_share
password:       (null)

23.6.2.4 Gerenciando instantâneos do Windows remotamente com DiskShadow.exe

É possível gerenciar instantâneos de compartilhamentos SMB no servidor Samba do Linux do ambiente Windows agindo também como cliente. O Windows Server 2012 inclui o utilitário DiskShadow.exe, que gerencia compartilhamentos remotos parecidos com o rpcclient, descrito em Seção 23.6.2.3, “Gerenciando instantâneos do Linux remotamente com rpcclient. Observe que é necessário primeiro configurar o servidor Samba com atenção.

Veja a seguir um exemplo do procedimento de configuração do servidor Samba para que o cliente do Windows Server possa gerenciar os instantâneos de seu compartilhamento. Observe que EXAMPLE é o domínio Active Directory usado no ambiente de teste, fsrvp-server.example.com é o nome de host do servidor Samba e /srv/smb é o caminho para o compartilhamento SMB.

Procedimento 23.1 Configuração detalhada do servidor Samba
  1. Entre no domínio Active Directory pelo YaST.

  2. Verifique se a entrada DNS do Domínio Ativo estava correta:

    fsrvp-server:~ # net -U 'Administrator' ads dns register \
    fsrvp-server.example.com <IP address>
    Successfully registered hostname with DNS
  3. Criar subvolume Btrfs em /srv/smb

    fsrvp-server:~ # btrfs subvolume create /srv/smb
  4. Criar arquivo de configuração do snapper para o caminho /srv/smb

    fsrvp-server:~ # snapper -c <snapper_config> create-config /srv/smb
  5. Crie um novo compartilhamento com o caminho /srv/smb e a caixa de seleção Expor Instantâneos do YaST habilitada. Adicione os seguintes trechos à seção global do /etc/samba/smb.conf, como mencionado em Seção 23.6.2.2, “Instantâneos de compartilhamentos remotos”:

    [global]
     rpc_daemon:fssd = fork
     registry shares = yes
     include = registry
  6. Reiniciar o Samba com systemctl restart nmb.service smb.service

  7. Configure permissões do snapper:

    fsrvp-server:~ # snapper -c <snapper_config> set-config \
    ALLOW_USERS="EXAMPLE\\\\Administrator EXAMPLE\\\\win-client$"

    Verifique se todos ALLOW_USERS também têm permissão de passagem no subdiretório .snapshots.

    fsrvp-server:~ # snapper -c <snapper_config> set-config SYNC_ACL=yes
    Importante
    Importante: Escape de caminho

    Tenha cuidado com os escapes ''\''! Inclua dois escapes para garantir que o valor armazenado em /etc/snapper/configs/<config_snapper> fique com apenas um escape.

    "EXAMPLE\win-client$" corresponde à conta de computador cliente do Windows. O Windows emitirá as solicitações FSRVP iniciais enquanto estiver autenticado nessa conta.

  8. Conceda os privilégios necessários para a conta de cliente do Windows:

    fsrvp-server:~ # net -U 'Administrator' rpc rights grant \
    "EXAMPLE\\win-client$" SeBackupPrivilege
    Successfully granted rights.

    O comando anterior não é necessário para o usuário "EXAMPLE\Administrator", que já recebeu os privilégios.

Procedimento 23.2 Configuração do cliente do Windows e DiskShadow.exe em ação
  1. Inicialize o Windows Server 2012 (exemplo de nome de host WIN-CLIENT).

  2. Entre no mesmo domínio Active Directory EXAMPLE do SUSE Linux Enterprise Server.

  3. Reinicializar.

  4. Abra o Powershell.

  5. Inicie o DiskShadow.exe e comece o procedimento de backup:

    PS C:\Users\Administrator.EXAMPLE> diskshadow.exe
    Microsoft DiskShadow version 1.0
    Copyright (C) 2012 Microsoft Corporation
    On computer:  WIN-CLIENT,  6/17/2014 3:53:54 PM
    
    DISKSHADOW> begin backup
  6. Especifique para a cópia de sombra persistir após a saída, redefinição ou reinicialização do programa:

    DISKSHADOW> set context PERSISTENT
  7. Verifique se o compartilhamento especificado suporta instantâneos e crie um:

    DISKSHADOW> add volume \\fsrvp-server\sles_snapper
    
    DISKSHADOW> create
    Alias VSS_SHADOW_1 for shadow ID {de4ddca4-4978-4805-8776-cdf82d190a4a} set as \
     environment variable.
    Alias VSS_SHADOW_SET for shadow set ID {c58e1452-c554-400e-a266-d11d5c837cb1} \
     set as environment variable.
    
    Querying all shadow copies with the shadow copy set ID \
     {c58e1452-c554-400e-a266-d11d5c837cb1}
    
     * Shadow copy ID = {de4ddca4-4978-4805-8776-cdf82d190a4a}     %VSS_SHADOW_1%
        - Shadow copy set: {c58e1452-c554-400e-a266-d11d5c837cb1}  %VSS_SHADOW_SET%
        - Original count of shadow copies = 1
        - Original volume name: \\FSRVP-SERVER\SLES_SNAPPER\ \
          [volume not on this machine]
        - Creation time: 6/17/2014 3:54:43 PM
        - Shadow copy device name: 
          \\FSRVP-SERVER\SLES_SNAPPER@{31afd84a-44a7-41be-b9b0-751898756faa}
        - Originating machine: FSRVP-SERVER
        - Service machine: win-client.example.com
        - Not exposed
        - Provider ID: {89300202-3cec-4981-9171-19f59559e0f2}
        - Attributes:  No_Auto_Release Persistent FileShare
    
    Number of shadow copies listed: 1
  8. Conclua o procedimento de backup:

    DISKSHADOW> end backup
  9. Após criar o instantâneo, tente apagá-lo e confirme a exclusão:

    DISKSHADOW> delete shadows volume \\FSRVP-SERVER\SLES_SNAPPER\
    Deleting shadow copy {de4ddca4-4978-4805-8776-cdf82d190a4a} on volume \
     \\FSRVP-SERVER\SLES_SNAPPER\ from provider \
    {89300202-3cec-4981-9171-19f59559e0f2} [Attributes: 0x04000009]...
    
    Number of shadow copies deleted: 1
    
    DISKSHADOW> list shadows all
    
    Querying all shadow copies on the computer ...
    No shadow copies found in system.

23.7 Para obter mais informações

A documentação do Samba acompanha o pacote samba-doc, que não é instalado por padrão. Instale-o com zypper install samba-doc. Digite apropos samba na linha de comando para exibir algumas páginas de manual ou procure por mais documentações e exemplos online no diretório /usr/share/doc/packages/samba. Encontre uma configuração de exemplo comentada (smb.conf.SUSE) no subdiretório examples. O outro arquivo no qual procurar informações relacionadas ao Samba é /usr/share/doc/packages/samba/README.SUSE.

O HOWTO do Samba (consulte https://wiki.samba.org), fornecido pela equipe Samba, inclui uma seção sobre solução de problemas. Além disso, a Parte V do documento oferece um guia passo a passo para a verificação da configuração.

Imprimir esta página