Esse artigo descreve passo a passo os procedimentos para levantar um servidor de domínio em sua rede Linux/Windows, esses procedimentos foram testados e está em produção em 5 sites, utilizado o sistema CentOS 4 com Samba 3. Estou realizando testes com LDAP Master e Slave e assim que terminar estarei publicando.
Implementando servidor de arquivos e autenticação - Samba DC
Criando contas das máquinas Windows no Linux
No domínio em redes Microsoft, cada computador precisa ter uma conta de domínio para que o Active Directory consiga ter um "Relacionamento Verdadeiro" com a estação, desse modo evitando que uma estação consiga enganar o Active Directory, no nosso caso o Samba, e utilizar as credenciais de outras máquinas para obter informações da rede. Esse processo é chamado de Relacionamento Verdadeiro. E é por esse motivo que precisamos criar uma conta para cada computador que irá ingressar no domínio Samba.
Criaremos um grupo no Linux chamado "maquinas" para adicionar as máquinas Windows:
# groupadd maquinas
Adicione o nome da estação com Windows que você pretende adicionar ao domínio do Samba ao grupo "maquinas" no Linux através da seguinte linha de comando:
No final da linha de comando, onde está escrito "nome da máquina", seguido do $, é para ser trocado pelo nome do computador Windows que você está incluindo no domínio do Linux.
Agora é necessário que seja incluído no arquivo de senhas do Samba smbpasswd a máquina Windows que você adicionou ao grupo no Linux, não coloque o $ no final da linha, pois isso não é necessário no arquivo smbpasswd.
Criando a senha para a máquina Windows
Estamos informado para o Samba que existe uma máquina que será logada como se fosse um usuário, mas a conta para essa máquina, criada no Linux, não dá permissão para acessar nenhum prompt e não será criado nenhum diretório /home para ela. Para que isso seja possível é necessário executar a seguinte linha de comando:
# smbpasswd -a -m nome_da_máquina
Opções:
-a Informa para o Samba adicionar um novo usuário, por esse motivo o Samba pensará que a máquina é um usuário verdadeiro na base de autenticação do Linux, por isso que quando a máquina foi adicionada na base de autenticação do Linux, colocamos na linha de comando a opção /dev/null e /bin/false;
-m Informa ao Samba que estamos adicionando uma máquina em sua base de autenticação e é por esse motivo que não podemos colocar o caractere $ no final da linha que executa esse procedimento.
Após esse procedimento, iremos criar o grupo para o administrador no Samba.
[2] Comentário enviado por genetico em 18/06/2008 - 00:38h
Gostei muito do seu artigo, ele é simples e objetivo, muito bom mesmo.
Não sou muito bom em samba, talvez minha pergunta seja uma bobeira, porem gostaria de saber se tem como eu conseguir fazer igual ao ad onde posso setar diretivas para as maquinas dos clientes como:
Setar o wallpaper padrão, impedir o usuário de instalar programas (essas coisas), impedir de determinado perfil ou usuário executar algum programa ou recurso do windows (acho que o nome perfil mandatorio) ?
[3] Comentário enviado por lord_roxton em 18/06/2008 - 11:08h
No SAMBA não tem como aplicar diretivas de segurança (GPO) como em um servidor AD. Basicamente o SAMBA funciona como um autenticador para os clientes Windows e também como servidor de arquivos!
[4] Comentário enviado por maran em 18/06/2008 - 12:49h
Bom o artigo em si, esta legal, Samba é uma solução que eu gosto muito, da pra faze muita coisa.
Faltou ou não vi, se for isso me desculpe, você demostrar como pode ser feito a criação automatica das contas usando o admin user, pois digamos que minha rede tem 500 micro, eu preciso cria 500 contas na mão, lógico que não para isso existe o parâmetro
add machine script = useradd - g pdc -c "Máquina de Domínio" -s /bin/false -d /dev/null %u
Simples não é?
A conta será criada assim que a máquina engressar no domínio.
Mas os clientes teram de ingressar a máquina usando a conta do administrador de domínio.
Outra coisa que vale lembrar:
Nas versões do Samba anteriores a 3 o parâmetro add machine script deve ser substituido po add user script.
Bom com isso diantamos bem o nosso lado em...
Bom ai você usa a conta do admin, mas ingressa rapidamente as máquinas, feito isso é so mudar o usuario admin, para não ter problemas.
[5] Comentário enviado por genixsky em 18/06/2008 - 14:32h
Bom dia a todos.
Maran.
É realmente possível configurar o Samba para que ele mesmo cadastre a estação, mas não costumo realizar esse procedimento nos sites, pois realizo o controle manual das máquinas que eu quero no domínio e as que devem ficar de fora.
Genetico.
O que o lord_roxton disse, em parte esta certo, o Samba não trabalho com GPO como conhecemos no AD, mas realizo a administração de algumas tarefas dos usuários através do Windows, utilizando o Samba como um ajudante, por exemplo, eu utilizo o netlogon para configurar os papeis de parede, Internet Explorer, WSUS, registro de Dlls para um sistema utilizado na minha rede, onde todos os usuários precisam ter acesso.
Foi bom você ter tocado nesse assunto, pois vou documentar esse procedimento com o netlogon para administração das estações.
[7] Comentário enviado por genetico em 18/06/2008 - 23:26h
Quando você fala em netlogon seria aquela [netlogon] do samba ou seria o via scripts BAT ou os dois ? (como já disse não sou muito bom em SAMBA, me desculpe qualquer besteira que tenha falado)
E o LDAP ? também serviria pra fazer isso ou estou enganado ?
Legal, você lançar um novo artigo dedicado a isso.
Você, pode dizer qual o nome do próximo artigo pra gente acompanhar.
[8] Comentário enviado por genixsky em 19/06/2008 - 12:52h
Bom dia Genetico, então estava me referindo ao compartilhamento do Samba chamado de netlogon, essa idéia de netlogon vem do Windows, pois esse conceito existe também no AD, a idéia é o seguinde o Samba já possui uma configuração padrão que já esta em seu arquivo smb.conf referente ao [netlogon] esse compartilhamento é buscado automaticamente pelas estações WIndows, quando as mesmas fazem parte de um domínio, e elas verificam se existe um script dentro desse compartilhamento com o nome do usuário que esta tentando realizar o logon, caso ela encontre, esse script é executado automaticamente pelo Windows.
Um dos problemas que eu encontro com o Samba é o fato do mesmo não fornecer uma forma de redundância, ou seja, se o meu único servidor Samba que é o autenticado do domínio parar o pessoal na rede não vai conseguir acessar os arquivos que estão dentro das unidades mapeadas pelo Samba e isso se torna um caos na rede, existe formas, que eu chamo de WA (Work Around) um conceito muito utilizado aqui em Santos-SP, que é possível através do RSYNC e alguns outros macetes deixar o Samba redundante, mas não é 100% confiável e eu não gosto muito dessa idéia.
O LDAP é um serviço que o pessoal utiliza para centralizar todos os logins e informações de usuários e utilizam o Samba para consultá-lo, a grande vantagem disso é que o código do LDAP foi criado para trabalhar com redundância, ou seja, posso ter dois, três ou mais servidores LDAP, todos replicando as informações dos usuários e caso o principal pare o Samba realiza a busca para autenticar os usuários em outros servidores LDAP, parece uma coisa simples de configurar, mas já estou trabalhando a seis meses nesse ambiente com o LDAP e posso dizer que estou nos 60% de concluir, assim que terminar, vou publicar aqui.
Não sei se você sabe mais o AD da Microsoft utiliza o protocolo LDAP o mesmo que pretendo integrar com o Samba, só que o AD já esta bastante maduro, o meu objetivo é deixar o Samba de igual para igual com o AD, estou aguardando o Samba versão 4 ficar estavel, pois conversei com o time do Samba e nessa versão parece que ele vai oferecer mais suporte a características que o AD possuí.
[11] Comentário enviado por santosflau em 21/02/2009 - 20:18h
Excelente artigo, esta bem aprecido com meu samba, porem vc tem o mesmo problema de que as estações win 2003, não conseguem puxar a lista de usuarios do sistema?
E por isso no win 2003 eu trabalho com grupo de trabalho.
[13] Comentário enviado por emarone em 25/06/2009 - 14:37h
As máquinas da minha rede não estão encontrando o controlador de domínio, esta aparecendo a mensagem que o servidor não pode ser encontrado e foi de repente que isso aconteceu. Será que alguém tem alguma solução para isso.
Desde já obrigado