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