Quando você trabalha em uma empresa que só tem um servidor samba, é bem tranquilo de gerenciar, mas quando são vários e as pessoas precisam ter acesso ao compartilhamento de arquivos de vários servidores a desordem é uma questão de tempo. Em poucas semanas os usuários terão uma senha para acesso a cada servidor e vai perceber que gasta mais tempo do que gostaria resetando senhas. Abaixo vamos resolver isso com um tutorial bem simples.
Primeiramente vamos estabelecer os dados de cada um dos servidores e domínio. Assim vai ficar mais fácil para que qualquer um possa ajustar às suas próprias necessidades. Informo que nesse teste usei o samba 3.6.3 em um servidor Ubuntu 12.04 LTS e o servidor Active Directory no Windows Server 2008 Enterprise
Domínio: scoobycafe.dog
Nome do servidor AD: domain01.scoobycafe.dog
Ip do servidor AD: 192.168.1.5
Nome do servidor SAMBA: ubuntu.scoobycafe.dog
Ip do servidor SAMBA: 192.168.1.10
E não esqueça que é muito importante que o relógio de ambos servidores esteja sincronizado. Para garantir isso utilize esse comando:
# ntpdate 192.168.1.5
Agora vamos instalar o samba:
# apt-get install samba
Abaixo vou colocar o arquivo smb.conf que utilizei, fiquem à vontade para fazer as devidas alterações:
#======================= Opções Globais================================#
[global]
workgroup = SCOOBYCAFE
server string = servidor de arquivos
security = domain
realm = SCOOBYCAFE.DOG
password server = 192.168.1.5
passdb backend = tdbsam
load printers = yes
cups options = raw
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
domain master = no
local master = no
preferred master = no
os level = 0
#========================= Compartilhamentos============================#
# Pastas pessoais dos usuários
[arquivos]
path = /home/arquivos
comment = Arquivos restritos a familia
browseable = yes
writable = yes
valid users = alexandre
force create mode = 0777
[diretorio]
path = /home/diretorio
comment = Arquivos restritos aos pais
browseable = yes
valid users = vanessa
writable = yes
force create mode = 0777
[backup]
path = /home/backup
comment = Arquivos restritos aos pais
browseable = yes
valid users = vanessa
writable = yes
force create mode = 0777
Vamos editar este arquivo, para alterar o servidor dns principal do servidor de arquivos:
# etc/resolvconf/resolv.conf.d/head
Editei o meu da seguinte forma:
nameserver
192.168.1.5
nameserver 8.8.8.8
Saia e salve o arquivo, para que as configurações se tornem permanentes, utilize esse comando:
# resolvconf
-u
Para resolver nomes, eu coloquei o ip do servidor dns do AD e o secundário do GOOGLE. Eu recomendo que, caso a sua rede tenha um servidor DNS secundário, coloque o seu ip no lugar do GOOGLE, assim se um servidor estiver fora, o outro ainda vai permitir a autenticação.
Agora vamos editar o arquivo "/etc/hosts" e adicionar as seguintes linhas:
127.0.0.1 ubuntu.scoobycafe.dog ubuntu
127.0.0.2 ubuntu.scoobycafe.dog ubuntu
Salve e saia. Agora vamos fazer a instalação do kerberos:
# aptitude
install krb5-kdc krb5-admin-server libkrb5-dev
Edite o arquivo "/etc/krb5.conf" e deixe ele da seguinte forma:
[libdefaults]
default_realm = SCOOBYCAFE.DOG
[realms]
SCOOBYCAFE.DOG = {
kdc = domain01.scoobycafe.dog
admin_server = domain01.scoobycafe.dog
default_domain = SCOOBYCAFE.DOG
}
[domain_realm]
.scoobycafe.dog = SCOOBYCAFE.DOG
scoobycafe.dog = SCOOBYCAFE.DOG
# kinit administrador@SCOOBYCAFE.DOG
Coloque a senha de administrador do seu domínio. Para ter certeza de que tudo ocorreu com sucesso, execute o comando "klist". A saída dele deve ser parecida com o que aparece abaixo:
Ticket
cache: FILE:/tmp/krb5cc_0
Default
principal: administrador@SCOOBYCAFE.DOG
Valid
starting Expires Service principal
20-07-2012
23:23:30 21-07-2012 09:23:31
krbtgt/SCOOBYCAFE.LOCAL@SCOOBYCAFE.DOG
renew
until 21-07-2012 23:23:30
Agora vamos fazer as últimas instalações:
# apt-get install winbind smbclient smbfs
Acesse
o arquivo “/etc/nsswitch.conf” e
deixar as primeiras linhas da seguinte forma:
passwd:
compat winbind
group:
compat winbind
shadow:
compat
Agora
finalmente podemos nos logar junto ao servidor:
# net
rpc join -U administrador
Coloque a senha de administrador. Se a mensagem a seguir aparecer, tudo está correto até agora:
#Joined
domain SCOOBYCAFE.
Reinicie os serviços:
# service smbd restart
# service winbind restart
# service sshd restart
Após
tudo isso executar o comando “wbinfo -u” para exibir os usuários
do domínio e “wbinfo -g” para exibir os grupos do domíno AD.
Um detalhe importante deve ser informado. Caso ambos os servidores reiniciarem e o servidor SAMBA iniciar e o servidor AD não, os usuários não vão conseguir se conectar ao compartilhamento até que tenha um servidor de autenticação esteja disponível. Não se preocupem que o usuário root não é afetado com isso.