Atualizando o Samba 4 (Active Directory) para versão recente

Publicado por Fagner Silva do Nascimento em 17/03/2014

[ Hits: 23.181 ]

 


Atualizando o Samba 4 (Active Directory) para versão recente



Aproveitando um comentário deixado em um de meus posts, no qual foi dito sobre o que seria um defeito do Samba 4 compilado, venho agora trazer uma solução simples e funcional, para quem já tem o Samba 4 em produção e deseja atualizá-lo para as versões recentes.

Mãos à obra!

Obter uma versão atual do Samba: eu vou pegar a versão estável em 19/12/2013, a 4.1.3.

Vou levar em consideração, que foi utilizado a versão compilada do Samba, não um binário de um repositório.

Eu vou fazer uma atualização da versão 4.0.9 para a 4.1.3:

# cd /usr/src && wget -c http://ftp.samba.org/pub/samba/stable/samba-4.1.5.tar.gz

Vamos desempacotar o Samba:

# tar -xzvf samba-4.1.3.tar.gz

Acesse os fontes do Samba:

# cd /usr/src/samba-4.1.3

Mande checar os pré-requisitos:

# ./configure --enable-debug --enable-selftest

Vamos compilar ele:

# make

Pare o Samba:

Obs.: se estiver utilizando com o bind_dlz ou bind_flat e ntp, precisamos pará-los também.

Se for Debian:

# /etc/init.d/samba stop
# /etc/init.d/bind9 stop
# /etc/init.d/ntp stop


Se for padrão Red Hat/CentOS:

# /etc/init.d/samba stop
# /etc/init.d/named stop
# /etc/init.d/ntpd stop


Fazer um backup da base do Samba:

Vou levar em consideração que o provisionamento do seu Samba, está em /usr/local/samba:

# tar -cJvf /srv/samba.tar.xz /usr/local/samba

Instalar o Samba 4.1.3:

# cd /usr/src/samba-4.1.3 && make install

Fazer algumas checagens e correções da base de dados do Samba:

# samba-tool dbcheck --cross-ncs --fix --yes
# samba-tool dbcheck --reindex
# samba-tool dbcheck --reset-well-known-acls --fix --yes
# samba-tool dbcheck --force-modules


Ajustar as ACLs do sysvol:

# samba-tool ntacl sysvolreset

Ajustar as permissões dos diretório, caso esteja utilizando bind_dlz ou bind_flat:

Para Debian, devemos fazer da seguinte forma:

# chown -R root:bind /usr/local/samba/private
# chmod -R 750 /usr/local/samba/private
# chmod 640 /usr/local/samba/private/named.conf
# chmod 640 /usr/local/samba/private/dns.keytab
# chmod 770 -R /usr/local/samba/private/dns
# chmod -R 700 /usr/local/samba/private/smbd.tmp
# chmod -R 0600 /usr/local/samba/private/tls/


Para Red Hat/CentOS, devemos fazer da seguinte forma:

# chown -R root:named /usr/local/samba/private
# chmod -R 750 /usr/local/samba/private
# chmod 640 /usr/local/samba/private/named.conf
# chmod 640 /usr/local/samba/private/dns.keytab
# chmod 770 -R /usr/local/samba/private/dns
# chmod -R 700 /usr/local/samba/private/smbd.tmp
# chmod -R 0600 /usr/local/samba/private/tls/


Subir os serviços novamente:

Se for Debian:

# /etc/init.d/samba start
# /etc/init.d/bind9 start
# /etc/init.d/ntp start


Se for Red Hat/CentOS:

# /etc/init.d/samba start
# /etc/init.d/named start
# /etc/init.d/ntpd start


Atualizar os registros de DNS, caso esteja utilizando o bind_dlz ou bind_flat:

# samba_dnsupdate --verbose --all-names

Verificar se o Samba está funcionando:

# ps aux | egrep samba

Deve retornar:

