Atualizações e Instalação de Pacotes

Antes de iniciar a configuração do Samba 4, é importante garantir que o sistema esteja atualizado e os pacotes necessários estejam instalados. Isso pode ser feito executando os seguintes comandos:

# yum update -y
# yum upgrade -y
# yum install nano wget ntpd -y

Configurações de Firewall e SELinux

Para evitar problemas de conectividade, é recomendável desabilitar o firewall e o SELinux:

# chkconfig iptables off
# chkconfig ip6tables off
# setenforce 0
# nano /etc/selinux/config
SELINUX=disabled

Adicionando Repositórios e Atualizando o Sistema

Adicione os repositórios necessários e atualize o sistema:

# rpm -Uvh http://fedora.uib.no/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum clean all && yum -y update

Instalação de Pacotes Necessários

Instale os pacotes necessários para compilar o Samba 4:

# yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
    libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
    perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
    python-crypto gnutls-devel libattr-devel keyutils-libs-devel \
    libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
    pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel

Reinicie o Servidor

Após as configurações iniciais, reinicie o servidor para aplicar as alterações:

# reboot

Baixando e Instalando o Samba 4

Baixe e instale a versão estável mais recente do Samba 4:

# wget https://ftp.samba.org/pub/samba/stable/samba-4.7.3.tar.gz && tar -xzvf samba-4.7.3.tar.gz && cd samba-4.7.3 && ./configure --prefix=/usr/local/samba && make && make install

Promover Domínio

Execute o utilitário samba-tool para promover o servidor para um controlador de domínio:

# /usr/local/samba/bin/samba-tool domain provision

Siga as instruções para definir o Realm, Domain, Server Role e outras configurações.

Realm: RODRIGO.BR
 Domain [RODRIGO]:
 Server Role (dc, member, standalone) [dc]:
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
 DNS forwarder IP address (write 'none' to disable forwarding) [Your DNS IP]: (Usar DNS redundante)
 Administrator password:
 Retype password:

Configurar Kerberos

Copie o arquivo de configuração do Kerberos fornecido com o Samba:

# cd /usr/local/samba/private
# cp krb5.conf /etc/krb5.conf

Configurar DNS

Configure o DNS no arquivo de configuração de rede:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Adicione o endereço IP do servidor Samba 4 como o DNS primário.

Reinicie o Servidor

Após todas as configurações, reinicie o servidor para aplicar as alterações:

# reboot

Testes

Execute alguns testes para garantir que o Samba 4 esteja funcionando corretamente:

# samba -V
# smbclient -L localhost -U%

Dicas Adicionais

Aqui estão algumas dicas adicionais para personalizar a configuração do Samba 4:

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

Script Para Iniciar/Parar/Reiniciar o Samba

# nano /etc/init.d/samba

#! /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

Para finalizar, modifique as permissões do Script:

# chmod +x /etc/init.d/samba

Adicionar Script ao Inicializador de Serviços

Adicione o script de inicialização do Samba ao sistema de inicialização:

# chkconfig --add samba
# chkconfig samba on