You are on page 1of 15

Instalação e Configuração do Samba4

Em janeiro de 2006 foi lançando a primeira versão beta do samba4. Mesmo antes desta data várias
informações já eram dadas sobre as características do novo “servidor de arquivo”. Uma das
informações que mais chama a nossa atenção era sobre a integração do SAMBA com o AD.
Agora com a versão ALPHA 9 já podemos testar e verificar as principais características do
SAMBA4.
Softwares utilizados:
• Linux: Slackware 12.2 – Current Version
ftp://ftp.slackware.no/pub/linux/ISO-images/slackware/13.0/
• PhpLDAPadmin 1.1.0.7
http://phpldapadmin.sourceforge.net/
• Samba 4 Alpha9
Via Git: “git clone git://git.samba.org/samba.git samba-master; cd samba-master && git checkout
-b master origin/master; cd ..”
• Heimdal Kerberos
http://www.h5l.org/dist/src/heimdal-1.2.1.tar.gz
• Bind 9
ftp://ftp.isc.org/isc/bind9/9.5.2/bind-9.5.2.tar.gz
Dependências de Outros softwares para o perfeito funcionamento
Para o perfeito funcionamento do Samba4 depois vários testes foi visto que o DNS é um dos
requisito primordiais para seu funcionamento adequado e reconhecimento de algumas diretivas
impostas pelo samba4, para isso recopilaremos o BIND com suporte a Heimdal Kerberos, existem
duas implementações de código aberto do Kerberos: Heimdal e MIT Kerberos. Heimdal é uma
implementação do protocolo Kerberos implementada pela KTH (Royal Institute of Technology, em
Estocolmo), enquanto MIT Kerberos é fornecido pelo MIT (Massachussets Institute of
Technology), como diz seu nome.
Autenticação Kerberos é um protocolo de rede. Foi concebido para fornecer autenticação forte para
o cliente/servidores de aplicativos usando criptografia de chaves secretas, então um cliente pode
provar a sua identidade para um servidor (e vice-versa) em uma conexão de rede insegura.
Em nosso caso utilizaremos BIND com suporte ao Heimdal Kerberos por causa do GSS-TSIG
algoritmo de serviço de segurança genérico para autenticação de transação com chave secreta de
DNS (GSS-TSIG) este mecanismo é utilizado para estabelecer relações TSIG para autenticação do
tipo Kerberos, necessário para interagir BIND com Samba4, com essas credenciais o DNS aceita
atualizações GSS-TSIG assinadas e verifica as credenciais de correspondentes com as credencias
cadastradas no Samba4, isso permite aos usuários descarregar o DNS dos usuários do Microsoft
Windows sem ter a segurança comprometida.
Compilação e Instalação
Começaremos pelo Heimdal:
#tar –zxvf heimdal-1.2.1.tar.gz
#cd heimdal-1.2.1
#./configure –prefix=/usr –libdir=/usr/lib \
–sysconfdir=/etc –localstatedir=/var \
–mandir=/usr/man –with-openssl=/usr –bindir=/usr/bin/ \
–sbindir=/usr/sbin/ –enable-kcm
#make && make install
Criaremos o usuário e o grupo responsável pelo Bind, e efetuaremos a compilação:
# groupadd named && useradd named –g named
#tar –zxvf bind-9.5.2.tar.gz
#cd bind-9.5.2
#./configure –prefix=/usr –libdir=/usr/lib \
–sysconfdir=/etc –localstatedir=/var –with-libtool \
–mandir=/usr/man –enable-shared –disable-static \
–enable-threads –with-openssl=/usr –with-gssapi=/usr/include/gssapi –bindir=/usr/bin/ –
sbindir=/usr/sbin/
#make && make install
Adicione seu host em “/etc/hosts”, para ajudar na resolução de nomes, em meu caso ficou deste
modo:
#vi /etc/hosts
127.0.0.1 localhost
192.168.11.1 dtux.org dtux
Testando o funcionamento do Bind:
#named –u named -g
25-Sep-2009 11:00:21.348 zone dtux.org/IN: loaded serial 2009091112
25-Sep-2009 11:00:21.350 running
25-Sep-2009 11:00:21.350 zone dtux.org/IN: sending notifies (serial 2009091112)
Compilação
Após fazer o download, foi criado um diretório chamando samba-master. Os fontes do SAMBA4
ficaram dentro do diretório source4, criaremos um link simbólico apontando para source.
# cd samba-master/
# ln –s source4 source
# cd source
#./autogen.sh
#./configure –prefix=/usr/local/samba –sysconfdir=/etc/ –localstatedir=/var –
mandir=/usr/man/ –enable-fhs –enable-debug –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/lib
–enable-developer
# make && make install
Após a instalação rode o utilitário provision para a criação do domínio e do usuário administrator e
sua respectiva senha:
#./setup/provision –realm=DTUX.ORG –domain=DTUX –admin=anna –server-role=’domain
controller’
O parâmetro “–realm” é para definir o domínio do servidor Kerberos e o “domain” para o domínio
SAMBA.
O SAMBA4 trás embutido os protocolos:
DNS – ( Bind )
SMB-( Samba 3 )
LDAP( OpenLdap )
KERBEROS( Heimdal )
MS-RPC – ( GPO )
Credenciais Utilizando base SamDB
… que são responsáveis pela autenticação Active Directory.
O diretório “/usr/local/samba” é gerado pela compilação do SAMBA e tem os seguintes
subdiretórios:
• /usr/bin: Programas para gerenciamento do samba, tais como smbstatus, net, etc.
• /usr/sbin: Programa responsável por inicializar o samba.
• /etc/samba: Neste diretório fica o arquivo de configuração smb.conf
• /usr/lib: Todas as libs compiladas do samba
• /var/lib/samba/private: Exemplos de arquivos de configuração
Configuração do Bind
Após a instalação, configuramos o servidor DNS para trabalhar juntamente com o KERBEROS e
KERBERO com BIND. Utilize os arquivos exemplos gerados pelo próprio SAMBA que estão
dentro do diretório “/var/lib/samba/private”. Edite o arquivo “/etc/named/named.conf” adicione as
seguintes linhas:
#vi /etc/named/named.conf
Na sessão “option{}” adicione as linhas que irão fazer a comunicação ente o Keberos e o Bind:
options{
directory “/var/named”;
tkey-gssapi-credential “DNS/dtux.org”;
tkey-domain “DTUX.ORG”;
}
Depois de configurado a sessão “options” incluiremos o arquivo “named.conf” do Samba4 no
Bind, abaixo da sessão “options” adicione:
options{
directory “/var/named”;
tkey-gssapi-credential “DNS/dtux.org”;
tkey-domain “DTUX.ORG”;
}
include “/var/lib/samba/private/named.conf”;
Nesse arquivo está a configuração a zona configurada pelo Samba4 quando foi utilizado o utilitário
“provision”. Antes de testar o funcionamento do Bind, temos que setar as variáveis de localização
do arquivo “dns.keytab”, que é onde estão as informações de DNS registradas pelo Samba4:
# KEYTAB_FILE=“/var/lib/samba/private/dns.keytab”
# export KRB5_KTNAME=“/var/lib/samba/private/dns.keytab”
Para não termos que ficar digitando essas linhas a todo o momento coloquemos elas no inicio do
arquivo “/etc/rc.d/rc.bind”, responsável pela inicialização do daemon do named.
#killall -9 named
#named –u named
#ps ax |grep named
4450 ? Ssl 0:00 named -u named
4455 pts/3 R+ 0:00 grep named
Pronto seu Bind já estará rodando e trocando informações com o Samba4, vamos fazer um teste
para verificar se seu funcionamento está ok, utilizaremos a ferramenta “nsloockup”:

