Pesquisar este blog

sábado, 21 de julho de 2018

Samba 4 – Instalação e provisionamento

Na execução deste “LAB”, optei pelas placas em modo bridge o que torna possível o acesso remoto por SSH pelo host real. O gateway padrão é o roteador da minha rede local e a instalação do sistema foi realizada com os pacotes básicos, acrescentando apenas o servidor SSH para que pode-se configurar o Debian pelo PUTTY.
Cenário:
SAMBA 4 - Instalação e Provisionamento

Passo a passo:

1) Atualização do repositório e dos pacotes do sistema:

# apt-get update && apt-get upgrade

2) instalação das dependências:

  apt-get install acl attr autoconf bison build-essential \
  debhelper dnsutils docbook-xml docbook-xsl flex gdb krb5-user \
  libacl1-dev libaio-dev libattr1-dev libblkid-dev libbsd-dev \
  libcap-dev libcups2-dev libgnutls28-dev libjson-perl \
  libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \
  libpopt-dev libreadline-dev perl perl-modules pkg-config \
  python-all-dev python-dev python-dnspython python-crypto \
  xsltproc zlib1g-dev libgpgme11-dev python-gpgme python-m2crypto libsystemd-dev
SAMBA 4 - Instalação e Provisionamento
Nesta parte basta seguir selecionando “OK” e pressionando “ENTER”, sem realizar qualquer alteração. Logo após a instalação das dependências, baixaremos o SAMBA em sua versão estável mais recente o que pode ser verificado no endereço: https://download.samba.org/pub/samba/stable/ 

3) Baixando, descompactando e compilando o SAMBA 4:

# wget https://download.samba.org/pub/samba/stable/samba-4.6.5.tar.gz
# tar -zxvf samba-4.6.5.tar.gz
# cd samba-4.6.5
# ./configure --enable-debug --enable-selftest
Se tudo ocorrer sem problemas será exibida uma mensagem de sucesso e a partir deste ponto é só compilar e instalar o SAMBA.
Baixar, descompactar e compilar o SAMBA 4
# make
Compilar e instalar o SAMBA 4
Obs:  A execução do comando “make” é um pouco demorada, sendo este o único inconveniente. Tenha um pouco de paciência.
# make install
Baixando, descompactando e compilando o SAMBA 4

4) Configurações importantes:

             Algumas configurações adicionais são necessárias a fim de garantir o correto funcionamento do servidor. Os arquivos “/etc/resolv.conf/” e o “/etc/hosts/” devem estar de acordo com o domínio a ser criado, bem como o IP do servidor deve ser fixo já que este será o DNS da rede local.
# vim /etc/hosts
SAMBA 4 no Debian
# vim /etc/resolv.conf
Arquivo resolv.conf no SAMBA 4
Após configurar e salvar o “/etc/resolv.conf” execute o comando “chattr +i” para garantir que o arquivo não seja modificado pelo sistema.
# chattr +i /etc/resolv.conf
            A configuração destes 2 (dois) arquivos nos auxilia no provisionamento do servidor. estando os arquivos corretamente configurados antes de se elevar o SAMBA a AD, quando da configuração do serviço  o domínio já estará definido.

 5) Provisionando o SAMBA 4:

                       Antes do provisionamento do SAMBA 4 como AD é uma boa prática listarmos tudo que for pertinente a consecução do domínio, seria algo como um checklist a fim de garantir os parâmetros corretos de configuração. Veja os dados na tabela a seguir:
Checklist SAMBA 4
ServidorControlador de domínio e Active Directory 
DNSSamba Internal ( x ) - BIND (  ) - BIND DLZ (  )
IP do ServidorFixo ( x ) IP:172.16.0.200/24 - Obs. deve ser feito antes de subir o domínio.
Qtde. Controladores de Domínio1 (um)
DomínioBOSON.AULA.NET
DNS Resolver - Forwarding172.16.0.1/24 Obs. neste caso esse é o IP do meu roteador.
DHCP ServerNão
Em relação ao provisionamento do servidor, se o samba-tool não estiver declarado na variável PATH é necessário digitar o caminho absoluto “/usr/local/samba/bin/samba-tool” para poder utilizar os recursos da ferramenta.
# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
Onde:
  • domain provision = para elevar o SAMBA a controlador de domínio;
  • --use-rfc2307 = ativa o Network Information Server (NIS);
  • --interactive = Modo interativo que permite realizar as configurações do domínio.
Vamos aos passos necessários:
  1. Realm [BOSON.AULA.NET] : Se o “/etc/hosts” e o “/etc/resolv.conf” estiverem definidos basta pressionar ENTER, caso não estejam configurados digite o nome do domínio desejado. Em nosso caso “BOSON.AULA.NET”;
  2. Domain : [BOSON] : “pressione enter”;
  3. Server Role (dc, manber, standalone,) [dc] : Como utilizaremos nosso SAMBA como DC basta pressionar ENTER;
  4. DNS backend (SAMBA_INTERNAL, BIND9, BIND9_DLZ) [SAMBA_INTERNAL] : O DNS que iremos escolher o SAMBA_INTERNAL que é o padrão da instalação, bastando pressionar “ENTER”;
  5. DNS forwarder IP address (write ‘none’ to disable forwarding) [172.16.0.200] : Neste caso é mostrado como IP de encaminhamento o definido no “/etc/resolv.conf/” se os arquivos não estiverem configurados, o DNS que ira ser definido para encaminhamento será o primário configurado em seu roteador. E comum a utilização do DNS do Google para está tarefa, mas, em nosso cenário setaremos o nosso gateway como encaminhador “172.16.0.1’;
  6. Administrator password: Definição da senha de administrador deve conter “letras, números e caracteres especiais” para que não aja erro no processo de provisionamento;
  7. Retype password: Repita a senha digitada anteriormente.
