Pesquisar neste blog

quarta-feira, 5 de maio de 2010

Instalando/Atualizando Samba 3.4 no CentOS 5

Olá pessoal, com a chegada do windows 7, com ele também vieram alguns problemas para quem usa controladores de domínio Samba na versão 3.0. Existe uma incompatibilidade do protocolo de autenticação NTLMv2 do Windows 7, por padrão ele só tem suporte ao NTLMv2, detalhe, o samba ainda não utiliza o NTLMv2, mais um problema criado pela microsoft!

Então para resolver esse problema e facilitar a situação dos administradores de rede aqui vai minha dica:

Vamos seguir a recomendação da wiki do samba, que nos orienta a como ativar o suporte ao controlador de domínio Samba no Windows 7.

Configurações de Registro do Windows 7

Atualmente existem duas configurações necessárias no Registro do Windows 7 antes de ingressar em um domínio Samba. São elas:


 HKLM\System\CCS\Services\LanmanWorkstation\Parameters
            DWORD  DomainCompatibilityMode = 1
            DWORD  DNSNameResolutionRequired = 0
 
essa outra alteração não é da wiki, ela evita dar aquele erro
de relação de confiança ao logar após ter sido inserida no domínio:

HKLM\System\CurrentControlSet\Control\Lsa
            DWORD LmCompatibilityLevel = 1 
 
Pelo gpedit.msc mudar para "Send LM & NTLM – use NTLMv2 if negotiated" 
 
Certifique-se de reiniciar o Windows 7 ou reiniciar o serviço LanmanWorkstation após definir essas entradas.
 
Você receberá um aviso sobre a configuração de DNS do nome de domínio após a inclusão bem sucedida: 
 
"Changing the Primary Domain DNS name of this computer to "" failed.
    The name will remain "MYDOM".  The error was:
    
    The specified domain either does not exist or could not be contacted" 
Este aviso pode ser ignorado ou silenciado com ajuste de outras chaves do Registro.
 
Não edite quaisquer outros parâmetros do registro (NETLOGON). Se você já tiver modificado 
o Registro do Windows 7, certifique-se de repor as chaves e seus valores padrões.
 
Se você tiver alterado os parâmetros do NETLOGON, certifique-se de voltá-los 
para "1" como mostrado abaixo: 
 

HKLM\System\CCS\Services\Netlogon\Parameters
           DWORD  RequireSignOrSeal = 1
           DWORD  RequireStrongKey = 1


Bom, essas são as orientações do samba quanto as alterações do registro do windows 7. Agora vamos para a o servidor, onde vamos realizar a atualização do samba segundo pacotes disponíveis no repositório do site da sernet para o centOS 5.

Bom, antes de começar a atualização é bom lembrar a quem usa o controlador de domínio com passdb backend do tipo "smbpasswd".

Segundo documentação oficial do samba 3.4:
http://www.samba.org/samba/history/samba-3.4.0.html

O passdb backend padrão da nova versão do samba é o tdbsam, para usar o smbpasswd deve ser explicitado no arquivo de configuração "passdb backend = smbpasswd".
Se você quiser manter o backend "smbpasswd" ou converter seus registros smbpasswd use o comando 'pdbedit -i smbpasswd -e tdbsam'

O backend 'tdbsam' é muito mais flexível em relação as configurações por usuário como 'profile path' ou 'home directory' e existem alguns comandos que não trabalham em tudo com o backend 'smbpasswd'.

Ditas as explicações, aconselhamos a fazer um backup do /etc/samba e do /var/cache/samba, isso para quem já tem o samba em uso.

Iremos agora criar o repositório para realizar a atualização do samba 3.4:

# vim /etc/yum.repos.d/samba-testing.repo

Adicionar o conteúdo Abaixo.

# Nome: Repositório de instalação do Samba
[samba-testing]
name = SerNet Samba Team packages (CentOS 5)
type=rpm-md
baseurl = ftp://ftp.sernet.de/pub/samba/3.4/centos/5/
enabled = 1
gpgcheck = 0
# fim




Salve o arquivo e saia. 

