Vous êtes sur la page 1sur 12

SERVIÇOS DO SAMBA 4

Neste artigo estarei passando os passos para compilar o Samba 4 como um


PDC no Debian.
O Samba 4 está em sua versão estável, o que me fez criar este tutorial de
instalação e configuração como controlador de domínio. Utilizei a última
versão estável que já está disponível para download.
O Samba 4 implementa um ambiente igual ao Active Directory da Microsoft,
então, qualquer administrador Windows pode, facilmente, administrar o
domínio. Neste caso envolvendo 5 serviços, como o próprio AD:

 LDAP, no GNU/Linux com OpenLDAP;


 CIFS Samba;
 Kerberos, no GNU/Linux KDC;
 DNS, no GNU/Linux com BIND 9;
 DHCP no GNU/Linux com isc-dhcp-server.

Neste artigo, usei como referência os posts dos sites:

 Windows 7/Vista « wiki.samba.org


 Un server DNS e DHCP su Debian « guide.debianizzati.org

Porém alguns passos importantes não constam nestes links, então eu fiz
uma adaptação do servidor BIND e do DHCP, que será melhor explicado.

INSTALANDO O SAMBA
1. Baixar o Samba. Isto pode ser feito através do site:

 https://ftp.samba.org/pub/samba/stable/
2. Próximo passo, descompactar o arquivo. Deixei-o salvo em: /usr/src

# cd /usr/src
# tar xzf samba-4.0.0.tar.gz

3. Em seguida, baixar as dependências:


 # 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 acl attr bind9 krb5-kdc krb5-user vim mc isc-
dhcp-comum isc-dhcp-server

Alguns pacotes adicionais foram colocados, como Vim, o MC e servidor


DHCP. Caso não precise de um servidor deste tipo, não há necessidade
de instalá-lo.

4. Configurar o sistema de arquivos para suportar acl e attr:

4.1. Configurar no filesystem: /etc/fstab

# vi /etc/fstab

Ex.:

UUID=70a184fa-01d9-40ee-b094-7c79a4a5c30e
/ ext4 errors=remount-ro,acl,user_xattr 0 1

Como mostrado, adicionar depois do remount-ro: acl,user_xattr

Caso não seja efetuada esta configuração, será exibida uma tela de erro na
compilação.

4.2. Montar o sistema novamente:

# mount -o remount,rw /

4.3. Digitar novamente mount e a saída será:

# mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro,acl,user_xattr)

5. Rodar os comandos para compilação:

# ./configure
Depois o make:

# make

E, por fim, fazer a instalação com o:

# make install

BIND - DHCP
BIND
Vamos configurar a parte mais importante deste tutorial, que é o BIND9.
Neste caso, o nosso servidor DNS será atualizado automaticamente por
DHCP, para que fique ainda mais fácil administrar nosso domínio.

1. Vamos considerar que você tenha um endereço de IP estático em sua


placa de rede, caso não tenha, adicioná-lo, conforme seu IP e rede.

2. Editar o arquivo /etc/hosts e colocar o endereço do servidor com o


domínio, conforme exemplo:

127.0.0.1 localhost
127.0.1.1 Server.shl.local Server
192.168.75.156 Server.shl.local Server

3. Também efetuar a mudança no arquivo /etc/resolv.conf, e deixá-lo


conforme IP e domínio da rede:

nameserver 127.0.0.1
nameserver 192.168.75.156
search shl.local

4. Matar o processo do dhclient:

# killall -9 dhclient

5. Criar o domínio no /etc/bind/named.conf.local, segue o meu como


exemplo, caso queira utilizá-lo é só mudar o nome do seu domínio e IP:
acl internals {
127.0.0.0/8;
192.168.75.0/24;
};
include "/etc/bind/rndc.key";
controls {
inet 127.0.0.1 allow {localhost; } keys { "rndc-key"; };
};

zone "shl.local" {
type master;
file "/etc/bind/shl.db";
allow-update { key "rndc-key"; };
notify yes;
};