Caso você queira configurar um DNS reverso para o IP de seu samba fica a seu critério.
Também copiaremos o arquivo “krb5.conf” que está em “/var/lib/samba/private/“ para o diretório
“/etc/”.
Por utilizar o Kerberos, é necessário que todas as máquinas envolvidas estejam com os mesmos
horários (segundos).Para isso nada melhor do que setar o Samba para ser o nosso time server,
adicione ao “/etc/samba/smb.conf” na sessão “[globlas] “time server = yes”, nos cliente é só setar
“net time \dtux.org /set /Yes”, que o horário ficará sincronizado o com o do servidor.
Acerte o sistema de arquivo para trabalhar com o “xattr” alterando o arquivo “/etc/fstab”.

/dev/sda1 ext3 defaults,user_xattr 0 1


Remonte o sistema para ativar as alterações.
# mount -o remount,rw /
Para testar, criemos alguns compartilhamentos. Para isso edite o arquivo “smb.conf” que está
dentro do diretório “/etc/samba/”.
[profiles]
comment = Profiles Remotos
path = /home/profiles
read only = no
browseable = no
O compartilhamento “Profiles” indica a localização dos profiles dos usuários nesse caso se tratando
de uma configuração para “Perfil Móvel(Roaming Profile)”
Agora testaremos alguns serviços e verificar se estão todos funcionais.
Iniciando do Samba
#samba -i -M single
Iniciando o Samba em modo debug:
#samba -i -M single –d3
Inicialização do Bind:
#/etc/rc.d/rc.bind start
Pronto com isso no servidor já está no ar com DNS funcionado, vamos a alguns testes:
Samba4
Autentique algum usuário do Samba4 com:
# smbclient //dtux.org/profiles -Uadministrator%anna
smb: \> dir
.D 0 Wed Sep 23 11:31:36 2009
.. D 0 Tue Sep 22 17:26:38 2009
Admin D 0 Tue Sep 22 15:28:02 2009
alexandro D 0 Tue Sep 22 17:19:31 2009
diego D 0 Mon Sep 21 16:42:47 2009
nazir D 0 Wed Sep 23 11:31:36 2009
danilo D 0 Tue Sep 22 12:04:42 2009
Kerberos
Autentique algum usuário do Samba4 com e ofereça a senha quando pedido:
#kinit administrator@DTUX.ORG
Password for administrator@DTUX.ORG:
Verificando os tickets de conexão:
#klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@DTUX.ORG
Valid starting Expires Service principal
09/25/09 14:22:50 09/26/09 14:22:48 krbtgt/DTUX.ORG@DTUX.ORG
Verificando os tickets de conexão e os métodos de autenticação aplicados:
#klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@DTUX.ORG
Valid starting Expires Service principal
09/25/09 14:22:50 09/26/09 14:22:48 krbtgt/DTUX.ORG@DTUX.ORG
Etype (skey, tkt): ArcFour with HMAC/md5, ArcFour with HMAC/md5

