Migração de Samba 3 + LDAP para Samba 4 + NTP + BIND 9.8 + DHCP

Migração de um servidor de arquivos e diretórios, Debian, Samba 3 com OpenLDAP para um novo controlador de domínio, Debian, Samba 4 com todos os requisitos para a devida operação em um ambiente Windows, gerenciamento do domínio, GPOs, associações e atualizações dinâmicas do DNS com NTP, BIND 9 e DHCP.

[ Hits: 20.564 ]

Por: Igor F K em 17/09/2014


Detalhes do roteiro



Algumas especificações do servidor Samba 4:
  • OS: Debian 7 amd64
  • Hostname: samba4pdc
  • Domínio: domain.com.br
  • Rede: 172.17.0.0/16
  • IP Fixo: 172.17.0.4

Basicamente a ideia é a seguinte:
  • Com o host samba4pdc na LAN do samba3 obteremos os arquivos necessários a migração, via scp, entre samba3 e samba4pdc.
  • Colocaremos o host samba4pdc em outra LAN onde o adequaremos a se tornar um PDC Samba 4.
  • A migração da base OpenLDAP será assim: base obtida do samba3 -> OpenLDAP no samba4pdc -> LDAP interno do Samba 4 no samba4pdc.
  • Após testes, volta do samba4pdc à LAN do samba3, acompanhado da desativação do samba3. (Os dois hosts não podem existir ativamente na mesma LAN).

Dados marcados em negrito devem ser alterados para as especificidades de seu ambiente, de sua rede, os demais verifique com cautela quaisquer alterações.

Neste roteiro edito os arquivos com o vi, se quiser altere para seu editor favorito, ed, Vim, Nano etc.

Observações:
  • Espero que o leitor tenha o mínimo de conhecimento de utilização do shell: perceba que comandos são apenas em uma linha; aspas simples, duplas e invertidas, pontos, capitalizações, ordens, etc. importam muito; saiba o que deve, e o que não deve estar presente em um arquivo de configuração; etc.
  • Perceba que as versões dos programas mudam com o tempo, fique atento a diretórios e arquivos que referenciam alguma versão e faça as devidas adequações.
  • Sei que algumas configurações, parâmetros e valores apresentados aqui são padrões ou automaticamente escolhidos, desejo explicitar o que, como e onde os passos citados são efetuados.

Obtenção dos dados necessários para a migração

No servidor samba3 copie os arquivos necessários para a migração e coloque-os em alguma pasta, no caso /root/ldap_bk:

# mkdir -p /root/ldap_bk/etc
# mkdir -p /root/ldap_bk/var/lib

Obtenha a base do ldap:

# /etc/init.d/slapd stop
# slapcat -o ldif-wrap=no > /root/ldap_bk/ldap.ldif

Caso utilize uma versão antiga do OpenLDAP execute:

# slapcat > /root/ldap_bk/ldap.ldif

No caso acima retire as quebras de linha, se existirem, com o comando:

# sed -i 's/\n\ //g' /root/ldap_bk/ldap.ldif

Continue o serviço do OpenLDAP:

# /etc/init.d/slapd start

Obtenha o arquivo de configuração do Samba e seus TDBs:

# cp -rf /etc/samba /root/ldap_bk/etc/.
# cp -rf /var/lib/samba /root/ldap_bk/var/lib/.
# cp -rf /etc/ldap /root/ldap_bk/etc/.

Verifique se os arquivos TDB estão OK:

# find /root/ldap_bk/var/lib/samba/ -name "*tdb" | xargs -I {} tdbtool {} check

Transfira os arquivos para o futuro novo servidor:

# scp -r /root/ldap_bk root@samba4pdc:/root/.

Coloque o servidor samba4pdc em outra LAN, isolado da rede do samba3.
Lembre de manter o IP da interface do samba4pdc como fixo.

Adequações ao sistema de arquivos

A partir deste ponto operaremos apenas no host samba4pdc.

Logue, como root, no samba4pdc remota ou localmente.

Atualize a árvore do APT e os pacotes instalados:

# apt-get update && apt-get upgrade

Caso utilize ext3 ou ext4 como sistema de arquivos, altere a linha de montagem da partição, no arquivo /etc/fstab, onde o Samba e pastas servidas por ele residirão, com os seguintes dados:

# cp /etc/fstab /etc/fstab.orig
# vi /etc/fstab

No caso de ext3:

/dev/rd/c0d0p1 /      ext3   user_xattr,acl,barrier=1   1 1
/dev/rd/c1d0p1 /home  ext3   user_xattr,acl,barrier=1   1 1
...