zone "75.168.192.in-addr.arpa" {
type master;
file "/etc/bind/rev.75.168.192.in-addr.arpa";
allow-update { key "rndc-key"; };
notify yes;
};

Criar o arquivo .bd conforme o meu exemplo, shl.bd, lembrando que esse
arquivo deve ter o mesmo nome daquele criado no named.conf.local:

$TTL 86400
@ IN SOA shl.local. root.shl.local. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL

@ IN NS Server.shl.local.
Server IN A 192.168.75.156
_kerberos._tcp.shl.local. IN SRV 0 0 88 Server.shl.local.
_ldap._tcp.shl.local. IN SRV 0 0 389 Server.shl.local.
_kpasswd._udp.shl.local. IN SRV 0 0 464 Server.shl.local.

6. Criar o arquivo rev.75.168.192.in-addr.arpa com os registros, saliento


mais uma vez, que este arquivo deve ter o mesmo nome e caminho daquele
configurado no name.conf.local:
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA Server.shl.local. root.shl.local. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS Server.shl.local.
1 IN PTR Server.shl.local.

7. Criar o arquivo para gerenciar a chave gerada pelo BIND 9:

# touch /var/cache/bind/managed-keys.bind
# chown bind:bind /var/cache/bind/managed-keys.bind

8. Para terminar a configuração do DNS, devemos editar o


arquivo name.conf.default-zones, acrescentando as seguintes linhas:

# vi /etc/bind/named.conf-default-zones

view "external" {
match-clients { any; };
recursion yes;
};

Temos acima o arquivo do BIND, com os registros necessários, que são os


servidores Kerberos e LDAP principalmente. Colocamos nosso servidor a
utilizar o DNS da rede interna somente quem possuir a chave secreta, o que
nos dá um pouco mais de segurança.

Não esqueça de reiniciar o servidor BIND e verificar os logs. Caso haja


algum erro, você deve corrigi-los, pois os serviços do Samba 4 são
altamente dependentes de um DNS bem configurado.

Para testar os serviços, basta digitar os seguintes comandos, e as saídas


serão essas que estão exibidas abaixo. Caso não apareça estas
informações, verificar o servidor DNS e verificar todos os passos até aqui:
# nslookup Server.shl.local
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: Server.shl.local
Address: 192.168.75.156

# dig -t srv _kerberos._tcp.shl.local +short


0 0 88 Server.shl.local.

# dig -t srv _ldap._tcp.shl.local +short


0 0 389 Server.shl.local.

# dig -t srv _kpasswd._udp.shl.local +short


0 0 464 Server.shl.local.

# dig Server.shl.local +short


192.168.75.156

SERVIDOR DHCP
Definiremos qual interface o servidor DHCP vai escutar editando o arquivo,
utilize conforme a interface do servidor:

# vi /etc/default/isc-dhcp-server

INTERFACES="eth0"

# mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.old
# touch /etc/dhcp/dhcpd.conf
# vi /etc/dhcp/dhcpd.conf

authoritative;
server-identifier 192.168.75.156;
ignore client-updates;
subnet 192.168.75.0 netmask 255.255.255.0{
range 192.168.75.20 192.168.75.220;
option subnet-mask 255.255.255.0;
default-lease-time 604800;
max-lease-time 2592000;
option broadcast-address 192.168.75.255;
option routers 192.168.75.2;
option domain-name-servers 192.168.75.156;
option domain-name "shl.local";
option netbios-name-servers 192.168.75.156;
option netbios-node-type 8;
}

ddns-updates on;
update-static-leases on; #clientes com IP estático estão incluídas nas
atualizações
ddns-update-style interim;
ddns-domainname "shl.local";
ddns-rev-domainname "in-addr.arpa.";
include "/etc/bind/rndc.key";
zone shl.local {
primary 192.168.75.156;
key rndc-key;
}
zone 75.168.192.in-addr.arpa. {
primary 192.168.75.156;
key rndc-key;
}

# IP fixo do PDC
host Server {
hardware ethernet 00:0c:29:fa:3c:55;
fixed-address 192.168.75.156;
};

Conceder permissão na pasta do BIND, para o DHCP escrever nela:

