logo       

Usando o Samba como controlador de domínio (PDC) - Parte 1: msg#02594

culture.publications.dicas

Subject: Usando o Samba como controlador de domínio (PDC) - Parte 1

Usando o Samba como controlador de domínio (PDC) - Parte 1
==========================================================

Colaboração: Carlos E. Morimoto (http://www.guiadohardware.net/cursos)

Numa 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. Mas,
em redes de maior porte, isto pode tornar-se 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 funciona 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. Isto 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 num 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 adicionar também um
compartilhamento chamado "netlogon", que conterá o script de login que será
executado pelas estações.

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,
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
preferred master = yes
local master = yes
domain logons = yes
logon script = netlogon.bat
security = user
encrypt passwords = yes
os level = 100
[netlogon]
comment = Servico de Logon
path = /var/samba/netlogon
guest ok = Yes
browseable = No
[homes]
comment = Diretorio Home
valid users = %S
guest ok = Yes
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".

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 root.

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

Além das contas para cada usuário, é preciso cadastrar também uma conta
(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 "athenas"
por exemplo, é preciso criar um login de máquina com o mesmo nome:


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


Note que nos dois primeiros comandos é adicionado um "$" depois do nome, que
indica que estamos criando um login 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 que para usar este comando o arquivo "/etc/shells" deve conter a
linha "/bin/false". 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 athenas$


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: "Configurar > Configurar Editor > Abrir/Salvar >
Fim de linha > DOS/Windows".

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),
fornecendo-os à estação no momento em que o usuário faz logon. Isto 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, isto 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. Isto 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

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 e Windows XP 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".

-------------------------------------------------------------------------
Gostou da dica? Venha fazer um curso com o autor:


Curso: Redes e servidores Linux
===============================

Com Carlos E. Morimoto

Em São Paulo, de 29/05 a 03/06 (intensivo, com aulas à tarde)

Este é um curso sobre a configuração de servidores Linux. Nele você aprende
a configurar cada serviço diretamente nos arquivos de configuração ou
utilizando ferramentas genéricas, sem se prender a uma única distribuição. Os
exemplos dados durante o curso usam como base o Debian e Fedora, com dicas
de peculiaridades do Mandriva, Slackware, Kurumin e Ubuntu.

Este é um curso intensivo, onde você passa menos tempo vendo teoria e opções
pouco usadas e mais tempo aprendendo a resolver problemas do dia a dia. O
formato das aulas permite que sejam abordados uma grande quantidade de temas
numa única semana, oferecendo uma visão global dos recursos disponíveis e
onde eles podem ser aplicados. Ao invés de fazer um curso sobre o Squid,
outro sobre o Samba, outro sobre o Apache, etc., você aprende muitas coisas
de uma única vez, economizando tempo e dinheiro.

Nesta turma do dia 29/05, combinou do curso de redes e o curso para iniciantes
serem ministrados na mesma semana: o curso para iniciantes de segunda a sexta,
das 8:00 às 11:00, e o curso de redes das 12:30 às 18:00. Fazendo o curso
de redes, você tem acesso também às aulas para iniciantes e pode fazer os
dois cursos simultaneamente (pagando apenas um), e assim aproveitar para
tirar todas as dúvidas.

Veja mais detalhes sobre a programação de cursos, temas abordados, preços
e formas de pagamento no:

http://guiadohardware.net/cursos/

Todas as aulas do curso de redes são ministradas pelo próprio Carlos Morimoto,
o que garante o nível do curso. Nada de aulas inaugurais e mutretas do
gênero :)



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise