GugaBSD

BSD, Linux e software livre em geral.

Implementação Do Samba4 + FreeBSD9

| Comments

Este tutorial é uma orientação de instalação do Samba4 em um ambiente com FreeBSD 9.0.

O Samba4 esta em pleno desenvolvimento e estamos perto de ver o lançamento da versão estável, no momento em que estou escrevendo esse howto, o Samba4 esta na versão RC5 (Release Candidate). Apesar de ainda ser uma versão de desenvolvimento, tenho usado ele em ambientes de produção com muito sucesso, agregando muitas ferramentas administrativas de ambientes Windows.

Para este tutorial, vou levar em conta que você já possui um ambiente com máquinas Windows e um servidor Firewall (preferencialmente um FreeBSD :) ), para isso, vou exemplificar nosso ambiente através do diagrama abaixo:

Para este projeto, iremos precisar de uma instalação do FreeBSD 9.0 e de alguns pacotes do ports:

Com o sistema instalado, vamos instalar nossas dependências (use as opções padrões no make config):

cd /usr/ports/lang/perl5.14
make install clean
cd /usr/ports/lang/python
make install clean

Ainda precisaremos do bind98 do ports, por conta de o cliente nsupdate do named padrão do sistema não suportar conexão via GSSAPI, portanto, vamos instalar desta forma:

cd /usr/ports/dns/bind98
make install clean

Feita a satisfação de nossas dependências, vamos a configuração e instalação do nosso Samba4, iremos preparar um diretório para isso, siga os passos:

cd /usr/local/
mkdir devel
cd devel
fetch http://ftp.samba.org/pub/samba/rc/samba-4.0.0rc5.tar.gz
tar zxf samba-4.0.0rc5.tar.gz

Agora iniciaremos o processo de compilação e instalação:

cd samba-4.0.0rc5
./configure && make && make install

Veja que é muito simples, no samba4 é tudo “build-in”, o diretório padrão de instalação é /usr/local/samba

Vamos começar agora a configurar o nosso ambiente Active Directory no sistema. Para isso, precisamos preparar alguns requisitos para o ambiente:

  • Ter um servidor NTP configurado para servir a rede
  • Configurar o nome da máquina corretamente no arquivo /etc/hosts
  • Configurar parâmetro de “acls” no ponto de montagem do Samba4

Configure o seu servidor NTP, conforme as instruções do manual do FreeBSD, em resumo, basta executar os comandos abaixo:

echo 'ntpd_enable="YES"' >> /etc/rc.conf
# /etc/rc.d/ntpd start 
Starting ntpd.

No meu exemplo, eu ativei as acls no arquivo /etc/fstab conforme abaixo:

# cat /etc/fstab
/dev/gpt/swap   none    swap    sw      0       0
/dev/gpt/raiz   /       ufs     rw,acls 1       1

Observe que somente foi necessário adicionar o parâmetro “acls” na linha correspondente a montagem (no caso somente a raiz) aonde o servidor Samba4 vai ser usado.

Para ativar esta configuração, execute o comando como exemplificado abaixo:

mount -rw /

E observe a saida do comando mount já com o parâmetro “acls”:

# mount
/dev/gpt/raiz on / (ufs, local, acls)
devfs on /dev (devfs, local, multilabel)

Feito isso, vamos fazer o provisionamento do ambiente, seguindo o comando abaixo:

cd /usr/local/samba
# bin/samba-tool domain provision --domain=DOMINIO --realm=dominio.com.br --adminpass=123Mudar

<span style="color: #0000ff;"><strong>Dúvidas na instalação ? <a href="http://www.mundounix.com.br" target="_blank"><span style="color: #0000ff;">consulte-nos</span></a> sobre consultoria remota</strong></span>

&nbsp;

A saida do comando deve ser assim:

Looking up IPv4 addresses
Looking up IPv6 addresses
More than one IPv6 address found. Using fe80:1::a00:27ff:fe7a:3167
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=dominio,DC=com,DC=br
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=dominio,DC=com,DC=br
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
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
NetBIOS Domain: DOMINIO
DNS Domain: dominio.com.br
DOMAIN SID: S-1-5-21-3539102483-3612174692-2578751605
A phpLDAPadmin configuration file suitable for administering the Samba 4 LDAP server has been created in /usr/local/samba/private/phpldapadmin-config.php.

