Arquivo

Archive for janeiro \27\America/Sao_Paulo 2014

Instalação do Samba4 – Active Directory compatible Domain Controler

Depois de muita espera e muita expectativa finalmente chegou o Samba4, prometendo (e cumprindo) implementação do ambiente criado pelo Active Directory (Microsoft), após a instalação a gerência e configuração do domínio e DC’s é feita utilizando as próprias ferramentas da Microsoft.

E vamos ao que interessa. Neste post serão abordadas a instalação do Samba4 no Debian Squeeze6.0.6 e Ubuntu 12.04LTS utilizando o Bind como DNS backend, nessa caso é necessário que o pacote tenha versão  igual ou superior a 9.7.x

– Bind – DNS

Debian Squeeze 6.0.6

O último pacote de instalação do bind disponível para o Debian é o 9.6 nesse caso teremos que compilar o pacote correto.

Para que não seja necessário criar os scripts de start/stop do serviço vamos instalá-lo e removê-lo utilizando o apt-get.

Nota: caso a versão disponível seja superior a 9.7.x não é necessária a remoção do serviço.

# apt-get install bind9
# apt-get autoremove bind9

Dependências necessárias

# apt-get install devscripts build-essential libkrb5-dev debhelper libssl-dev libtool bison libdb-dev libldap2-dev libxml2-dev libpcap-dev hardening-wrapper libgeoip-dev dpkg-dev

Criar diretório de cache e alterar as permissões

# mkdir /var/cache/bind
# chown bind:bind /var/cache/bind

Baixar o pacote

# mkdir bind9
# cd bind9
# dget -x http://ftp.de.debian.org/debian/pool/main/b/bind9/bind9_9.8.4.dfsg.P1-3.dsc
# tar -xvzf bind9_9.8.4.dfsg.P1.orig.tar.gz
# cd bind9-9.8.4.dfsg.P1/
 
Compilar e instalar o serviço
#  ./configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –sysconfdir=/etc/bind –localstatedir=/var –enable-threads –enable-largefile –with-libtool –enable-shared –enable-static –with-openssl=/usr –with-gssapi=/usr –with-gnu-ld –with-dlz-postgres=no –with-dlz-mysql=no –with-dlz-bdb=yes –with-dlz-filesystem=yes –with-dlz-ldap=yes –with-dlz-stub=yes –with-dlz-dlopen=yes –with-geoip=/usr CFLAGS=-fno-strict-aliasing

# make install
Ubuntu 12.04LTS

Dependências necessárias:

# apt-get install  devscripts build-essential libkrb5-dev debhelper libssl-dev libtool bison libdb-dev libldap2-dev libxml2-dev libpcap-dev hardening-wrapper libgeoip-dev dpkg-dev 

No Ubuntu o pacote disponível no repositório atende aos requisitos do Samba4, nesse caso não é necessário compilar o pacote, a instalação pode ser feita via apt-get:

# apt-get install bind9

Para que o Samba possa alterar as configurações e criar as entradas para o domínio é necessário fazer algumas alterações, são elas:

# vim /etc/bind/named.conf
include “/usr/local/samba/private/named.conf”;
 
# vim /etc/bind/named.conf.options
tkey-gssapi-keytab “/usr/local/samba/private/dns.keytab”;
forwarders {
                8.8.8.8;
                8.8.4.4;
                };

Nota: A opção forwarders só deve ser usada caso o servidor encaminha solicitações que ele não consiga resolver para servidores DNS externos.

Samba4

Dependências necessárias:

Debian 6.0.6 – Squeeze
# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev  dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl
 
Ubuntu 12.04LTS
# apt-get install libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev  dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl

Nota: Serão solicitados o domínio do servidor e FQDN dos servidores do Kerberos.

No Ubuntu ainda é necessária uma alteração no apparmor para que ele permita alterações no bind

# vim /etc/apparmor.d/usr.sbin.named
/usr/local/samba/private/** rkw,
/usr/local/samba/private/dns/** rkw,
/usr/local/samba/lib/** rm,# /etc/init.d/apparmor reload

Se o sistema de arquivos utilizado for ext3 ou ext4 será necessário configurá-lo para suportar acl e attr. Para isso vamos editar o arquivo /etc/fstab e incluir as opções “user_xattr,acl,barrier=1” na montagem do volume. Após alterado o arquivo deve estar parecido com este:

# vim /etc/fstab
/dev/hda       /               ext3    user_xattr,acl,barrier=1,errors=remount-ro  0       1

Montar novamente o sistema de arquivos

# mount -o remount,rw /

Também é importante verificar se o nome do host está definido corretamente, verifique as configurações dos arquivos /etc/hosts e /etc/hostname, faça as alterações necessárias e reincie o servidor.

Download, configuração e instalação do Samba

# wget -c http://www.samba.org/samba/ftp/stable/samba-4.0.1.tar.gz
# tar -xvf samba-4.0.1.tar.gz
# cd samba-4.0.1/
# ./configure –enable-debug –enable-selftest
# make
# make install

Após instalado o samba, vamos criar o domínio:

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

Serão solicitadas informações como: realm,domain, server role, DNS backend e password. As configurações serão aplicadas e o domínio criado, uma saída semelhante a esta será apresentada:

Realm: TESTE.COM
Domain [TESTE]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=teste,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=teste,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4-dc
NetBIOS Domain: TESTE
DNS Domain: teste.com
DOMAIN SID: S-1-5-21-2228987782-1448195482-472659170

Antes de iniciar o Samba, reiniciar o bind para que as alterações sejam aplicadas:

# /etc/init.d/bind9 restart

Iniciar o samba

# /usr/local/samba/sbin/samba

Atualizar a base DNS

# /usr/local/samba/sbin/samba_dnsupdate –verbose –all-names

Testar o DNS
# host -t SRV _ldap._tcp.senior.local

Nota: Para funcionamento correto dos comandos acima, é necessário que no /etc/resolv.conf o nameserver contenha o IP do servidor local.

Outro serviço importante a ser configurado para o correto funcionamento do samba4 e kerberos é o NTP, caso os relógios não estejam sincronizados os serviços podem apresentar problemas.

Referências: