Linux Servidor linux

Controlador de Domínio Samba 4 no CentOS 7

Controlador de Domínio Samba 4 no CentOS 7

O Samba 4 é um Software Livre, licenciado sob a Licença GNU/Linux, desde 1992 o Samba fornece serviços como: compartilhamento de arquivos, impressora e partir da versão 4.0, o Samba pode ser executado como um controlador de domínio do Active Directory AD/DC, como pode também integrar-se com Windows Server Domain ou (PDC - Primary Domain Controller - Controlador de Domínio Primário) ou como um Domain Member - Membro de Domínio.

O Samba surgiu de uma necessidade de compartilhamento de arquivos entre DOS e Linux, criado por Andrew Tridgell, ele utilizou um Sniffer (Programa para capturar os pacotes trafegados na rede) e utilizou engenharia reversa para entender o protocolo SMB/CIFS,  após muito trabalho ele conseguiu fazer com que funcionasse no Linux. Um dia, uma empresa entrou em contato com Tridgell reivindicando os direitos sobre o nome usado no software. Então ele teve a ideia de procurar em um dicionário uma palavra que tivesse as letras s, m e b (de SMB) e acabou encontrando a palavra “samba”. A partir daí o projeto Samba cresceu e hoje Andrew Tridgell conta com uma excelente equipe de programadores e com milhares de usuários de sua solução espalhados pelo mundo.

Os Sistemas operacionais suportados são: Debian, Ubuntu, Red Hat Enterprise Linux, CentOS, Scientific Linux 7, Fedora, Gentoo e openSUSE.

Agora que conhecemos para que serve o Samba no Linux e também conhecemos um pouco de sua história, vamos por a mão na massa!

Instalando e Configurando o Samba 4 no CentOS 7

Informações do Servidor

Hostname: linuxnaweb-dc01
Endereço IP: 192.168.10.10
Domínio: linuxnaweb.local

Atualizando o sistema

# yum update

Desabilitar o Selinux

# vim /etc/sysconfig/selinux
SELINUX=disabled
# setenforce 0

Reinicie e confira se desabilitou o selinux.

# reboot
# sestatus
SELinux status: disabled

Instalando pacotes necessários:

# yum install wget epel-release -y

Configurando informações de IP fixo.

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

NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="554e28a2-f959-4aa5-b709-9685a2a30efc"
IPV6INIT=no
IPV6_AUTOCONF=no
BOOTPROTO=static
TYPE=Ethernet
IPADDR=192.168.10.10
NM_CONTROLLED=yes
NETMASK=255.255.255.0
GATEWAY=192.168.10.1

Configurando o Hostname

# hostnamectl set-hostname linuxnaweb-dc01
# vim /etc/sysconfig/network
NETWORKING="yes"
HOSTNAME=linuxnaweb.local
HOSTNAME=linuxnaweb-dc01.linuxnaweb.local
GATEWAY="192.168.10.1"
# vim /etc/hosts >> Setando fqdn do servidor.
127.0.0.1 linuxnaweb-dc01.linuxnaweb.local linuxnaweb-dc01 linuxnaweb.local
192.168.10.10 linuxnaweb-dc01.linuxnaweb.local linuxnaweb-dc01 linuxnaweb.local

Configurando DNS.

# vim /etc/resolv.conf

domain linuxnaweb.local
search linuxnaweb.local
nameserver 192.168.10.10

Configurando NTP Server

# vim /etc/ntp.conf

#server 0.centos.pool.ntp.org iburst [comente esta linha]
#server 1.centos.pool.ntp.org iburst [comente esta linha]
#server 2.centos.pool.ntp.org iburst [comente esta linha]
#server 3.centos.pool.ntp.org iburst [comente esta linha]

server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst

# Relogio Local
server 127.127.1.0
fudge 127.127.1.0 stratum 10
# Configurações adicionais para o Samba 4
ntpsigndsocket /var/lib/samba/ntp_signd/
restrict default mssntp

Inicie o serviço e habilite ele para iniciar com o SO.

# systemctl start ntpd
# systemctl enable ntpd

Verificar se está ok o ntp

# ntpq -p

Configurando horário.

# ntpdate a.ntp.br

Agora iremos instalar todos os pacotes de dependências que o Samba 4 precisa para ser instalado.

# 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 openldap-devel pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel setroubleshoot-server setroubleshoot-server setroubleshoot-plugins cups-devel ntp autoconf -y

https://wiki.samba.org/index.php/Package_Dependencies_Required_to_Build_Samba

Instalando o SAMBA