Observe que ele vai criar uma estrutura de configuração no diretório &#8220;<em>private</em>&#8220;:

[root@samba4] /usr/local/samba# ls private/
 dns_update_list         krb5.conf               sam.ldb                 secrets.ldb             spn_update_list
 hklm.ldb                phpldapadmin-config.php sam.ldb.d               secrets.tdb             tls
 idmap.ldb               privilege.ldb           secrets.keytab          share.ldb

Agora, crie um link simbólico da configuração do cliente do kerberos do FreeBSD a partir do criado pelo o samba4:

ln -s /usr/local/samba/private/krb5.conf /etc/krb5.conf

Adicione as seguintes linhas no arquivo <em>/usr/local/samba/etc/smb.conf</em>:

dns forwarder = 8.8.8.8
nsupdate command = /usr/local/bin/nsupdate

ficando o arquivo assim:

# Global parameters
[global]
workgroup = DOMINIO
realm = dominio.com.br
netbios name = SAMBA4
server role = active directory domain controller
dns forwarder = 8.8.8.8
nsupdate command = /usr/local/bin/nsupdate

[netlogon] path = /usr/local/samba/var/locks/sysvol/dominio.com.br/scripts read only = No

[sysvol] path = /usr/local/samba/var/locks/sysvol read only = No

Aponte seu arquivo <em>/etc/resolv.conf</em> para o dns do samba4 agora:

echo ‘nameserver 172.16.0.1’ > /etc/resolv.conf

Com isso, já podemos iniciar nosso servidor AD &#8211; Samba4, vamos fazer um inicio manual:

cd /usr/local/samba4
sbin/samba -d3 -i

Observe a saida de debug do sistema e confirme se as portas estão abertas com o comando sockstat, você deve ver uma saída semelhante a esta:

# sockstat -4l
 USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
 root     ntpd       55058 20 udp4   :123                 :
 root     ntpd       55058 23 udp4   192.168.15.65:123     :
 root     ntpd       55058 26 udp4   127.0.0.1:123         :
 root     smbd       54976 39 tcp4   :445                 :
 root     smbd       54976 40 tcp4   :139                 :
 root     samba      54975 19 tcp4   :53                  :
 root     samba      54975 20 udp4   :53                  :
 root     samba      54969 18 tcp4   :88                  :
 root     samba      54969 19 udp4   :88                  :
 root     samba      54969 20 tcp4   :464                 :
 root     samba      54969 21 udp4   :464                 :
 root     samba      54969 30 udp4   192.168.15.65:88      :
 root     samba      54969 31 udp4   192.168.15.65:464     :
 root     samba      54968 18 udp4   :389                 :
 root     samba      54968 22 udp4   192.168.15.65:389     :
 root     samba      54967 18 tcp4   :389                 :
 root     samba      54967 19 tcp4   :3268                :
 root     samba      54965 18 udp4   :137                 :
 root     samba      54965 19 udp4   :138                 :
 root     samba      54965 20 udp4   192.168.15.255:137    :
 root     samba      54965 21 udp4   192.168.15.65:137     :
 root     samba      54965 22 udp4   192.168.15.255:138    :
 root     samba      54965 23 udp4   192.168.15.65:138     :
 root     samba      54964 30 tcp4   :1024                :
 root     samba      54964 34 tcp4   :135                 :
 root     sendmail   947   3  tcp4   127.0.0.1:25          :
 root     sshd       940   4  tcp4   :22                  :
 root     syslogd    701   7  udp4   :514                 :

<span style="color: #0000ff;">Conheça nosso trabalho de consultoria em Active Directory com Software Livre</span><br /> <a href="http://www.mundounix.com.br/static/img/folheto_ad_samba4.png"><img class="aligncenter" title="Active Directory em Software Livre" src="http://www.mundounix.com.br/static/img/folheto_ad_samba4.png" alt="Active Directory em Software Livre" width="380" height="528" /></a>