root            5352    0.0    2.1  512128  44496  ?                Ss      09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5370    0.0    1.5  512128  32268  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5371    0.0    1.8  516720  38468  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5372    0.0    1.6  516280  34716  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5373    0.0    2.2  473624  46256  ?                Ss      09:02      0:00  /usr/local/samba/sbin/smbd  -D  --option=server  role  check:inhibit=yes  --foreground
root            5374    0.0    1.5  512128  32128  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5375    0.0    1.8  512548  37140  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5376    0.0    1.6  512128  34048  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5377    0.0    1.7  516280  36792  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5378    0.0    1.6  512128  33784  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5379    0.0    1.6  514956  33616  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5380    0.0    1.6  512128  33424  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5381    0.0    1.9  512128  40688  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5382    0.0    1.6  512128  33328  ?                S        09:02      0:00  /usr/local/samba/sbin/samba  -D
root            5385    0.0    1.5  473632  32676  ?                S        09:02      0:00  /usr/local/samba/sbin/smbd  -D  --option=server  role  check:inhibit=yes  --foreground
root            5586  54.0    2.6  480996  54956  ?                S        09:22      0:00  python  /usr/local/samba/sbin/samba_dnsupdate
root            5589    0.0    0.0      8084      896  pts/0        S+      09:22      0:00  egrep  --color=auto  samba


Como podemos notar, o serviço está funcionando.

Verificar a versão do nosso Samba:

# smbclient --version
Version  4.1.3

Verificar se os compartilhamentos estão funcionando:

# smbclient -L localhost -U%
Domain=[LAB]  OS=[Unix]  Server=[Samba  4.1.3]

        Sharename              Type             Comment
        ---------              ----             -------
        netlogon                 Disk
        sysvol                    Disk
        profiles                Disk
        IPC$                         IPC              IPC  Service  (Samba  4.1.3)
Domain=[LAB]  OS=[Unix]  Server=[Samba  4.1.3]

      Server                               Comment
        ---------                         -------

       Workgroup                         Master
        ---------                         -------


Consultar se a relação de confiança está acontecendo tudo OK:

# wbinfo -t
checking  the  trust  secret  for  domain  LAB  via  RPC  calls  succeeded

Consultar os usuários:

# wbinfo -u
Administrator
Guest
krbtgt
dns-samba
douglas.santos


Listar os grupos:

# wbinfo -g
Enterprise  Read-Only  Domain  Controllers
Domain  Admins
Domain  Users
Domain  Guests
Domain  Computers
Domain  Controllers
Schema  Admins
Enterprise  Admins
Group  Policy  Creator  Owners
Read-Only  Domain  Controllers
DnsUpdateProxy
ti-admin



Prontinho. Samba atualizado!

Outras dicas deste autor

Instalando e promovendo o Samba 4 como Domain Controller no CentOS 6.4 Minimal

Sarg no CentOS 6 - Configuração com suporte a gráficos

BIND 9 DNS no Debian Squeeze/Wheezy e Ubuntu 12/13 (Compativel com Active Directory no Windows Server)

Abrindo portas do Firewall (IPtables) para Samba 4 (Active Directory)

Migrando contatos e e-mails do Google Apps para servidor Zimbra

Leitura recomendada

Yum, uma maneira de manter seu RedHat atualizado

Transferindo arquivos do Windows para Linux

Criando Zona Básica no CloudStack 4.12

Alterar resolução de tela pelo Xorg

Libs C realmente alternativos

  

Comentários
[1] Comentário enviado por serafim.fabio em 19/03/2014 - 18:05h

Muito legal seu tutorial parabens

[2] Comentário enviado por igmotta em 23/02/2015 - 10:56h

Obrigado pelo artigo.

Você já passou por isso após atualizar o samba 4?

root@SERVER-AD:~/samba-4.1.17# /usr/local/samba/bin/samba-tool dbcheck --cross-ncs --fix --yes
ERROR(<type 'exceptions.ValueError'>): uncaught exception - unable to parse dn string
File "/usr/local/samba/lib/python2.7/site-packages/samba/netcmd/__init__.py", line 175, in _run
return self.run(*args, **kwargs)
File "/usr/local/samba/lib/python2.7/site-packages/samba/netcmd/dbcheck.py", line 120, in run
reset_well_known_acls=reset_well_known_acls)
File "/usr/local/samba/lib/python2.7/site-packages/samba/dbchecker.py", line 74, in __init__
self.infrastructure_dn = ldb.Dn(samdb, "CN=Infrastructure," + samdb.domain_dn())

