Crie o arquivo de inicialização do Samba 4, este arquivo foi adequado da
Wiki do Samba 4:
# vi /etc/init.d/samba-ad-dc
#! /bin/sh
### BEGIN INIT INFO
# Provides: samba-ad-dc
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start Samba daemons for the AD DC
### END INIT INFO
PIDDIR=/var/run/samba
SAMBAPID=$PIDDIR/samba.pid
unset TMPDIR
test -x /usr/local/samba/sbin/samba -a -r /usr/local/samba/etc/smb.conf || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
SERVER_ROLE=`samba-tool testparm --parameter-name="server role" 2>/dev/null | tail
-1`
if [ "$SERVER_ROLE" != "active directory domain controller" ]; then
exit 0
fi
if init_is_upstart; then
exit 1
fi
KEYFILE=/var/lib/samba/private/tls/key.pem
if [ -e $KEYFILE ]
then
KEYPERMS=`stat -c %a $KEYFILE`
if [ "$KEYPERMS" != "600" ]
then
echo "wrong permission on $KEYFILE, must be 600"
echo "Removing all tls .pem files will cause an auto-regeneration with the correct permissions."
exit 1
fi
fi
log_daemon_msg "Starting Samba AD DC daemon" "samba"
install -o root -g root -m 755 -d $PIDDIR
if ! start-stop-daemon --start --quiet --oknodo --exec /usr/local/samba/sbin/samba -- -D; then
log_end_msg 1
exit 1
fi
log_end_msg 0
;;
stop)
if init_is_upstart; then
exit 0
fi
log_daemon_msg "Stopping Samba AD DC daemon" "samba"
start-stop-daemon --stop --quiet --pidfile $SAMBAPID
sleep 1
if [ -f $SAMBAPID ] && ! ps h `cat $SAMBAPID` > /dev/null
then
rm -f $SAMBAPID
fi
log_end_msg 0
;;
restart|force-reload)
if init_is_upstart; then
exit 1
fi
$0 stop
sleep 1
$0 start
;;
status)
status_of_proc -p $SAMBAPID /usr/local/samba/sbin/samba samba
exit $?
;;
*)
echo "Usage: /etc/init.d/samba-ad-dc {start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit 0
Habilite a devida execução deste script:
# chmod 755 /etc/init.d/samba-ad-dc
# update-rc.d samba-ad-dc defaults
Testes e finalização
Inicie o Samba 4 em modo para testes (use Ctrl + c para sair):
# samba -i -M single -d 9
Testes do DNS:
Em outro terminal entre com:
# host -t SRV _ldap._tcp.domain.com.br.
Deve retornar:
_ldap._tcp.domain.com.br has SRV record 0 100 389 samba4pdc.domain.com.br.
# host -t SRV _kerberos._udp.domain.com.br.
Deve retornar:
_kerberos._udp.domain.com.br has SRV record 0 100 88 samba4pdc.domain.com.br.
# host -t A samba4pdc.domain.com.br.
Deve retornar:
samba4pdc.domain.com.br has address 172.17.0.4
Testes do Kerberos:
# kinit administrator@DOMAIN.COM.BR
# klist
Deve retornar:
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@DOMAIN.COM.BR
Valid starting Expires Service principal
09/15/14 02:20:41 09/15/14 12:20:41 krbtgt/DOMAIN.COM.BR@DOMAIN.COM.BR
renew until 09/16/14 02:20:39
Demais testes também estão presentes na
Wiki do Samba.
Na LAN onde está o samba4pdc, insira alguma máquina no domínio (obtido pelo parâmetro "workgroup" do arquivo /usr/local/samba/etc/smb.conf) utilizando a conta
administrator (a senha pode ser refeita com o comando: "samba-tool user setpassword Administrator"). Lembre-se de que, a inicialização do Samba daquela forma,
para testes, o torna bem lento, justamente até para acompanhar as saídas do serviço, ou seja, quando iniciado, a adição não funciona imediatamente, espere um
pouco a execução do serviço.
Instale a ferramenta
RSAT para Windows 7 ou as ferramentas
Adminpak e
SupportTools para Windows XP, faça alguns testes com GPOs,
administração do domínio, ADS etc. aproveite e monitore a saída do Samba.
Após testes bem-sucedidos e estar satisfeito com os resultados, transfira o host samba4pdc para a LAN do antigo samba3.
Para isso, inicialmente, desligue/remova o samba3 da LAN dele.
Desinstale o OpenLDAP do samba4pdc:
# apt-get purge slapd ldap-utils
Caso necessário, readeque os endereços IP do samba4pdc para a LAN onde estava o samba3.
Mova o samba4pdc para aquela LAN e inicie o serviço normalmente:
# /etc/init.d/samba-ad-dc start