Senha do SAMBA 4
Após as configurações realizadas o servidor será elevado a controlador de domínio. Vide imagem abaixo:
SAMBA como controlador de domínio

6) Script de inicialização

Crie o arquivo “/etc/systemd/system/samba4.service” e adicione o conteúdo .serviceabaixo, para que o Unit baseado no systemd seja integrado ao servidor, possibilitando assim, o controle dos processos relativos aos serviços, bem como na inicialização do sistema o SAMBA possa subir automaticamente.
# vim /etc/systemd/system/samba4.service
Configure o arquivo com segue:
[Unit]
Description=Samba Active Directory Domain Controller
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/samba/sbin/samba -D
PIDFile=/usr/local/samba/var/run/samba.pid
[Install]
WantedBy=multi-user.target
Após criar o arquivo e adicionar o conteúdo, execute os comandos abaixo:
# systemctl daemon-reload
# systemctl enable samba4.service
Verificando se daemon encontra-se “enable”
# systemctl is-enabled samba4.service
Habilitando o serviço do SAMBA 4
Seguido estes passos o serviço já pode ser inicializado e verificado adequadamente.
# systemctl start samba4.service
Com o “systemctl” é possível a utilização das opções (stop, restart e status).
# systemctl status samba4.service -l
Serviço do SAMBA rodando no Linux

7) Testes:

 Verificando a versão do SAMBA instalado:
# /usr/local/samba/bin/smbclient --version
Pastas compartilhadas:
# /usr/local/samba/bin/smbclient -L localhost -U%
Testando o servidor SAMBA 4 no Linux
Verificação do usuário Administrador:
# /usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%'Senha Cadastrada'
Usuário administrador no SAMBA 4 no Linux
Digite “exit” para voltar ao shell bash
LDAP
host -t SRV _ldap._tcp.BOSON.AULA.NET
Configurar LDAP no Samba 4  - Linux
KERBEROS
host -t SRV _kerberos._udp.BOSON.AULA.NET
Kerberos no SAMBA 4 no Linux
DNS
host -t A Debian.BOSON.AULA.NET
DNS no SAMBA 4 no Linux
KERBEROS.CONF
# cat /usr/local/samba/private/krb5.conf
Arquivo kerberos.conf no SAMBA 4 no Linux
KINIT
# kinit administrator@BOSON.AULA.NET
Arquivo KInit no SAMBA 4 no Linux
Com a instalação e o provisionamento concluída e sem apresentar erros, devemos instalar o serviço para sincronização de hora (NTP), e configurá-lo para que possamos utilizá-lo no ajuste das máquinas que integram o domínio.
Não é obrigatório a instalação do servidor “NTP” para o funcionamento do SAMBA, mas é uma boa prática sincronizar os hosts que pertencem ao domínio. O Kerberos requer “carimbos” de hora exatos para poder prevenir ataques de repetição bem como o AD utiliza a sincronização para evita replicação.
O AD admite um desvio padrão de até 5 minutos para mais ou para menos, caso haja uma diferença maior que esse padrão o acesso é negado, resultando no não acesso aos diretórios e compartilhamentos.

8) Instalação e configuração do NTP server

Execute os comandos a seguir para instalar o serviço de  NTP no servidor:
# apt-get install ntp
# cp /etc/ntp.conf /etc/ntp.conf.BK
Feita a cópia do arquivo /etc/ntp.conf devemos realizar algumas configurações, apague o conteúdo do ntp.conf e substitua pelo conteúdo abaixo:
# Local clock. Note that is not the "localhost" address!
server 127.127.1.0
fudge  127.127.1.0 stratum 10
# Where to retrieve the time from
server 0.pool.ntp.org     iburst prefer
server 1.pool.ntp.org     iburst prefer
server 2.pool.ntp.org     iburst prefer
driftfile               /var/lib/ntp/ntp.drift
logfile                /var/log/ntp
ntpsigndsocket  /usr/local/samba/var/lib/ntp_signd/
# Access control
# Default restriction: Allow clients only to query the time
restrict default kod nomodify notrap nopeer mssntp
# No restrictions for "localhost"
restrict 127.0.0.1
# Enable the time sources to only provide time to this host
restrict 0.pool.ntp.org   mask 255.255.255.255    nomodify notrap nopeer noquery
restrict 1.pool.ntp.org   mask 255.255.255.255    nomodify notrap nopeer noquery
restrict 2.pool.ntp.org   mask 255.255.255.255    nomodify notrap nopeer noquery
Obs: verifique se o diretório “/usr/local/samba/var/lib/ntp_signd/” existe. Em caso negativo, deve ser criado e fornecidas as devidas permissões. Outro ponto importante diz respeito aos arquivos “/var/lib/ntp/ntp.drift” “var/log/ntp” - caso não tenham sido criados pela instalação você irá criá-los.

Criação do diretório “ntp_singd”:

# mkdir /usr/local/samba/var/lib/ntp_signd

Ajuste de Permissões:

# chown root:ntp /usr/local/samba/var/lib/ntp_signd
# chmod 750 /usr/local/samba/var/lib/ntp_signd

Criação dos arquivos “/var/lib/ntp/ntp.drift” e “/var/log/ntp”

# touch /var/lib/ntp/ntp.drift
# touch /var/log/ntp
Após as configurações do servidor NTP serem devidamente realizadas, devemos reiniciar o serviço de horas para que ele possa funcionar conforme configurado.
# systemctl restart ntp.service
Processo finalizado com sucesso.
Retirado de: http://www.bosontreinamentos.com.br/linux/samba-4-instalacao-e-provisionamento/