Se puder ajudar lhe agradeço, pois já tentei atualizar outras vezes e deu erro e tive de refazer o AD.

Obrigado.

[3] Comentário enviado por rengaf1 em 23/02/2015 - 21:59h


[2] Comentário enviado por igmotta em 23/02/2015 - 10:56h

Obrigado pelo artigo.

Você já passou por isso após atualizar o samba 4?

root@SERVER-AD:~/samba-4.1.17# /usr/local/samba/bin/samba-tool dbcheck --cross-ncs --fix --yes
ERROR(&lt;type 'exceptions.ValueError'&gt;): uncaught exception - unable to parse dn string
File "/usr/local/samba/lib/python2.7/site-packages/samba/netcmd/__init__.py", line 175, in _run
return self.run(*args, **kwargs)
File "/usr/local/samba/lib/python2.7/site-packages/samba/netcmd/dbcheck.py", line 120, in run
reset_well_known_acls=reset_well_known_acls)
File "/usr/local/samba/lib/python2.7/site-packages/samba/dbchecker.py", line 74, in __init__
self.infrastructure_dn = ldb.Dn(samdb, "CN=Infrastructure," + samdb.domain_dn())

Se puder ajudar lhe agradeço, pois já tentei atualizar outras vezes e deu erro e tive de refazer o AD.

Obrigado.



Boa noite Igor.. desculpe a demora...

Mais vamos lá.. tu ta fazendo o upgrade de versão exatamente do samba ?

as mudanças são bem grandes de uma versão 4.0... por exemplo ... para a 4.1.... então pra dar certo terá que fazer versão por versão 4.0.1 para a 4.0.2 e assim por diante até chegar na versão mais atual.

qualquer duvida estamos aí.

[4] Comentário enviado por igmotta em 25/02/2015 - 09:47h


Valeu amigo por responder.
Estou atualizando a versão 4.1.16 para a versão 4.1.17.
Fiz essa atualização nesse cliente devido o fato de ser uma instalação limpa, sem nada da base de dados do samba, pois o unico usuário é administrator.
Quero atualizar de outros clientes, mas já passei por caso de ter de refazer todo AD.

[5] Comentário enviado por wagneralves em 20/09/2015 - 19:27h


Show de bola, fiz até downgrade e funcionou.

[6] Comentário enviado por vitok4 em 13/01/2016 - 16:00h

Muito bom!, consegui fazer a instalação em um Lab virtual perfeitamente, porém, na hora de criar GPO's para desativar a complexidade das senhas, não obtenho sucesso, tenho que desativar para todos por linha de comando. Alguém teria sugestão do que fazer?

[7] Comentário enviado por rengaf1 em 06/06/2016 - 17:59h


[6] Comentário enviado por vitok4 em 13/01/2016 - 16:00h

Muito bom!, consegui fazer a instalação em um Lab virtual perfeitamente, porém, na hora de criar GPO's para desativar a complexidade das senhas, não obtenho sucesso, tenho que desativar para todos por linha de comando. Alguém teria sugestão do que fazer?


boa tarde vitok4 desculpe a demora em responder.. muito corrido aqui . mas segue abaixo os comandos

Desativar a verificação de complexidade de senha (por padrão a senha de qualquer usuário deve ter pelo menos três dos quatro ítens: Maiúsculas, Minusculas, Números, Simbolos):
# /usr/local/samba/bin/samba-tool domain passwordsettings set --complexity=off
Mudar o tamanho mínimo da senha (definindo como 4):
# /usr/local/samba/bin/samba-tool domain passwordsettings set --min-pwd-length=4
Mudar o prazo mínimo em que o usuário pode mudar a senha (usuário só vai poder mudar a senha após 4 dias da última mudança)
# /usr/local/samba/bin/samba-tool domain passwordsettings set --min-pwd-age=4
Mudar o tempo de vida máximo da senha do usuário (usuário terá que mudar a senha após 30 dias da última mudança)
# /usr/local/samba/bin/samba-tool domain passwordsettings set --max-pwd-age=30
Mudar o histórico de senhas que impede que o usuário utilize uma senha repetida (usuário não vai poder repetir nenhuma das últimas 5 senhas)
# /usr/local/samba/bin/samba-tool domain passwordsettings set --history-length=5



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts