|
|
Linha 1: |
Linha 1: |
− | | + | == SAMBA - server DC == |
− | == Introdução == | |
− | | |
− | A partir da versão 4.0, Samba é capaz de executar como um controlador de domínio do Active Directory (DC - AD). Se você estiver instalando Samba em um ambiente de produção, é recomendado para executar dois ou mais DCs por razões de failover. Esta documentação descrevendo como instalar e configurar SAMBA4 como o primeiro DC para construir uma nova floresta AD.
| |
− | | |
− | Com fins de organização e fácil compreendimento vou dividir esse tutorial em três partes.
| |
− | | |
− | ;Informações básicas
| |
− | * Sistema utilizado: Debian9 (Stretch) 64x
| |
− | | |
− | == Preparando o Sistema ==
| |
− | | |
− | * Instalação limpa do debian9 (netinstall) somente com servidor ssh.
| |
− | | |
− | * Edite os arquivos de host. Onde os mesmos devem conter o nome de domínio totalmente qualificado (FQDN) e o nome do host curto para o endereço IP da LAN da DC.
| |
− | | |
− | <code>/etc/hosts</code>:
| |
− | <pre>127.0.0.1 localhost localhost.localdomain
| |
− | 192.168.1.1 DC1.dcserver.net DC1</pre>
| |
− | | |
− | Nota: DC1 (antes do .) tem que ser o nome da maquina.
| |
− | | |
− | <code>/etc/hostname</code>:
| |
− | | |
− | <pre>DC1</pre>
| |
− | | |
− | * Edite o arquivo o de interfaces para configurações estáticas. O ideal é que o servidor não sofra com modificações de DHCP.
| |
− | | |
− | <code>/etc/network/interfaces</code>:
| |
− | | |
− | <pre>iface eth0 inet static
| |
− | address 192.168.1.1
| |
− | netmask 255.255.255.0
| |
− | gateway 192.168.1.254</pre>
| |
− | | |
− | * Edite o arquivo de resolução de nome contendo apenas o nome do domínio e seu IP e um DNS valido.
| |
− | | |
− | <code>/etc/resolv.conf</code>:
| |
− | | |
− | <pre>domain dcserver.net
| |
− | nameserver 192.168.1.1
| |
− | nameserver 8.8.8.8</pre>
| |
− | | |
− | * Instale os seguintes pacotes:
| |
− | <code># apt install samba smbclient krb5-user winbind ntp libpam-winbind libnss-winbind</code>
| |
− | | |
− | | |
− | == Configuração e Provisionamento ==
| |
− | | |
− | * Apoś concluir os passos acima, efetuar reboot paras configurações de hostname e IP entrarem em vigor. Verificar se todas as configurações anteriores estejam corretas para não haver problemas com o provisionamento.
| |
− | | |
− | * Remova os arquivos defult de configuração do Samba e Kerberos:
| |
− | <code># rm /etc/samba/smb.conf</code>
| |
− | | |
− | <code># rm /etc/krb5.conf</code>
| |
− | | |
− | * Execute o provisionamento Samba:
| |
− | | |
− | <code># samba-tool domain provision --use-rfc2307 --interactive</code>
| |
− | | |
− | Onde:
| |
− | <pre>Realm: DCSERVER.NET
| |
− | Domain: DCSERVER
| |
− | 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 disa ble forwarding) [192.168.1.1]: 8.8.8.8
| |
− | Administrator password: Passw0rd
| |
− | Retype password: Passw0rd</pre>
| |
− | | |
− | * No provisionamento foi criado um arquivo de configuração Kerberos no /var/lib/samba/private/krb5.conf, crie uma copia para /etc/krb5.conf.
| |
− | <code># cp /var/lib/samba/private/krb5.conf /etc/</code>
| |
− | | |
− | * Kerberos requer um tempo sincronizado em todos os membros do domínio.
| |
− | | |
− | :: Mude as permissões das pastas:
| |
− | | |
− | <code># ls -ld /var/lib/samba/ntp_signd/</code>
| |
− | <pre>Resultando antes da modificação:
| |
− | drwxr-x--- 2 root root 4096 mai 24 11:21 /var/lib/samba/ntp_signd/</pre>
| |
− | | |
− | <code># chown -R root:ntp /var/lib/samba/ntp_signd/</code>
| |
− | | |
− | <code># ls -ld /var/lib/samba/ntp_signd/</code>
| |
− | | |
− | <pre>Resultando depois da modificação
| |
− | drwxr-x--- 2 root ntp 4096 mai 24 11:21 /var/lib/samba/ntp_signd/</pre>
| |
− | | |
− | :: Edite o arquivo <code>/etc/ntpd.conf</code>
| |
− | | |
− | <pre># 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 /var/lib/samba/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</pre>
| |
− | | |
− | * Configurando o Winbindd para autenticação.
| |
− | | |
− | :: Edite o arquivo <code>/etc/samba/smb.conf</code> acrescentando na seção [global].
| |
− | | |
− | <pre>template shell = /bin/bash
| |
− | template homedir = /home/%U</pre>
| |
− | | |
− | * Habilite a biblioteca de chave de serviço de nome (NSS) para tornar usuários e grupos de domínio disponíveis para o sistema local:
| |
− | | |
− | :: Edite o arquivo <code>/etc/nsswitch.conf</code> somente nos bancos de dados descritos abaixo.
| |
− | | |
− | <pre>passwd: files winbind
| |
− | group: files winbind</pre>
| |
− | | |
− | * Verifique se o link das bibliotecas foram devidamente criados.
| |
− | | |
− | :: PAM_WINBIND
| |
− | <code>/lib/x86_64-linux-gnu/security/pam_winbind.so</code>
| |
− | | |
− | :: LIBNSS_WINBIND
| |
− | <code># ln -s /lib/x86_64-linux-gnu/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so</code>
| |
− | <code># ldconfig</code>
| |
− | | |
− | | |
− | | |
− | == Teste de Funcionameto ==
| |
− | | |
− | Reinicie os serviços ou reboot na maquina. O samba não inicia juntamente com o sistema. "Chame" o <code>samba</code> antes de efetuar os testes. Os resultados dos testes devem ser semelhantes ao mostrados abaixo.
| |
− | | |
− | * Teste se o DC esta funcionando:
| |
− | <code># smbclient -L localhost -U%</code>
| |
− | | |
− | Resultado:
| |
− | <pre>Domain=[DCSERVER] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
| |
− | | |
− | Sharename Type Comment
| |
− | --------- ---- -------
| |
− | netlogon Disk
| |
− | sysvol Disk
| |
− | IPC$ IPC IPC Service (Samba 4.5.8-Debian)
| |
− | Domain=[DCSERVER] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
| |
− | | |
− | Server Comment
| |
− | --------- -------
| |
− | | |
− | Workgroup Master
| |
− | --------- -------
| |
− | WORKGROUP DEVAPP</pre>
| |
− | | |
− | * Teste a autenticação DC:
| |
− | <code># smbclient //localhost/netlogon -UAdministrator -c 'ls'</code>
| |
− | | |
− | Resultado:
| |
− | <pre>Enter Administrator's password:
| |
− | Domain=[DCSERVER] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
| |
− | . D 0 Wed May 24 10:51:37 2017
| |
− | .. D 0 Wed May 24 10:51:45 2017
| |
− | | |
− | 15415240 blocks of size 1024. 13580456 blocks available</pre>
| |
− | | |
− | * Teste se a configuração DNS do Active Directory (AD) funcionam corretamente, consulte alguns registros DNS:
| |
− | <code># host -t SRV _ldap._tcp.dcserver.net.</code>
| |
− | | |
− | Resultado:
| |
− | <pre>_ldap._tcp.dcserver.net has SRV record 0 100 389 dc1.dcserver.net.</pre>
| |
− | | |
− | * Teste o registro de recurso _kerberos SRV baseado no udp no domínio:
| |
− | <code># host -t SRV _kerberos._udp.dcserver.net.</code>
| |
− | | |
− | Resultado:
| |
− | <pre>_kerberos._udp.dcserver.net has SRV record 0 100 88 dc1.dcserver.net</pre>
| |
− | | |
− | * Teste o registro A do controlador de domínio:
| |
− | <code># host -t A dcserver.net</code>
| |
− | | |
− | Resultado:
| |
− | <pre>dcserver.net has address 192.168.1.1</pre>
| |
− | | |
− | * Teste Kerberos, conta domain administrator.
| |
− | <code># kinit administrator</code>
| |
− | | |
− | Resultado:
| |
− | <pre>Password for administrator@DCSERVER.NET:
| |
− | Warning: Your password will expire in 41 days on qua 05 jul 2017 10:51:46 -03</pre>
| |
− | | |
− | * Teste liste os tickets em cache do Kerberos:
| |
− | <code># klist</code>
| |
− | | |
− | Resultado:
| |
− | <pre>Ticket cache: FILE:/tmp/krb5cc_0
| |
− | Default principal: administrator@DCSERVERPMP.NET
| |
− | | |
− | Valid starting Expires Service principal
| |
− | 24-05-2017 11:39:08 24-05-2017 21:39:08 krbtgt/DCSERVERPMP.NET@DCSERVERPMP.NET
| |
− | renew until 25-05-2017 11:39:03</pre>
| |
− | | |
− | | |
− | | |
− | SHOW!
| |