# cd /usr/src/
# wget https://download.samba.org/pub/samba/stable/samba-4.8.0.tar.gz --no-check-certificate
# tar xfvz samba-4.8.0.tar.gz
# cd samba-4.8.0

Agora vamos passar alguns parâmetros de configuração.

# ./configure --prefix /usr --enable-fhs --enable-cups --sysconfdir=/etc --localstatedir=/var --with-privatedir=/var/lib/samba/private --with-piddir=/var/run/samba --with-automount --datadir=/usr/share --with-lockdir=/var/run/samba --with-statedir=/var/lib/samba --with-cachedir=/var/cache/samba --with-systemd

Vamos fazer a instalação. Ah já vai tomando um cafézinho porque demora uns 15 minutos haha

# make && make install

samba4 Active Directory
Make concluído.

samba4 Active Directory

Atualizar o cache de bibliotecas dinâmicas

# ldconfig

Comentar o includedir do kerberos.

# vim /etc/krb5.conf
#includedir /etc/krb5.conf.d/

Configurando o samba como DC

# samba-tool domain provision --use-rfc2307 --interactive
# Realm [LOCAL]: linuxnaweb.local
# Domain [linuxnaweb]: linuxnaweb
# Server Role (dc, member, standalone) [dc]: dc
# DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
# DNS forwarder IP address (write 'none' to disable forwarding) [192.168.10.10]:8.8.8.8
# Administrator password: Sua@s3nh4 [Lembrando que a senha tem que conter: Letra/Número/Caractere]
# Retype password: Sua@s3nh4 

A senha tem que conter Letra/Número/Caractere.

# samba-tool domain provision --realm=LINUXNAWEB.LOCAL --domain=LINUXNAWEB --function-level='2008_R2' --adminpass='Sua@s3nh4' --server-role='dc' --use-rfc2307

Criando serviço do samba

# vim /etc/systemd/system/samba-dc.service

[Unit]
Description= Samba 4 Active Directory
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
LimitNOFILE=16384
ExecStart=/usr/sbin/samba -D
ExecReload=/usr/bin/kill -HUP $MAINPID
PIDFile=/var/run/samba/samba.pid

[Install]
WantedBy=multi-user.target

Reiniciar o daemon do SystemD

# systemctl daemon-reload

Ativando na inicialização do Sistema e Iniciando o Serviço.

# systemctl enable samba-dc >> Habilitando serviço na inicialização.
Created symlink from /etc/systemd/system/multi-user.target.wants/samba-dc.service to /etc/systemd/system/samba-dc.service.
# systemctl start samba-dc >> Iniciando o serviço do samba.

Verificando status do serviço.

# systemctl status samba-dc

samba4 Active Directory

Testando DNS

# host -t SRV _ldap._tcp.linuxnaweb.local
# host -t SRV _kerberos._udp.linuxnaweb.local
# host -t A linuxnaweb-dc01.linuxnaweb.local
# nslookup linuxnaweb-dc01.linuxnaweb.local

samba4 Active Directory

Ajustar a permissão para o servidor NTP acessar o socket do Samba 4

# chown root:ntp /var/lib/ntp_signd/
# systemctl restart ntpd

Veficando compartilhamento (sysvol e netlogon)

# smbclient -L linuxnaweb-dc01 -U%

samba4 Active Directory

Verificando configurações do Samba

# cat /etc/samba/smb.conf

samba4 Active Directory

Testando autenticação com kerberos.

Ps: Insira a mesma senha que você configurou antes.

# kinit administrator@LINUXNAWEB.LOCAL
Password for administrator@LINUXNAWEB.LOCAL: Sua@s3nh4
Warning: Your password will expire in 34 days on Thu Feb 25 16:57:41 2016

# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@LINUXNAWEB.LOCALValid starting Expires Service principal
07-02-2018 00:37:32 07-02-2018 10:37:32 krbtgt/LINUXNAWEB.LOCAL@LINUXNAWEB.LOCAL
renew until 14-02-2018 00:37:22

Para administração do Active Directory do Samba 4 é preciso de um computador com Windows no domínio com o RSAT instalado ou phpLDAPadmin instalado no Servidor, para não ficar muito grande eu tive que quebrar este post, abaixo segue a continuação.

Ingressando um computador com Windows 10 no Controlador de Domínio Samba 4.
Instalando RSAT no Windows 10 para administrar o Samba 4.
Instalando phpLDAPadmin para administrar o Samba 4 no CentOS 7

Referências:

pt.wikipedia.org
samba.org
wiki.samba.org

comments powered by Disqus

Assine nossa Newsletter! 🐧

Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.