1. Vamos Instalar os pacotes necessários para configuração:
# 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 acl mc
2. Alterando o
fstab:
# vi /etc/fstab
/home ext4 errors=remount-ro,acl,user_xattr,usrquota,grpquota 0 1
Obs.: escolha a partição onde você colocará as
acls e cotas.
3. Remonte a partição:
# mount -o remount,rw /home
4. Instalando Kerberos e Bind9:
# apt-get install bind9 krb5-kdc
5. Configurando o Bind9:
# vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 host.empresa.local host
192.168.0.x host.empresa.local host
# vi /etc/resolv.conf
search EMPRESA.LOCAL
domain EMPRESA.LOCAL
nameserver 192.168.0.x
# vi /etc/bind/named.conf #Inclua a linha abaixo no final do arquivo.
include "/usr/local/samba/private/named.conf";
# vi /etc/bind/named.conf.options #Inclua as linhas que estão comentadas.
forwarders {
8.8.8.8; # Dns de sua escolha para resolver nomes externos
};
//
==============================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
==============================================================
dnssec-validation yes;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab"; # Quando provisionar o samba vai criar essa chave e precisa ser adicionada aqui o path completo
allow-query {
192.168.0.0/24;
};
allow-recursion {
192.168.0.0/24;
};
};
6. Configurando as entradas no Bind9:
# vi /etc/bind/db.local #Inclua as Linhas comentadas
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
host IN A 192.168.0.x
_kerberos._udp.empresa.local. IN SRV 0 100 88 host
_ldap._tcp.empresa.local. IN SRV 0 100 389 host
_kpasswd._udp.empresa.local. IN SRV 0 100 464 host
# vi /etc/apparmor.d/usr.sbin.named #Inclua as Linhas abaixo:
/usr/local/samba/lib** rm,
/usr/local/samba/private/dns.keytab r,
/usr/local/samba/private/named.conf r,
/usr/local/samba/private/dns/** rwk
Obs.: estes arquivos ainda não existem, só após o provisionamento do Samba.
Baixando e Instalando Samba 4
Instalando e Configurando:
# wget http://www.samba.org/samba/ftp/stable/samba-4.1.13.tar.gz
# tar –xf samba-4.1.13.tar.gz
# cd samba-4.1.13
# ./configure
# make
# make install
# cd /usr/local/samba/bin
#./samba-tool domain provision
Então, a primeira pergunta é:
Realm: EMPRESA.LOCAL
Obs.: Aqui, você deverá inserir o seu domínio totalmente qualificado FQDN, nesse caso:
Domain [EMPRESA]: EMPRESA
Server Role (dc, member, standalone) [dc]: dc
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Obs: Após colocar senha, o Samba começa o provisionamento e criação dos arquivos necessários para seu funcionamento.
# cd /usr/local/samba/sbin
#./samba start
Testando o Samba:
# cd /usr/local/samba/bin
#./smbclient --version
/usr/local/samba/bin/smbclient -L localhost -U Administrator
Obs.:Irá pedir para inserir a senha que colocou no provisionamento acima
O retorno do comando acima, é para ser este:
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.13)
Acessar o Diretório
/usr/local/samba/private - modificar as permissões:
drwxrwxr-x 3 bind bind 4096 Mai 22 17:49 dns
-rw-r----- 1 bind bind 747 Mai 22 17:49 dns.keytab
-rw-r--r-- 1 bind bind 555 Mai 22 17:49 named.conf
Edite o arquivo
/usr/local/samba/private/named.conf:
# This DNS configuration is for BIND 9.8.0 or later with dlz_dlopen support.
#
# This file should be included in your main BIND configuration file
#
# For example with
# include "/usr/local/samba/private/named.conf";
#
# This configures dynamically loadable zones (DLZ) from AD schema
# Uncomment only single database line, depending on your BIND version
#
dlz "AD DNS Zone" {
# For BIND 9.8.0
database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so";
# For BIND 9.9.0
# database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so";
};
Obs.: descomente a linha "database" de acordo com a versão do seu Bind .
O Samba, na instalação, já cria o arquivo do
kerberos. O arquivo se encontra em:
/usr/local/samba/private/krb5.conf
Renomeie o conf abaixo, para:
# mv /etc/krb5.conf krb5.conf.old
# cp /usr/local/samba/private/krb5.conf /etc/
Criando o ticket no kerberos:
# kinit administrator@EMPRESA.LOCAL
Verificando o Ticket:
# klist
O retorno do comando acima será:
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@EMPRESA.LOCAL
Valid starting Expires Service principal
01/10/13 08:39:48 01/11/13 08:39:46 krbtgt/
EMPRESA.LOCAL@EMPRESA.LOCAL
Agora, vamos copiar o script binário para
/etc/init.d/:
# cp /usr/local/samba/sbin/samba /etc/init.d/samba
# chmod +x /etc/init.d/samba
# echo /etc/init.d/samba start >> /etc/rc.local
Vamos dar um restart nos serviços abaixo:
- /etc/init.d/apparmor restart
- /etc/init.d/bind9 restart
- /etc/init.d/samba restart
Testando os serviços:
# host -t SRV _ldap._tcp.empresa.local.
_ldap._tcp.empresa.local has SRV record 0 100 389 host.empresa.local
# host -t SRV _kerberos._udp.empresa.local
_kerberos._udp.empresa.local has SRV record 0 100 88 host.empresa.local
# host -t A host.empresa.local.
host.empresa.local has address 192.168.0.x
# nslookup host.empresa.local
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: host.empresa.local
Address: 192.168.0.x
# dig -t srv _kerberos._udp.empresa.local +short
0 0 88 host.empresa.local.
# dig -t srv _ldap._tcp.empresa.local +short
0 0 389 host.empresa.local.
# dig -t srv _kpasswd._udp.empresa.local +short
0 0 464 host.empresa.local.
# dig host.empresa.local +short
192.168.0.x
Conclusão
O Samba 4 está bastante maduro e se mostra muito robusto em redes com muitos usuários.
Abaixo, segue o link do rsat da microsoft, ferramenta para administração do Windows Server para gerenciamento do servidor Samba 4 ou use, o
samba-tools.
Obs.: caso faltou algo, mande uma mensagem para atualizar o artigo.