Nesta dica, compartilho os detalhes da implementação do
Samba 4 como controlador de domínio primário em sua rede local.
Desde já, agradeço ao colega
Bruno Rigamont que compartilhou essa informação comigo, no entanto, fiz algumas adaptações para usar no
CentOS.
Aceito críticas e sugestões.
Configurações iniciais
Ambiente:
- S.O.: CentOS x64 - Minimal
- Servidores:
- DC01 - Master
- Domínio (realm): contoso.local
Desativando
IPtables e o
SELinux:
IPtables:
# chkconfig iptables off
# chkconfig ip6tables off
SELinux:
# vi /etc/selinux/config
SELINUX=disabled
Adicionando repositórios e atualizando sistema:
32 bits:
# rpm -Uvh http://fedora.uib.no/epel/6/i386/epel-release-6-8.noarch.rpm
# yum clean all && yum -y update
64 bits:
# rpm -Uvh http://fedora.uib.no/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum clean all && yum -y update
Instalando pacotes necessários:
# yum install gcc libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig krb5-workstation zlib-devel setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemanage-python setools-libs-python setools-libs popt-devel libpcap-devel sqlite-devel libidn-devel libxml2-devel libacl-devel libsepol-devel libattr-devel keyutils-libs-devel cyrus-sasl-devel cups-devel perl wget ntpdate system-config-network-tui bind-utils -y
Ajustando a hora e data do servidor:
# /usr/sbin/ntpdate ntp.cais.rnp.br
Agendando o ntpdate:
# crontab -e
Adicione:
# Ajuste de Hora do Servidor
00 * * * * /usr/sbin/ntpdate ntp.cais.rnp.br
Nome e IP do servidor:
Obs.: se o hostname já estiver correto, pule esta etapa.
# system-config-network
Reinicie o servidor:
# reboot
Baixando e instalando o Samba 4
Download do código fonte do Samba 4:
Instalando a versão 4.0.6:
# cd /usr/src
# wget https://ftp.samba.org/pub/samba/stable/samba-4.0.6.tar.gz && tar -xzvf samba-4.0.6.tar.gz && cd samba-4.0.6 && ./configure --prefix=/usr/local/samba && make && make install
Promovendo o Samba 4
Promover domínio:
# cd /usr/local/samba
# bin/samba-tool domain provision
realm=contoso.local
domain=contoso
server-role=dc
DNS= Samba Internal
adminpass='p@ssw0rd'
Obs.: a senha tem que ser forte, contendo letras, números e caracteres especiais, caso contrário, irá dar erro no final.
Você terá que adicionar a variável PATH para Samba 4 em sua máquina:
# export PATH=$PATH:/usr/local/samba/sbin:/usr/local/samba/bin
Script de inicialização do Samba 4
Configurar script para inicializar e parar o Samba:
# vi /etc/init.d/samba
Adicionar o conteúdo abaixo:
#! /bin/bash
#
# samba4 Bring up/down samba4 service
#
# chkconfig: - 90 10
# description: Activates/Deactivates all samba4 interfaces configured to \
# start at boot time.
#
### BEGIN INIT INFO
# Provides:
# Should-Start:
# Short-Description: Bring up/down samba4
# Description: Bring up/down samba4
### END INIT INFO
# Source function library.
. /etc/init.d/functions
if [ -f /etc/sysconfig/samba4 ]; then
. /etc/sysconfig/samba4
fi
CWD=$(pwd)
prog="samba4"
start() {
# Attach irda device
echo -n $"Starting $prog: "
/usr/local/samba/sbin/samba
sleep 2
if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then success $"samba4 startup"; else failure $"samba4 startup"; fi
echo
}
stop() {
# Stop service.
echo -n $"Shutting down $prog: "
killall samba
sleep 2
if ps ax | grep -v "grep" | grep -q /samba/sbin/samba ; then failure $"samba4 shutdown"; else success $"samba4 shutdown"; fi
echo
}
status() {
/usr/local/samba/sbin/samba --show-build
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status irattach
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
Dê permissão de execução ao script:
# chmod +x /etc/init.d/samba
Adicionar e configurar o script para iniciar com o sistema:
# chkconfig --add samba
# chkconfig samba on
Reinicie o servidor:
# reboot
Configurando Kerberos e DNS
Configurar
Kerberos:
# cd /usr/local/samba/private
# cp krb5.conf /etc/krb5.conf
Configurar DNS:
# vi /etc/sysconfig/network-scripts/ifcfg-Lan
DNS1=IP_DO_SAMBA4
Reinicie o servidor:
# service network restart
Testando o domínio criado
Testes:
# /usr/local/samba/sbin/samba -V
Version 4.0.6
Outro pequeno teste:
# bin/smbclient -L localhost -U%
Domain=[CONTOSO] OS=[Unix] Server[Samba 4.0.5]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.0.5)
Domain=[CONTOSO] OS=[Unix] Server=[Samba 4.0.5]
Server Comment
--------- -------
Workgroup Master
--------- -------
Dicas
Fonte:
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 itens: maiúsculas, minúsculas, números e símbolos):
# /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
Aceito críticas e sugestões. E com certeza, melhorias serão muito bem-vindas!
Abraço a todos!!!