Agora vamos atualizar o Sistema e o Samba…

# yum update -y
Para quem usa o Samba como membro de um domínio AD, segue abaixo o comando para baixar e instalar o winbind.

# yum install samba3-winbind

Depois de Atualizado o Samba para versão 3.4 vamos as configurações finais. Edite o arquivo de configuração do samba /etc/smb.conf e acrescente as seguintes linhas:



ntlm auth = YES
lanman auth = YES

client NTLMv2 auth = YES

Nota: Lembrando que para quem usa passdb backend, acrescente no arquivo de configuração do samba a seguinte linha: 

passdb backend = smbpasswd


Depois de terem feito as configurações padrões e as adicionais de acordo com seu uso, no caso as que não listamos aqui, você já pode salvar o arquivo e sair.

Inicie o serviço do samba com o seguinte comando:

# service smb start

Crie uma senha para seu usuário administrador do domínio, no caso o root usando o seguinte comando:
# smbpasswd -a root


Pronto, agora vá até uma estação cliente com Windows 7 e a adicione ao domínio.


22 comentários:

Sandro disse...

Saudações,,,

Atualizei o samba conforme sua dica, depois de atualizado tive problema de autenticação. Não acesso mais o compartilhamento. Alguma outra dica???

Grato.

Marcos Abadi disse...

Olá Sandro, tudo bem?, bom primeiramente qual tipo de autenticação você está usando com o samba, ldap, smbpasswd, tdbsam?

Na dica fiz a atualização em um samba usando smbpasswd como backend de autenticação, se caso você também está usando esse mesmo mecanismo, por acaso não o definiu dentro do arquivo de configuração do samba, a versão nova do samba usa como padrão o tdbsam. Aconselho você verificar se no seu arquivo de configuração do samba existe o parâmetro passdb backend = smbpasswd

Sandro disse...

Realmente,, era isso mesmo.
Resolvido.

Veja se pode me ajudar nessa:
Tenho um PDC com smbpasswd (esse mesmo da atualização). Preciso fazer um BDC dele, sabe se é possivel fazer com essa autenticação ou precisa ser LDAP??
Se precisa ser LDAP tem como alterar esse server q esta em produção?? sem muito trauma?

vlw.
obrigado
Abraço.

Marcos Abadi disse...

Olá Sandro, desculpe a demora em responder, sim você pode fazer um bdc com esse mecanismo de autenticação, basta você copiar o SID do teu domínio principal e setá-lo no seu segundo servidor, tipo no servidor samba que você tem instalado rode o comando:
# net getlocalsid
para obter o SID do dominio principal.
No servidor BDC rode o comando:
# net setlocalsid
com o SID do PDC e depois restart o samba. Você vai ficar com dois servidores, Você pode no BDC baixar o OS level, apenas para dizer que tem prioridade sobre a rede.
O arquivo smbpasswd vai ter que ser o mesmo nas duas máquinas. Nas estações, nas configurações de wins do adaptador de rede é que você vai definir também que é o primário e quem é o secundário.

Eu particularmente usa via samba com ldap, pois tenho em torno de 12 mil contas, ai não dá pra ser via smbpasswd, rsrsrs.

Abraço, qualquer coisa é só perguntar.

Diego disse...

Olá, estou migrando para um novo servidor (passando do Conectiva 10 para o Centos 5), e gostaria de tirar algumas duvidas.

Se eu entendi bem agora o padrão do samba e o tdbsam, certo?

Como ele já vem por padrão eu tenho que colocar esse parametro?
passdb backend = tbdsam

No meu caso eu tenho o parametro
smb passwd file = /etc/samba/smbpasswd
Como quero passar a usar o tdbsam
Devo muda-lo tb? Para qual?

Devo colocar esses parametros?
ntlm auth = YES
lanman auth = YES
client NTLMv2 auth = YES

No caso nao tenho W7 na rede mas pretendo por isso estou passando para o Samba 3.5.4 que me parece que já foram corrigidos os erros relacionados ao W7! Isso procede?