Windows sendo Dominado pelo Samba4


Para colocar o Windows XP no domínio do samba, além da configuração de hora já foi falado,
devemos configurar o ip da máquina onde está o samba4 no DNS do micro com Windows
XP/2003/2008/7.
No Windows XP segue as seguintes configurações para se entrar em domínio, este procedimento
serve para Windows XP/2000/2003/2008/7:
• Menu Iniciar -> Painel de Controle -> Sistema
• Guia “Nome do Computador”
• Alterar
• Marque o checkbox “Domínio”
• Coloque o seu domínio (DTUX.ORG) -> OK
• Caso ocorrer algum problema de apontamento de DN, pode-se editar o arquivo
“C:\WINDOWS\system32\drivers\etc\hosts”, no arquivo “hosts” você coloca o IP do servidor
samba e na frente o seu respectivo DNS name desta forma:
• 127.0.0.1 localhost
• 192.168.11.2 dtux.org dtux
Simple no primeiro logon logue como administrator, caso você queira fazer parte da administração
do Samba4 através do “Windows Server 2003 Administration Tools Pack” antes de instalá-lo,
instale o “Windows Server 2003 Suporte Tools”:
• http://www.microsoft.com/downloads/details.aspx?FamilyID=c16ae515-c8f4-47ef-a1e4-
a8dcbacff8e3&displaylang=en
• http://download.microsoft.com/download/3/e/4/3e438f5e-24ef-4637-abd1-
981341d349c7/WindowsServer2003-KB892777-SupportTools-x86-ENU.exe
Aproveitando vamos criar um “Perfil Remoto”, um problema encontrado com perfil remoto foi
encontrado quando você cria um usuário pelo “Administrator Tolls” esse usuário não terá acesso ao
Shell do Linux e com isso ele não irá conseguir ditar permissões de escrita e leitura, a forma existe
script na pasta: /usr/local/samba/share/samba/setup/.
• newuser
Antes de utilizá-lo você tem que adicionar o usuário no Linux usando o comando comum
“useradd”.
Iremos simular o seguinte ambiente, criaremos um grupo e adicionaremos um usuário no Linux a
colocaremos esse usuário no grupo criado entre no “Administrator Tools”, criaremos o grupo
também e utilizaremos o script “newuser” para adicionar o usuário no samba4.
• Criando grupo:
#groupadd samba4
• Criando usuário no Linux:
#useradd teste –g samba4 -p senha –c “Teste Samba4 Users”
• Criando a pasta do profile do usuário, levando em consideração que “/home/profiles”, já foi feito
acima:
#mkdir -p /home/profiles/teste
• Ditando permissões de acesso a pasta para este usuário recém criado:
#chown teste:samba4 /home/profiles/teste
Agora usaremos o script “newuser” para fazer a importação, um problema encontrado foram as
bibliotecas python utilizadas por esse scripts elas estão localizadas em
“/usr/local/samba/lib/python2.6/site-packages”, temos que copiar todo esses arquivos para a pasta
real do python do sistema “/usr/lib/python2.6/site-packages/”:
#cd /usr/local/samba/lib/python2.6/site-packages
#cp –rp * /usr/lib/python2.6/site-packages/
Vamos fazer a copia do “newuser” para nosso diretório “/usr/sbin”:
#cp /usr/local/samba/share/samba/setup/newuser /usr/sbin
Tudo pronto para a execução do script:
#newuser teste senha –unixname=teste -k KERBEROS –workgroup=dtux.org
• –unixname: Usuário criado no Linux/Unix
• -k KERBEROS: Utiliza autenticação Kerberos
• –workgroup: Domínio Criado
Agora quando você autenticar no Windows com este usuário que ele já está sincronizado, quando
você abrir o “Administrator Tools” pelo menu “Iniciar -> Executar”, digite “dsa.msc”:

