Samba como um Controlador de Domínio

Ainda que não possa atuar como um Controlador de Domínio Primário de Diretório Ativo (PDC), um servidor Samba pode ser configurado para aparecer como um controlador de domínio no estilo do Windows NT4. Uma grande vantagem desta configuração é a habilidade de centralizar credenciais de usuários e máquinas. Samba também pode utilizar múltiplas infraestruturas para guardar informações do usuário.

Controlador de Domínio Primário

Esta seção cobre a configuração do Samba como um Controlador de Domínio Primário (PDC) usando o infraestrutura padrão smbpasswd.

  1. Instale o Samba e a libpam-smbpass para sincronizar as contas dos usuários, digitando o seguinte comando em um terminal:

    sudo apt-get install samba libpam-smbpass
    
  2. Depois, configure o Samba editando o arquivo /etc/samba/smb.conf. O item de modo security deve ser configurado como user, e o item workgroup deve se referir à sua organização apropriadamente:

    workgroup = EXEMPLO
    ...
    security = user
    
  3. Na seção comentada “Domains”, adicione ou remova os comentários seguintes:

    domain logons = yes
    logon path = \\%N\%U\profile
    logon drive = H:
    logon home = \\%N\%U
    logon script = logon.cmd
    add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d /var/lib/samba -s /bin/false %u
    
    • logons de domínio: fornece o serviço netlogon fazendo com que o Samba aja como um controlador de domínio.

    • caminho de logon: coloca o perfil do Windows do usuário em sua pasta pessoal. Também é possível configurar um compartilhamento de [perfis] colocando todos os perfis em um único diretório.

    • drive de autenticação: especifica o caminho local para o diretório pessoal.

    • pasta pessoal de logon: especifica a localização da pasta pessoal.

    • script de logon: determina o script que será rodado localmente assim que um usuário fizer logon. O script deve ser colocado no compartilhamento [netlogon].

    • script de inclusão de máquina: um script que irá criar automaticamente a Conta de Confiança da Máquina necessária para a estação participar do domínio.

      Neste exemplo, o grupo machines necessitará ser criado usando o utilitário addgroup. Veja Noções Básicas para detalhes.

    Note

    Se Perfis de Roaming não serão usados, deixe as opções logon home e caminho de logon comentadas.

  4. Descomente o [homes] compartilhamento para permitir o logon home a ser mapeado:

    [homes]
    comment = Home Directories
    browseable = no
    read only = no
    create mask = 0700
    directory mask = 0700
    valid users = %S
    
  5. Quando configurado como um controlador de domínio, um compartilhamento [netlogon] precisa ser configurado. Para habilitar esse compartilhamento, remova o comentário de:

    [netlogon]
    comment = Network Logon Service
    path = /srv/samba/netlogon
    guest ok = yes
    read only = yes
    share modes = no
    

    Note

    O caminho de compartilhamento netlogon original é /home/samba/netlogon, porém de acordo com a hierarquia padrão de sistema de arquivos (FHS), /srv é a localização correta para dados específicos por sítio provido pelo sistema.

  6. Agora crie o diretório netlogon, e um arquivo de script vazio (por enquanto) logon.cmd:

    sudo mkdir -p /srv/samba/netlogon
    sudo touch /srv/samba/netlogon/logon.cmd
    

    Qualquer script normal de logon Windows pode ser digitado em logon.cmd para personalizar o ambiente do cliente.

  7. Como root está desabilitado por padrão, para que a estação de trabalho entre no domínio, um grupo de sistema deve ser mapeado para o grupo Administradores de Domínio. Utilizando o utilitário net, à partir de um terminal, digite:

    sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d
    

    Note

    Mude sysadmin para o grupo preferido. O usuário utilizado para entrar no domínio precisa ser um membro do grupo sysadmin, bem como um membro do grupo de sistema admin. O grupo admin permite a utilização de sudo.

  8. Finalmente, reinicie o Samba para habilitar o novo controlador de domínio:

    sudo /etc/init.d/samba restart
    
  9. Agora é possível entrar com clientes Windows no Domínio da mesma forma como se entra em um domínio NT4 que roda em um servidor Windows.

Cópia de Segurança do Controlador de Domínio

Com um Controlador de Domínio Primário (PDC) na rede, é bom também ter um Controlador de Domínio Backup (BDC). Isto permitirá aos clientes se autenticarem caso o PDC se tornar indisponível.

Quando se configura o Samba como um BDC, deve haver alguma forma de sincronização de informações de conta com o PDC. Existem várias formas de fazê-lo, como scp, rsync, ou utilizando LDAP como o backend de passdb.

Utilizar o LDAP é a forma mais robusta de sincronizar informações de conta, pois ambos controladores de domínio podem usar a mesma informação em tempo real. Entretanto, configurando um servidor de LDAP pode ser excessivamente complicado para um locais com um pequeno número de usuários e contas de computadores. Veja a página LDAP do Samba para detalhes.

  1. Primeiro, instale o samba e libpam-smbpass. A partir de um terminal digite:

    sudo apt-get install samba libpam-smbpass
    
  2. Agora, edite /etc/samba/smb.conf e descomente o seguinte na [global]:

    workgroup = EXEMPLO
    ...
    security = user
    
  3. Nos Domínios comentados descomente ou adicione:

    domain logons = yes
    domain master = no
    
  4. Certifique-se de que um usuário tem permissão para ler os arquivos em /var/lib/samba. Por exemplo, para permitir que usuários do grupo admin usem scp nos arquivos, digite:

    sudo chgrp -R admin /var/lib/samba
    
  5. A seguir, sincronize as contas de usuário, utilizando scp para copiar o diretório /var/lib/samba a partir do PDC.

    sudo scp -r username@pdc:/var/lib/samba /var/lib
    

    Note

    Substitua username com um nome de usuário válido e pdc com o nome de máquina ou endereço IP do PDC atual.

  6. Finalmente, reinicie o samba:

    sudo /etc/init.d/samba restart
    

Teste se o Controlador de Domínio Backup está funcionando parando o daemon do Samba no PDC, e então tentando efetuar login em um cliente Windows que está no domínio.

Se a opção logon home foi configurada como um diretório no PDC, e o PDC se tornar indisponível, o acesso ao disco Home do usuário também se tornará indisponível. Por esta razão, é bom que se configure o logon home para ficar em um servidor de arquivos separado do PDC e BDC.

Recursos

  • Para configurações mais aprofundadas do Samba veja a Coleção de HOWTO's do Samba

  • O guia também está disponível em formato impresso.

  • O livro de O'Reilly Using Samba é também uma boa referência.

  • Caítulo 4 da Coleção de HOWTO do Samba explica como configurar um Controlador de Domínio Primário.

  • Capítulo 5 Coleção de HOWTO do Samba explica como configurar um Controlador de Domínio Backup.