No caso de ext4:

UUID=... /               ext4   user_xattr,acl,barrier=1   1 1
UUID=...          /home  ext4   user_xattr,acl,barrier=1   1 1
...

Aplique as alterações nas partições alteradas:

# mount -o remount /
# mount -o remount /home

Caso utilize XFS mantenha o arquivo /etc/fstab inalterado.

Edite o arquivo /etc/hosts com os seguintes hosts:

# cp /etc/hosts /etc/hosts.orig
# vi /etc/hosts

127.0.0.1   localhost
172.17.0.4  samba4pdc.domain.com.br samba4pdc

Edite o arquivo /etc/resolv.conf para conter apenas as linhas:

# cp /etc/resolv.conf /etc/resolv.conf.orig
# vi /etc/resolv.conf

search domain.com.br
domain samba4pdc.domain.com.br
nameserver 172.17.0.4

Instalação/compilação de pacotes necessários

Instale os pacotes necessários:

Obs.: se perguntado para definir endereços ou senhas, utilize os valores padrão ou deixe-os vazios.

# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl attr ntp cups isc-dhcp-server slapd libfam-dev debian-builder libbind- dev

Pare os serviços novos:

# /etc/init.d/ntp stop
# /etc/init.d/isc-dhcp-server stop
# /etc/init.d/cups stop
# /etc/init.d/slapd stop

Copie o fonte do BIND 9.8:

# apt-get source bind9

Obtenha as dependências do BIND 9.8 para compilá-lo em breve:

# apt-get build-dep bind9

Edite o arquivo de configuração /root/bind9-9.8.4.dfsg.P1/debian/rules:

# vi /root/bind9-9.8.4.dfsg.P1/debian/rules

Na linha das opções de configuração, onde se lê:

./configure --prefix=/usr \
        --mandir=\$${prefix}/share/man \
        --infodir=\$${prefix}/share/info \
        --sysconfdir=/etc/bind \
        --localstatedir=/var \
        --enable-threads \


Altere para:

./configure --prefix=/usr \
        --mandir=\$${prefix}/share/man \
        --infodir=\$${prefix}/share/info \
        --sysconfdir=/etc/bind \
        --localstatedir=/var \
        --enable-threads \
        --with-dlopen=yes \
        --with-dlz-filesystem=yes \
        --with-dlz-stub=yes \

Compile o pacote com as alterações:

# cd /root/bind9-9.8.4.dfsg.P1/
# debuild -us -uc
# cd
# hash -r

Instale o pacote:

# dpkg -i /root/bind9utils_9.8.4.dfsg.P1-6+nmu2+deb7u1_amd64.deb
# dpkg -i /root/bind9_9.8.4.dfsg.P1-6+nmu2+deb7u1_amd64.deb

Pare o serviço do BIND:

# /etc/init.d/bind9 stop

    Próxima página

Páginas do artigo
   1. Detalhes do roteiro
   2. Migração/adequação do OpenlDAP samba3 para OpenlDAP samba4
   3. Script de inicialização do Samba 4
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Configurando Java e Mozilla no Debian Sarge

Ubuntu 12.04 autenticando no Active Directory com Samba/Kerberos/Winbind

Gateway com autenticação pelo Samba

Integrando Servidores Linux no Active Directory com Samba

Compilando e Utilizando o Samba4

  
Comentários
[1] Comentário enviado por darkzad em 18/09/2014 - 08:25h

Tem relato de algum problema com DNS nativo do samba?

Ótimo post.

[2] Comentário enviado por igorino em 18/09/2014 - 12:44h

O uso do DNS nativo depende do ânimo do administrador: alguns não gostam de deixar o Samba no cargo de manter as entradas dinâmicas no DNS, dai podem configurar dois DNS; o interno para o funcionamento básico do AD DC e outro DDNS tradicional (BIND) para os hosts e outras funções avançadas. Outros admins, meu caso e o do roteiro, preferem apenas um, tradicional, gerenciando as zonas. Talvez um problema do DNS nativo do Samba seja a falta de delimitação de views, um modelo do projeto talvez? Tenho que ver nas listas "samba-dev" como está essa situação, dai vem outro detalhe, o BIND já é bem desenvolvido ao contrário do interno do Samba, mas nada que o defina como problemático, jamais.

[3] Comentário enviado por Elisa_SJ em 30/10/2015 - 08:55h


Tenho um servidor DNS com samba3 compartilhando documentos na rede, gostaria de rodar em outro servidor na mesma rede o samba4 como PDC, isso traria algum tipo de conflito?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts