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.512 ]

Por: Igor F K em 17/09/2014


Migração/adequação do OpenlDAP samba3 para OpenlDAP samba4



Copie alguns dos arquivos obtidos do samba3 para os devidos diretórios do samba4pdc:

# cp -rf /etc/ldap /etc/ldap.orig
# cp -rf /root/ldap_bk/etc/ldap/* /etc/ldap/.

Adicione as entradas do arquivo ldif do samba3 no OpenLDAP do samba4pdc:

# slapadd -l /root/ldap_bk/ldap.ldif

Configure as devidas permissões para os arquivos do OpenLDAP:

# chown -R openldap:openldap /etc/ldap/slapd.conf
# chown -R openldap:openldap /var/lib/ldap

Inicie o OpenLDAP:

# /etc/init.d/slapd start

Conecte-se ao OpenLDAP com alguma ferramenta (Apache DS, LDAP Admin, JXplorer, Luma, LDAP Explorer Tool etc.) e faça as devidas alterações/adequações.

Algumas adequações necessárias à base do OpenLDAP:
  • Nas contas dos computadores, sambaAcctFlags deve ser W, verifique com seu editor LDAP.
  • Somente usuários Samba que possuem um Samba SID são devidamente migrados.
  • Remova ou altere (caso saiba qual o próximo SID) SIDs repetidos.

Liste os SIDs repetidos com o comando:

# slapcat | grep sambaSID | sort | uniq -d

No caso de remoção prefira remover a conta do grupo de computadores se possível. (Recriar uma conta de computador gera menos ruído no ambiente de trabalho).
  • Remova, ou renomeie, usuários/grupos com mesmo nome.

Outras adequações são citadas na Wiki do Samba 4:
O comando de migração, visto em breve, exibirá qualquer erro que encontrar e tentará detalhá-lo um pouco para seu tratamento.

Instalação do Samba 4 via fontes

Obtenha os fontes do Samba estável:

# cd
# wget http://www.samba.org/samba/ftp/samba-latest.tar.gz
# unzip samba-latest.tar.gz

Dentro da pasta extraída do tarball do Samba, configure-o com as seguintes opções necessárias para um controlador de domínio regular.

(A ideia é explicitar o que utilizaremos no mínimo).

# cd /root/samba-4.1.12
# ./configure --with-winbind --with-ads --with-ldap --with-pam_smbpass --with-quotas --with-utmp --enable-pthreadpool --with-acl-support --with-aio-support -- with-fam --enable-selftest --enable-cups --enable-avahi
# make
# make quicktest

Ao passar nos testes sem erros ("finished successfully") execute:

# make install
# cd
# hash -r

Edite o arquivo /etc/profile:

# cp /etc/profile /etc/profile.orig
# vi /etc/profile

Onde se encontram as linhas:

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH


Substitua por:

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
PATH="/usr/local/samba/bin:/usr/local/samba/sbin:${PATH}"
export PATH

Aplique a alteração na sessão atual:

# source /etc/profile

Migração do OpenLDAP para o LDAP interno do Samba 4

Migre a base do OpenLDAP para o LDAP interno do Samba 4:

# /usr/local/samba/bin/samba-tool domain classicupgrade --dbdir=/root/ldap_bk/var/lib/samba/ --use-xattrs=yes --dns-backend=BIND9_DLZ --realm=domain.com.br /root/ldap_bk/etc/samba/smb.conf

Caso queira rodar novamente (se necessário, reconecte-se ao OpenLDAP para outras alterações com seu editor LDAP escolhido):

# rm -f /usr/local/samba/etc/smb.conf
# rm -rf /usr/local/samba/private/*

Após migrar com sucesso pare o serviço do OpenLDAP:

# /etc/init.d/slapd stop

Configurações do NTP

Edite o arquivo /etc/ntp.conf para sincronizar corretamente os horários entre servidor e estações:

# cd
# cp /etc/ntp.conf /etc/ntp.conf.orig
# vi /etc/ntp.conf

server 127.127.1.0
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server ntp1.rnp.br iburst
server gps.ntp.br iburst
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1

Configurações do DHCP

Altere o arquivo de configuração /etc/dhcp/dhcpd.conf para informar corretamente às estações os dados da rede:

# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
# vi /etc/dhcp/dhcpd.conf

server-name "samba4pdc.domain.com.br";
option domain-name "domain.com.br";
option domain-name-servers 172.17.0.4;
ignore client-updates;
default-lease-time 432000;
max-lease-time 604800;
authoritative;
zone DOMAIN.COM.BR. {
    primary localhost;
}
zone 17.172.in-addr.arpa. {
    primary localhost;
}
subnet 172.17.0.0 netmask 255.255.0.0 {
    range 172.17.100.2 172.17.220.250;
    //Endereço IP do seu roteador com a internet
    option routers 172.17.0.4;
    option broadcast-address 172.17.255.255;
    option domain-name-servers 172.17.0.4;
    option domain-name "domain.com.br";
}

host web {
    hardware ethernet 00:0a:0b:12:34:56;
    fixed-address 172.17.0.21;
}

...

Configurações do BIND e adequações residuais

Edite o arquivo /etc/bind/named.conf:

# cp /etc/bind/named.conf /etc/bind/named.conf.orig
# vi /etc/bind/named.conf

acl local-domain { 172.17.0.0/16; };
acl interfaces { 172.17.0.4; 127.0.0.1; };
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";

Edite o arquivo /etc/bind/named.conf.options:

# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.orig
# vi /etc/bind/named.conf.options

options {
    directory    "/var/cache/bind";
    notify           no;
    recursion        yes;
    minimal-responses    yes;
    provide-ixfr         yes;
    request-ixfr         yes;
    tkey-gssapi-keytab  "/usr/local/samba/private/dns.keytab";
    listen-on { interfaces; };
};

Edite o arquivo /etc/bind/named.conf.local:

# cp /etc/bind/named.conf.local /etc/bind/named.conf.local.orig
# vi /etc/bind/named.conf.local

//DNS externos os quais confia
acl slaves { 200.201.220.1; 200.205.180.2; };
//A view interna não possui zonas, elas serão populadas pelo DLZ
view "internal" {
    match-clients { local-domain; };
    allow-update { localhost; local-domain; };
    allow-query { localhost; local-domain; };
    include "/usr/local/samba/private/named.conf";
};
//View externa caso precise
view "external" {
    allow-query { !local-domain; any; };
    recursion no;
    additional-from-auth no;
    additional-from-cache no;
    zone "domain.com.br" {
        notify yes;
        type master;
        file "/etc/bind/zones/externa/db.domain.com.br";
        allow-transfer { slaves; };
    };
    zone "0-254.202.201.200.in-addr.arpa" {
        notify yes;
        type master;
        file "/etc/bind/zones/externa/db.200.201.202.0-254";
        allow-transfer { slaves; };
    };
};

Crie a pasta com os arquivos das zonas:

# mkdir -p /etc/bind/zones/externa
# vi /etc/bind/zones/externa/db.domain.com.br

$TTL    3600
$ORIGIN domain.com.br.
@       IN      SOA      samba4pdc.domain.com.br. root.domain.com.br. (
                                 2014091504
                                 1h
                                 1h
                                 2w
                                 1h)
           IN      NS       samba4pdc.domain.com.br.
           IN      A       200.201.202.61
web    IN      A       200.201.202.55

# vi /etc/bind/zones/externa/db.200.201.202.0-254

$TTL    300
$ORIGIN 0-254.202.201.200.in-addr.arpa.
@       IN      SOA      samba4pdc.domain.com.br. root.domain.com.br. (
                                  2014091503
                                  1200
                                  120
                                  2419200
                                  86400 )
          IN      NS       samba4pdc.domain.com.br.
55      IN      PTR     web.domain.com.br.

Faça um link dos arquivos esperados pelo Kerberos do Samba:

# ln -s /usr/local/samba/private/krb5.conf /etc/.
# ln -s /usr/local/samba/private/dns.keytab /etc/krb5.keytab

Inicie os serviços devidamente configurados:

# /etc/init.d/bind9 start
# /etc/init.d/isc-dhcp-server start
# /etc/init.d/ntp start

Página anterior     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

Instalando Samba 4 com Domínio no CentOS 7

Bloqueando a gravação de arquivos no Samba por extensão

Micro curso Samba

Logando o Windows XP no Samba

Samba 4 - Compartilhamento de Arquivos

  
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