Implementando um Controlador de Domínio com FreeBSD e Samba 4

O SAMBA, na versão 4, implementa um serviço de diretórios LDAP, com autenticação Kerberos, oferece suporte a DNS dinâmico e atende muitos serviços para os quais, antes, só se pensava no Active Directory.
Hoje ele fornece tudo que é necessário para trabalhar como um Active Directory Domain Controler, tendo compatibilidade total com o Sistema Operacional Microsoft Windows atual. Sendo que podemos implementá-lo em ambientes de produção como Controlador de Domínio primário ou secundário, em nível funcional de floresta compatível com Windows Server 2008 R2.
Neste tutorial utilizaremos o FreeBSD, um Sistema Operacional extremamente robusto e estável, sendo uma das mais populares versões de Unix, largamente usado no meio corporativo. Difere do Linux mais em questões de Licenças do que em qualquer outro aspecto. O FreeBSD possui uma licença mais maleável do que a  GNU General Public License ou a Copyright proprietária, estando mais perto da ideia de ‘domínio público’. Com a licença Berkeley Software Distribution é possível desenvolver códigos e doar o projeto ou fechar e vender o código, de acordo com o objetivo do desenvolvedor. Leia mais sobre ele clicando aqui.
O FreeBSD tem arquivos de configuração simplificados e práticos, porém poderosos, de onde o Slackware Linux apoiou sua filosofia “Keep it simple stupid”.
Um dos principais arquivos de configuração do Sistema Operacional, é o rc.conf, servindo para diversas configurações importantes, como por exemplo, setar o hostname, adicionar serviços para subir no boot do sistema, editar ip fixo, entre outras possibilidades. Ele se encontra dentro do diretório /etc/.
Neste tutorial, usei o rc.conf justamente para chamar o SAMBA, habilitar o serviço de ssh, setar o layout de teclado, setar ip da placa de rede, entre outras funcionalidades, como você pode ver no exemplo usado pela eShark Tecnologia, note que o editor padrão do FreeBSD é o ‘ee’, você poderá pesquisar mais sobre o modo de operação dele na internet,é simples como o nano.

MÃO NA MASSA

CONFIGURANDO O RC.CONF:

ee /etc/rc.conf
hostname="ADFBSD"
keymap="br275.iso.kbd"
ifconfig_em0="inet 192.168.0.250 netmask 255.255.255.0"
defaultrouter="192.168.0.254"
sshd_enable="YES"
ntpd_enable="YES"
powerd_enable="YES"
samba_server_enable="YES"
cupsd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"

EDITANDO O HOSTS:

ee /etc/hosts
192.168.0.250 ADFBSD ADFBSD.eshark.net

EDITANDO O RESOLV.CONF:

ee /etc/resolv.conf
nameserver 192.168.0.250
nameserver 192.168.0.254
search eshark.net

HABILITANDO COMPATIBILIDADE DE PERMISSÕES DO WINDOWS:

ee /etc/fstab
/dev/da0s1a         /       ufs   rw,acls    1  1
mount -o acls /

INSTALANDO O SAMBA4:

pkg install samba42
pkg install samba-nsupdate
pkg install cups

PROVISIONANDO:

cp /usr/local/etc/samba/smb4.conf  /usr/local/etc/samba/smb4.conf.old
samba-tool domain provision --use-rfc2307 --interactive

EDITANDO OS COMPARTILHAMENTOS:

ee /usr/local/etc/samba/smb4.conf
# Global parameters
 [global]
       workgroup = ESHARK
       realm = ESHARK.NET
       netbios name = ADFBSD
       server role = active directory domain controller
       dns forwarder = 192.168.0.254
       idmap_ldb:use rfc2307 = yes
[netlogon]
       path = /var/db/samba4/sysvol/eshark.net/scripts
       read only = No
       browseable = no
[sysvol]
       path = /var/db/samba4/sysvol
       read only = No
       browseable = no
[profiles]
       path = /var/db/samba4/profiles
       read only = no
       browseable = no
# LIXEIRA
       vfs objects = recycle
       recycle:facility = LOCAL1
       recycle:priority = NOTICE
       recycle:maxsize = 0
       recycle:directory_mode = 0774
       recycle:subdir_mode = 0774
       recycle:keeptree = true
       recycle:touch = true
       recycle:versions = true
       recycle:repository = /root/LIXEIRA
       recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.exe, *.bin
[DADOS]
       path = /root/DADOS
       comment = Compartilhamentos da Rede
       read only = No
[DIRETORIA]
      path = /root/DADOS/DIRETORIA
      comment = Pasta Diretoria
      read only = No
[RH]
      path = /root/DADOS/RH
      comment = Pasta RH
      read only = No
[FINANCEIRO]
      path = /root/DADOS/FINANCEIRO
      comment = Pasta Financeiro
      read only = No
[TECNICO]
      path = /root/DADOS/TECNICO
      comment = Pasta Tecnico
      read only = No
[COMERCIAL]
      path = /root/DADOS/COMERCIAL
      comment = Pasta Comercial
      read only = No
[PUBLICA]
      path = /root/DADOS/PUBLICA
      comment = Pasta Publica
      read only = no

Crie os diretórios citados acima no arquivo, em seus respectivos lugares!
RELENDO AS CONFIGURAÇÕES:

smbcontrol all reload-config

CRIANDO LINK PARA KRB5.CONF /etc/krb5.conf:

ln -s /var/db/samba4/private/krb5.conf /etc/krb5.conf

EDITANDO /etc/rc.conf:

vim /etc/rc.conf
samba_server_enable="YES"
cupsd_enable="YES"

“STARTANDO” OS SERVIÇOS:

/usr/local/etc/rc.d/cupsd start
/usr/local/etc/rc.d/samba_server start

ou use uma opção mais linux-like:

sysrc samba_server_enable=YES
service samba_server start

REMOVENDO A COMPLEXIDADE DE SENHAS (OPCIONAL):

samba-tool domain passwordsettings show
samba-tool user setexpiry Administrator –noexpiry
samba-tool user setexpiry --days=20 Administrator
samba-tool domain passwordsettings set --complexity=off
samba-tool domain passwordsettings set --history-length=0
samba-tool domain passwordsettings set --min-pwd-age=0

O restante das configurações poderão ser feitas agora no AD, através das Ferramentas de administração do Windows Server 2008 R2 (RSAT), instaladas em uma versão de Windows 7, 8 ou 10.
Você também pode construir um Controlador de Domínios usando outras plataformas *NIX, como Debian, seguindo o tutorial, clicando no botão abaixo:

Controlador de Domínio com Debian e Samba 4

 
Este é o meu modo de fazer a coisa neste momento, continuo estudando e aberto!
That’s all folks!