ct

    Samba, parte 3: Usando o Samba como PDC

    Tutoriais

    Nesta terceira parte do tutorial nos aprofundaremos na configuração manual do Samba, desta vez estudando sobre o uso do Samba como controlador de domínio (PDC para os íntimos), incluindo a configuração dos clientes Windows e Linux.Carlos E. Morimoto
    11/12/2007


    Em uma pequena rede, manter as senhas dos usuários sincronizadas entre as estações Windows e o servidor Samba não chega a ser um grande problema. No entanto, em redes de maior porte, isso pode se tornar uma grande dor de cabeça e passar a consumir uma boa parte do seu tempo.

    Para solucionar o problema, existe a opção de usar o servidor Samba como um controlador primário de domínio (PDC), onde ele passa a funcionar como um servidor de autenticação para os clientes Windows e (opcionalmente) armazena os perfis de cada usuário, permitindo que eles tenham acesso a seus arquivos e configurações a partir de qualquer máquina onde façam logon.

    Ao cadastrar um novo usuário no servidor Samba, ele automaticamente pode fazer logon em qualquer uma das estações configuradas. Ao remover ou bloquear uma conta de acesso, o usuário é automaticamente bloqueado em todas as estações. Isso elimina o problema de sincronismo entre as senhas no servidor e nas estações e centraliza a administração de usuários e permissões de acesso no servidor, simplificando bastante seu trabalho de administração.

    O primeiro passo é modificar o arquivo de configuração do Samba. Existem algumas regras adicionais para transformar o Samba em um controlador de domínio. A seção "global" deve conter as linhas "domain master = yes", "domain logons = yes" e "logon script = netlogon.bat" e (importante) não deve conter a linha "invalid users = root", pois precisaremos usar a conta de root no Samba ao configurar os clientes. É preciso ainda adicionar um compartilhamento chamado "netlogon", que conterá o script de logon que será executado pelas estações.

    É necessário também que o modo de segurança esteja configurado em nível de usuário (security = user) e que o uso de senhas encriptadas esteja ativado (encrypt passwords = yes). Na verdade, não é obrigatório incluir estas duas linhas, pois estes valores são usados por default pelo Samba 3, mas é sempre interessante usá-los em exemplos e modelos de configuração para fins didáticos e para deixar claro que o arquivo não deve ter opções que conflitem com elas.

    Embora não seja obrigatório, é fortemente recomendável ativar o uso do tdbsam, adicionando a linha "passdb backend = tdbsam". Usar o smbpasswd em um PDC oferece várias desvantagens. A principal delas é que o smbpasswd armazena um conjunto bastante incompleto de atributos referentes aos usuários, de forma que atributos como o SID (um código de identificação único a cada usuário, usado como verificação de segurança) ficam em branco ou são gerados dinamicamente durante os acessos, o que pode quebrar o suporte aos roaming profiles em algumas situações. O uso do tdbsam soluciona estes problemas.

    Este é um exemplo de arquivo de configuração do Samba para um controlador de domínio. Ele não contém as configurações para compartilhamento de impressoras, lixeira e outras opções que você pode adicionar (juntamente com os compartilhamentos desejados) depois de testar a configuração básica:

    [global]
    workgroup = Dominio
    netbios name = GDH
    server string = Samba PDC

    domain master = yes
    domain logons = yes
    logon script = netlogon.bat

    security = user
    encrypt passwords = yes
    enable privileges = yes
    passdb backend = tdbsam

    preferred master = yes
    local master = yes
    os level = 100
    wins support = yes

    [netlogon]
    comment = Servico de Logon
    path = /var/samba/netlogon
    read only = yes
    browseable = no

    [homes]
    valid users = %S
    create mask = 0700
    directory mask = 0700
    browseable = no

    Acostume-se a sempre rodar o comando "testparm" depois de fazer alterações no arquivo, pois ele verifica a sintaxe e indica erros de configuração. Ao configurar o Samba como PDC, ele deve exibir a mensagem: "Server role: ROLE_DOMAIN_PDC", como em:

    $ testparm

    Load smb config files from /etc/samba/smb.conf
    Processing section "[netlogon]"
    Processing section "[homes]"
    Loaded services file OK.
    Server role: ROLE_DOMAIN_PDC

    As linhas "preferred master = yes", "local master = yes" e "os level = 100" fazem com que o servidor assuma também a função de master browser da rede. É comum que o PDC acumule também a função de master browser, mas na verdade uma coisa não tem relação com a outra. Você pode remover as três linhas e configurar outra máquina para assumir a função de master browser se preferir.

    Depois de configurar o arquivo, verifique se a conta root do sistema foi cadastrada no Samba e se as senhas estão iguais. Caso necessário, use o comando "smbpasswd -a root" para cadastrar o a conta de root no Samba. Aproveite para criar a pasta "/var/samba/netlogon" e configurar corretamente as permissões:

    # mkdir -p /var/samba/netlogon
    # chmod 775 /var/samba/netlogon

    Com o "775" estamos permitindo que, além do root, outros usuários que você adicionar no grupo possam alterar o conteúdo da pasta. Isso pode ser útil caso existam outros administradores de rede além de você.

    Cadastre agora os logins dos usuários, com as senhas que eles utilizarão para fazer logon a partir das máquinas Windows. Neste caso, não é preciso se preocupar em manter as senhas em sincronismo entre o servidor e as estações. Na verdade, as contas que criamos aqui não precisam sequer existir nas estações, pois o login será feito no servidor. Para adicionar um usuário de teste "joao", use os comandos:

    # adduser joao
    # smbpasswd -a joao

    É importante criar também a pasta "profile.pds" dentro do diretório home do usuário, onde o cliente Windows armazena as informações da sessão cada vez que o usuário faz logon no domínio:

    # mkdir /home/joao/profile.pds

    Ao rodar este comando como root, não se esqueça de ajustar as permissões da pasta, de forma que o usuário seja o dono:

    # chown -R joao.joao /home/joao/profile.pds

    Aproveite e crie a pasta "profile.pds" dentro do diretório /etc/skel, de forma que ela seja criada automaticamente dentro do home dos usuários que criar daqui em diante:

    # mkdir /etc/skel/profile.pds

    Além das contas para cada usuário, é preciso cadastrar também uma conta (bloqueada, e por isso sem senha), para cada máquina. Você deve usar aqui os mesmos nomes usados na configuração de rede em cada cliente. Se a máquina se chama "alesia" por exemplo, é preciso criar um login de máquina com o mesmo nome:

    # useradd -d /dev/null -s /bin/false alesia$
    # passwd -l alesia$
    # smbpasswd -a -m alesia

    Note que nos dois primeiros comandos é adicionado um "$" depois do nome, que indica que estamos criando uma conta de máquina, que não tem diretório home (-d /dev/null), não possui um shell válido (-s /bin/false) e está travada (passwd -l). Esta conta é válida apenas no Samba, onde é cadastrada com a opção "-m" (machine). Estas contas de máquina são chamadas de "trusted accounts" ou "trustee".

    Lembre-se de que para usar este comando o arquivo "/etc/shells" deve conter a linha "/bin/false". Em caso de erro ao adicionar a máquina, use o comando abaixo para adicionar a linha e tente novamente (este comando só funciona se executado diretamente usando o root, não funciona se executado usando o sudo):

    # echo "/bin/false" >> /etc/shells

    Se preferir, você pode adicionar as contas de máquina dentro de um grupo do sistema ("maquinas" ou "machines" por exemplo). Neste caso, crie o grupo usando o comando "groupadd" e use o comando abaixo para criar as contas de máquina já incluindo-as no grupo:

    # useradd -g maquinas -d /dev/null -s /bin/false alesia$

    Por último, é necessário criar o arquivo "/var/samba/netlogon/netlogon.bat", um script que é lido e executado pelos clientes ao fazer logon. Você pode fazer muitas coisas através dele, mas um exemplo de arquivo funcional é:

    net use h: /HOME
    net use x: \\gdh\arquivos /yes

    Este script faz com que a pasta home de cada usuário (compartilhada pelo Samba através da seção "homes") seja automaticamente mapeada como a unidade "H:" no cliente, o que pode ser bastante útil para backups, por exemplo. Naturalmente, cada usuário tem acesso apenas a seu próprio home.

    A segunda linha é um exemplo de como fazer com que determinados compartilhamentos do servidor sejam mapeados no cliente. O "net use x: \\gdh\arquivos /yes" faz com que o compartilhamento "arquivos" (que precisaria ser configurado no smb.conf) seja mapeado como o drive "X:" nos clientes. Lembre-se que o "gdh" dentro do netlogon.bat deve ser substituído pelo nome do seu servidor Samba, configurado na opção "netbios name =" do smb.conf.

    Mais um detalhe importante é que o arquivo do script de logon deve usar quebras de linhas no padrão MS-DOS e não no padrão Unix (que é o padrão da maioria dos editores de texto do Linux). Você pode criá-lo usando um editor de texto do Windows ou usar algum editor do Linux que ofereça esta opção. No Kwrite por exemplo, a opção está em: "Configurações > Configurar Editor > Abrir/Salvar > Fim de linha > DOS/Windows":

    index_html_4536c20e

    Mais uma configuração útil (porém opcional) é fazer com que o servidor armazene os arquivos e configurações do usuário (recurso chamado Roaming Profiles, ou perfis móveis), fornecendo-os à estação no momento em que o usuário faz logon. Isso permite que o usuário possa trabalhar em outras máquinas da rede e faz com que seus arquivos de trabalho sejam armazenados no servidor, diminuindo a possibilidade de perda de dados.

    Por outro lado, ativar os perfis móveis faz com que seja consumido mais espaço de armazenamento do servidor e aumenta o tráfego da rede, já que os arquivos precisam ser transferidos para a estação a cada logon. Isso pode tornar-se um problema caso os usuários da rede tenham o hábito de salvar muitos arquivos grandes na área de trabalho.

    Note que o servidor não armazena todos os arquivos do usuário, apenas as configurações dos aplicativos, entradas do menu iniciar, cookies, bookmarks e arquivos temporários do IE e o conteúdo das pastas "Desktop", "Modelos" e "Meus Documentos".

    Para ativar o suporte no Samba, adicione as duas linhas abaixo no final da seção "global" do smb.conf (abaixo da linha "logon script = netlogon.bat"):

    logon home = \\%L\%U\.profiles
    logon path = \\%L\profiles\%U

    A variável "%L" neste caso indica o nome do servidor e o "%U" o nome do usuário que está fazendo logon. Quando, por exemplo, o "joao" faz logon é montado o compartilhamento "\\gdh\profiles\joao". Adicione também um novo compartilhamento, adicionando as linhas abaixo no final do arquivo:

    [profiles]
    path = /var/profiles
    writeable = yes
    browseable = no
    create mask = 0600
    directory mask = 0700

    Concluindo, crie a pasta "/var/profiles", com permissão de escrita para todos os usuários:

    # mkdir /var/profiles
    # chmod 1777 /var/profiles

    Cada usuário passa a ter uma pasta pessoal dentro da pasta ("/var/profiles/joao", por exemplo) onde as configurações são salvas. Apesar das permissões locais da pasta permitirem que qualquer usuário a acesse, o Samba se encarrega de permitir que cada usuário remoto tenha acesso apenas ao seu próprio profile.

    As estações Windows 2000 utilizam os perfis móveis automaticamente, quando o recurso está disponível no servidor Samba. Você pode verificar a configuração e, caso desejado, desativar o uso do perfil móvel no cliente no "Meu Computador > Propriedades > Perfis de Usuário > Alterar tipo".

    No Windows XP o default foi alterado e o sistema tenta usar o perfil móvel por padrão, exibindo uma mensagem de erro (repetida a cada logon) caso o recurso não esteja disponível no servidor. Para eliminar as mensagens de erro é necessário desativar o uso dos perfis móveis, o que é feito através do utilitário "gpedit.msc", que pode ser chamado através do Iniciar > Executar (é necessário estar logado localmente, usando uma conta com privilégios administrativos).

    Dentro dele, acesse a opção "Configuração do computador > Modelos administrativos > Sistema > Perfis de usuário > Só permitir perfis de usuário locais" e mude a opção de "Não configurado" para "Ativado" (esta alteração precisa ser repetida em todas as máquinas):

    index_html_26fe81ab

    Aqui vai mais um exemplo de configuração, incluindo a configuração para uso como PDC, o compartilhamento netlogon, suporte a perfis móveis e compartilhamento de impressoras:

    [global]
    netbios name = Byzantium
    workgroup = Dominio
    server string = Servidor PDC
    domain master = yes
    domain logons = yes
    logon script = netlogon.bat
    logon home = \\%L\%U\.profiles
    logon path = \\%L\profiles\%U

    security = user
    encrypt passwords = yes
    enable privileges = yes
    passdb backend = tdbsam
    preferred master = yes
    local master = yes
    os level = 100
    wins support = yes

    printing = cups
    load printers = yes
    enable privileges = yes

    [printers]
    path = /var/spool/samba
    print ok = yes
    guest ok = yes
    browseable = yes

    [print$]
    path = /var/smb/printers
    read only = yes
    write list = gdh
    inherit permissions = yes

    [netlogon]
    comment = Servico de Logon
    path = /var/samba/netlogon
    read only = yes
    browseable = no

    [profiles]
    path = /var/profiles
    writeable = yes
    browseable = no
    create mask = 0600
    directory mask = 0700

    [homes]
    valid users = %S
    create mask = 0700
    directory mask = 0700
    browseable = no

    [arquivos]
    path = /mnt/hda2
    writable = no
    write list = +arquivos

    Com o servidor Samba configurado, falta o mais importante, que é configurar os clientes para fazerem logon no domínio. Ao usar um PDC, surge a necessidade de cadastrar as máquinas no domínio, para só então os usuários cadastrados poderem utilizar as máquinas. É possível cadastrar tanto máquinas Windows quanto máquinas Linux no domínio, vamos agora às peculiaridades de cada sistema.



    Página 01 de 06
        


    » Gostou do texto? Veja nossos livros impressos:


    REDES,
    Guia Prático
    HARDWARE,
    o Guia Definitivo
    Linux, Ferramentas
    Técnicas 2ed
    Kurumin 7,
    guia prático
cb
Livros de Carlos E. Morimoto HOME