# chmod 755 /etc/bind

Não colocarei as descrições das linhas, pois existem milhares de tutoriais


de implementação do serviço de DHCP no Debian.

KERBEROS E CONFIGURAÇÕES FINAIS


1. Remover o smb.conf, geralmente não existe essa entrada, porém, só
para ter certeza que não existe nenhuma configuração:

# rm /etc/smb.conf

2. Criar o arquivo de configuração smb.conf. Acesse o diretório de


instalação do Samba em usr/local/samba e execute o seguinte comando:

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

No comando acima, será executado um script onde deve ser preenchido


com as informações do seu domínio. Lembrando que as configurações do
DNS provavelmente já irão aparecer na hora que estiver rodando o script.
Um detalhe importante a ser considerado é o tipo de serviço de DNS.

No meu exemplo usei BIND9_DLZ, que atualiza automaticamente os


endereços DNS das estações.

3. Testar, para isso subir o Samba:

# /usr/local/samba/sbin/samba -i -M single
samba version 4.0.0 started.
Copyright Andrew Tridgell and the Samba Team 1992-2012
samba: using 'single' process model
Attempting to autogenerate TLS self-signed keys for https for hostname 'SERVE
R.shl.local'
TLS self-signed keys generated OK

# /usr/local/samba/bin/smbclient -L localhost -U
administrator
Domain=[SHL] OS=[Unix] Server=[Samba 4.0.0]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.0.0)
Domain=[SHL] OS=[Unix] Server=[Samba 4.0.0]
Server Comment
--------- -------
Workgroup Master
--------- -------
4. Configurar o kerberos:

# mv /etc/krb5.conf /etc/krb5.conf_bkp
# cp /usr/local/samba/private/krb5.conf /etc/

# cat /etc/krb5.conf
[libdefaults]
default_realm = SHL.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true

5. Iniciar o Samba no modo normal:

# /usr/local/samba/sbin/samba

6. Gerar o ticket do Kerberos, colocar o domínio em letras maiúsculas se


não gerar erro, por causa do "default_realm" do krb5.conf:

# kinit administrator@SHL.LOCAL

O comando deve retornar algo como:

Warning: Your password will expire in 41 days on Mon Feb 25 09:49:32 2013

7. Testar a geração da lista no Kerberos:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SHL.LOCAL

Valid starting Expires Service principal


01/14/13 10:53:30 01/14/13 20:53:30 krbtgt/SHL.LOCAL@SHL.LOCAL
renew until 01/15/13 10:53:23

Agora já poderão ingressar máquinas Windows no domínio.

8. Para administrar, use o Admin Pack do 2003, Ferramentas de


administração do Windows 2003, através do Active Directory Users and
Computers. Baixe de:

 Windows XP: http://www.microsoft.com/en-


us/download/details.aspx?id=15326
 Windows 7: http://www.microsoft.com/en-
us/download/details.aspx?id=7887

Seguem as imagens de uma máquina virtual que adicionei no domínio


SHL.LOCAL:
* Mais uma coisa: Aqui, o Samba 4 não inicia junto com o S.O., precisa ser
iniciado manualmente caso ocorra um desligamento ou reinício do servidor.

Para administrar o serviço de DHCP e de DNS, use a ferramenta que lhe for
mais conveniente. Infelizmente, para alguns administradores de redes
Windows, não poderão ser utilizadas as ferramentas administrativas da
Microsoft, mas eu aconselho utilizar o Webmin, mas aí depende quem for
administrar a rede.

CONCLUSÃO
Espero que tenha ajudado. Como eu, muitos buscavam uma alternativa
para controlar estações Windows sem gastar uma fortuna em recalls.

Entreguei este servidor para um administrador Windows e ele conseguiu


aplicar políticas, criar usuários e adicionar estações no domínio sem
dificuldades. Com a interface Webmin, ele facilmente conseguiu administrar
toda a rede.

Logo mais venho com mais artigos e configurações.

Abraços ao Mauro, Gervasio e o Tiozão.

Vous aimerez peut-être aussi