Depois clique em seu domínio e vá em “Users” o usuário já irá aparecer na listagem, criaremos o
grupo “samba4” pelo “Administrator Tools” e adicionaremos o usuário “teste” neste grupo, e
configuraremos o seu profile remoto.
Criando o grupo: “Botão direito em Builtin ->Novo -> Group”, dê um nome uma descrição.

Agora na guia “Members” você define os usuários que farão parte deste grupo.
Os usuários que foi importamos já estão criados agora é só acertar alguns detalhes em “User logon
name” que é o nome de logon é só colocar o nome do usuário e na frente o “@DOMINIO”, marque
as opções “Use cannot chance password” se não quer que os usuários alterem a senha, e
“Password never expires”, pra ela numca expirar.

Iremos agora á guia “Profile” e em “Profile Path” definiremos o caminho do diretório remoto onde
serão armazenados os arquivos do usuário.
Em “Map Folder”, podemos colocar esse caminho do profile do usuário para ser montado em uma
unidade de mapeamento de rede.
Podemos através do Windows os tickets do Kerberos através do “Windows Server 2003 Resource
Kit Tools” (http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-
b18c4790cffd&displaylang=en). Utilizaremos Klist e o Kerbtray, que ficam localizadas em:
“Iniciar -> Windows Resource Kit Tolls -> Command Shell”.