Com isso, já podemos adicionar uma máquina no dominio, para isso, vamos ao ambiente &#8220;hostil&#8221; <img src='http://www.luizgustavo.pro.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br /> No exemplo abaixo, estou usando um Windows XP, o procedimento detalhado esta descrito no Howto do Samba4.

Primeira coisa a fazer, como Administrador local do Windows, é configurar o DNS apontando para o servidor Samba4 e configurar o relógio para sincronizar com o mesmo. <strong>Esta parte é importante, pois se o relógio estiver com uma diferença de 5 minutos em relação ao servidor Samba4, a autenticação não funcionará corretamente.</strong>

<img class="aligncenter size-full wp-image-757" title="Captura de tela - 26-11-2012 - 03:15:25" src="http://www.luizgustavo.pro.br/blog/wp-content/uploads/2012/11/Captura-de-tela-26-11-2012-031525.png" alt="" width="374" height="112" />

Muito cuidado ao adicionar mais de um DNS nesta configuração, o Windows faz balanceamento das requisições, já tive várias dores de cabeça por conta disso.

Agora, ingresse a máquina no dominio AD do Samba4:

<tr>
  <td>
    <img class="size-full wp-image-758 aligncenter" title="Captura de tela - 26-11-2012 - 02:39:02" src="http://www.luizgustavo.pro.br/blog/wp-content/uploads/2012/11/Captura-de-tela-26-11-2012-023902.png" alt="" width="443" height="522" />
  </td>

  <td style="text-align: center;">
    <img class="size-full wp-image-759" src="http://www.luizgustavo.pro.br/blog/wp-content/uploads/2012/11/Captura-de-tela-26-11-2012-023932.png" alt="" width="337" height="276" />
  </td>
</tr>

<img class="aligncenter size-full wp-image-760" title="Captura de tela - 26-11-2012 - 02:42:59" src="http://www.luizgustavo.pro.br/blog/wp-content/uploads/2012/11/Captura-de-tela-26-11-2012-024259.png" alt="" width="776" height="544" />

Pronto, agora temos nossa primeira máquina no AD, daqui pra frente é só ruiWindows !!! acione o seu certificado M$dlkfldf <img src='http://www.luizgustavo.pro.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ou contate alguém com experiência no gerenciamento de Active Directory para gerenciar sua arvore LDAP.

Maiores informações, você encontra no <a href="https://wiki.samba.org/index.php/Samba4/HOWTO" target="_blank">howto do Samba4</a> (em inglês)

<span class='st_facebook_buttons' st_title='Implementação do Samba4 + FreeBSD9' st_url='http://www.luizgustavo.pro.br/blog/2012/11/26/samba4-freebsd9/' displayText='Facebook'></span><span class='st_twitter_buttons' st_title='Implementação do Samba4 + FreeBSD9' st_url='http://www.luizgustavo.pro.br/blog/2012/11/26/samba4-freebsd9/' displayText='Twitter'></span><span class='st_linkedin_buttons' st_title='Implementação do Samba4 + FreeBSD9' st_url='http://www.luizgustavo.pro.br/blog/2012/11/26/samba4-freebsd9/' displayText='LinkedIn'></span><span class='st_email_buttons' st_title='Implementação do Samba4 + FreeBSD9' st_url='http://www.luizgustavo.pro.br/blog/2012/11/26/samba4-freebsd9/' displayText='Email'></span><span class='st_sharethis_buttons' st_title='Implementação do Samba4 + FreeBSD9' st_url='http://www.luizgustavo.pro.br/blog/2012/11/26/samba4-freebsd9/' displayText='ShareThis'></span><span class='st_fblike_buttons' st_title='Implementação do Samba4 + FreeBSD9' st_url='http://www.luizgustavo.pro.br/blog/2012/11/26/samba4-freebsd9/' displayText='Facebook Like'></span><span class='st_plusone_buttons' st_title='Implementação do Samba4 + FreeBSD9' st_url='http://www.luizgustavo.pro.br/blog/2012/11/26/samba4-freebsd9/' displayText='Google +1'></span><span class='st_pinterest_buttons' st_title='Implementação do Samba4 + FreeBSD9' st_url='http://www.luizgustavo.pro.br/blog/2012/11/26/samba4-freebsd9/' displayText='Pinterest'></span>

Comments