No meu conectiva ta a versao 3.0 e apanhei bastante para fazer funcionar aqui agora fique só com a parte do usuarios pendentes e algumas otimizações, existe alguma nova config. que melhore o desempenho do samba?

Excelente artigo! Me ajudou muito!
Grato!

Marcos Abadi disse...

Olá Diego,
Sim, o padrão do samba é o tdbsam.
Se você usa o smbpasswd e quer usar o tdbsam, vai precisar converter sua base de usuários utilizando uma ferramenta conforme indicado no tutorial.

Os parâmetros devem ser os mesmos informados no tutorial.

A versão do samba 3.4 em diante já está preparada para receber estações usando windows seven.

Qualquer dúvida, pode postar que eu respondo.
Abraço.

Diego disse...

Ola de novo!
Estou passando do Samba 3.0.4 para o 3.5.4!

Já consegui resolver todos os erros relativos a configurações, e outros detalhes porem ainda estou apanhando.

Ocorre o seguinte, assim que fiz a migração ocorreu o problema:
Quando eu logo no XP já com o servidor novo ele cria um novo profile no XP ou seja outra pasta dentro do "Document and Settings".

No meu "Document and Settings" já tem uma pasta com o nome do usuario e todas suas configurações, mas se eu logar com o servidor novo ele cria uma nova pasta com um ponto e o nome do domino exemplo: usuario.DOMINIO

Os nomes do dominio são os mesmo!

Eu já fiz o seguinte:

Já deixei o SID do meu novo servidor = ao meu servidor antigo.
Copiei o secrets.tdb e verifique os SID dos usuarios pelo pdbedit e estão todos como o do antigo servidor

Porem o erro persiste alguem tem mais alguma ideia do que fazer??


GratO!

Jacvit disse...

Marcos, Muito boas suas dicas.
Estou precisando fazer o BDC de um PDC Samba como ficaria o meu smb.conf e quais outras medidas a tomar.
Abraço.
Jacvit

Jacvit disse...

Marcos, Tudo Bom? Muito boas suas dicas. Estou precisando criar um BDC de um PDC rodando Samba 3.03 com backend o tdbsam. Minha duvida é como ficaria o smb.conf e quais demais configurações a serem feitas.
Abraço.
Jacques

Marcos Abadi disse...

Olá Jacvit,
a configuração fica a mesma, o que você tem que mudar no BDC é deixar o mesmo SID do domínio principal.

Jilles Moraes Cardoso disse...

Diego, recentemente estou tentando migrar da versão 3.4.3 para a versão 3.5.4
Estou conseguinto que o windows xp entre no domínio e funcione perfeitamente. Porém o Windows 7 eu nem consigo colocar no domínio.
O erro que dá no windows 7 é : O tipo de recurso da rede está incorreto.
Não sei se você passou por isso, mas será que seria possível que você me envie o seu smb.conf ou alguma dica para eu resolver este problema?

Caso alguém mais saiba, por favor envie para masterjilles@gmail.com

Agradeço a colaboração de todos.
Att,
Jilles Moraes Cardoso

Jilles Moraes Cardoso disse...

Diego, recentemente estou tentando migrar da versão 3.4.3 para a versão 3.5.4
Estou conseguinto que o windows xp entre no domínio e funcione perfeitamente. Porém o Windows 7 eu nem consigo colocar no domínio.
O erro que dá no windows 7 é : O tipo de recurso da rede está incorreto.
Não sei se você passou por isso, mas será que seria possível que você me envie o seu smb.conf ou alguma dica para eu resolver este problema?

Caso alguém mais saiba, por favor envie para masterjilles@gmail.com

Agradeço a colaboração de todos.
Att,
Jilles Moraes Cardoso

Marcos Abadi disse...

Olá Jilles,
também tive dificuldade para colocar o windows 7 do domínio, tanto na versão 3.4 como na 3.5 porque eu estava tentando sem fazer as alterações de LmCompatibilityLevel no registro. Mas depois que fiz funcionou normal.

Jilles Moraes Cardoso disse...

Seria possível alguém que tenha feito a instalação do samba 3.5.4 me enviar o smb.conf, pois acho que posso estar pecando em algo por ali.

Agradeço a atenção de todos.

Jilles Moraes Cardoso disse...

Marcos, obrigado pela rapidez na resposta.
Já fiz a configuração do de compatibilidade no registro como você mesmo disse.
Mas mesmo assim não obtive sucesso.
Seria possível que você ou alguém que tenha feito a configuração com o samba 3.5.4, me envie o smb.conf? Acho que posso estar pecando em algo nele.

Agradeço a colaboração de todos.

José Maria disse...

Olá Sandro! Estou com um servidor PDC CentOS 5.5 rodando samba 3.3 com openldap 2.4. Estou querendo configurar outro servidor com samba e criar compartilhamentos para acessar pela rede. Você sabe me dizer como eu faço para este segundo servidor buscar os usuários no ldap do servidor PDC? Coloquei esses parâmetros no arquivo smb.conf do meu servidor mas não funcionou, onde 10.21.0.5 é o ip do servidor PDC que tem o openldap instalado.
passdb backend = ldapsam:ldap://10.21.0.5
ldap suffix = dc=prt,dc=lan
ldap machine suffix = ou=Computers
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=prt,dc=lan
idmap backend = ldap:ldap://10.21.0.5
idmap uid = 10000-20000
idmap gid = 10000-20000
ldap passwd sync = Yes
ldap ssl = No
idmap cache time = 900

Obrigado pela ajuda.

José Maria

Marcos Abadi disse...

Olá José,
me diz uma coisa, esse segundo servidor vai estar no mesmo domínio que o PDC?

Nilton disse...

Olá Marcos Abaldi,
Tenho um servidor centos com samba e squid que se comunica com domínio e AD do Windows server 2003. Este server 2003 foi removido e colocado um 2008 R2 no lugar, porém o samba não autenticu mais no domínio. Vou atualizar o samba para a versão 3.5.6 e acredito que vai resolver, mas gostaria de não perder as configurações atuais. É possível?
Desde já agradeço sua atenção.
Abraço,
Nilton Júnior

NJR_ZOOM disse...

Olá Marcos, veja se pode me ajudar:
Estou com problema para autenticar o 2008 R2 no Squid, fica pedindo usuário e senha para navegar e não autentica.
O ambiente era o seguinte: Server 2003 DC com AD, CentOS 5.4 e Samba 3.0.33 com squid. O Squid libera internet para os usuários autenticados no domínio conforme os grupos no AD (Liberados, Restritos e Normais). Tudo funcionava...
Removi o servidor 2003, e instalei um 2008 R2 com AD novo, e começou o problema. Atualizei o CentOS para versão 5.5 e o Samba para 3.5.6. Agora consegui fazer o samba entrar no domínio e consigo visualizar ele no AD. Consigo listar usuários e grupos pelo winbind normal. Mas o problema continua. Já baixei o nível de autenticação LAN Manager para LM e NTLM - usar segurança da sessão NTLMv2, se negociada e também não resolveu.
Acredito que tenho que alterar algo no smb.conf ou no squid.conf.
Tens alguma sugestão?
Obrigado.
Nilton Pedro

Marcos Abadi disse...

Olá amigo,
ainda não tive a necessidade de trabalhar com o samba integrado ao windows 2008. Vou fazer algumas pesquisas e qualquer novidade posto no blog.

Abraço.

Jorge M. Souza Jr disse...

Opa, beleza Marcos Abadi? Sei que já tem um tempo esse seu post, mas é muito bacana. Eu utilizo o CentOS 5.7 com samba 3.0.33-3.29.el5_7.4. Eu preciso atualizar para versão 3.4.15-42.el5, que tem no repositório sernet. Atualmente utilizo o tdbsam na versão 3.0 mesmo. Tem alguma outra modificação que preciso fazer para atualizar? Obrigado

Marcos Abadi disse...

Olá Jorge,
não precisa fazer nenhuma alteração. Já atualizei servidores com ldap e tdbsam sem mexer em nada no arquivo de configuração. Você só tem que seguir o que está no artigo.

Abraços.