Klist
A ferramenta klist é uma ferramenta de linha de comando que permite que você exiba o conteúdo
dos cache de credenciais e pode ser usada em um cliente Windows para exibir ou destruir
credenciais existentes de Kerberos.
A ferramenta klist exige um argumento. O argumento “tgt” mostra as credenciais no cache atual, e
o argumento “tickets” mostram as credenciais em cache.

KerbTray
A ferramenta Kerberos Tray, KerbTray, (kerbtray.exe) é uma ferramenta gráfica da plataforma
Windows que exibe informações de tickets Kerberos em um computador de plataforma Windows
onde os tickets Kerberos foram armazenados no cache de credenciais. Os tickets Kerberos são
adquiridos e armazenados nas credenciais de cache quando um usuário autenticar em um
computador de plataforma Windows (cliente ou servidor) como um usuário de domínio. O
KerbTray permite que você visualize e limpe o cache de ticket.
Quando executado, a ferramenta coloca um ícone na bandeja do sistema. Esse ícone exibe o status
com base na presença ou ausência de credenciais válidas. Dados disponibilizados pela interface
KerbTray incluem os selos de tempo nos tickets, os marcadores associados às credenciais e o(s)
tipo(s) de criptografia dos tickets.
Administração do Samba4 via phpLDAPadmin
phpLDAPadmin é uma interface gráfica para gerenciar a base de dados LDAP. Para seu
funcionamento será necessário ter instalação do Apache com suporte à PHP versão 5 ou 4 se
preferir. O seu site oficial é (http://phpldapadmin.sourceforge.net).
#wget –C http://ufpr.dl.sourceforge.net/sourceforge/phpldapadmin/phpldapadmin-
1.1.0.7.tar.gz
# tar -zvzf phpldapadmin-1.1.0.7.tar.gz
# mv phpldapadmin-1.1.0.7 phpldapadmin
Copiaremos a pasta “phpldapadmin” na pasta do apache
# mv phpldapadmin /srv/www/htdocs
Acesse a pasta onde estão as configurações de seu samba, lá você irá encontrar um arquivo de
configuração devidamente configurado para se conectar ao samba4, copie para a pasta de
configuração do “phpLDAPadmin”.
#cd /var/lib/samba/private
# cp phpldapadmin-config.php /srv/www/htdocs/ldap/config/config.php
Seu apache deve estar devidamente configurado com suporte a PHP. Caso você esteje utilizando o
Slackware Linux, apenas descomente a linha “Include /etc/httpd/mod_php.conf” de seu
“httpd.conf” em “/etc/httpd” e reinicie o apache:
# apachectl restart
Abra seu navegador no seguinte endereço:
http://localhost/phpldapadmin/index.php
Irá abrir a pagina lhe pedindo usuário e senha, você pode conectar usando o usuário “Anônimo” ou
como “Administrator”.
Para se conectar como “Administrator” você deve indicar o caminho completo da localização do
usuário, neste caso ele se encontra em “CN=Users,DC=dtux,DC=org”, para o usuário
“Administrator” ficará assim:
CN=Administrator,CN=Users,DC=dtux,DC=org
Você pode se conectar com qualquer usuário desde que indique o seu caminho completo, assim
como o “Administrator”.

Arquivos de configuração, lembrando que esse foram usados na minha estrutura, lembre-se cada
caso é um caso:

smb.conf - Arquivo de configuração do samba

named.conf - Arquivo principal do bind

dtux.org.zone - Zona principal criada pelo samba e adaptada

11.168.192.in-addr.arpa - Zona Reversa baseada na Zona Principal


krb5.conf - Arquivo de configuração do Keberos criado pelo samba

adminSamba4.sh - Script criado por mim, para ajuda na tarefa de criar usuários no linux
e im porta-los para Active Directory do Samba4, simple que pode evoluir, sujestões são aceitas.

Fontes de Apoio: http://wiki.samba.org/index.php/Samba4/HOWTO


http://www.vivaolinux.com.br/artigo/Samba-4-como-controlador-de-dominio-com-Active-
Directory-da-MS
http://www.nisled.org/?p=68