Вы находитесь на странице: 1из 6

Integrando servidor de arquivos Samba e Active Directory

Ol pessoal,
Acho que este artigo deve ser de grande importncia inclusive para administradores
de rede j que geralmente nos encontramos frente de redes heterogneas, principalme
nte com Windows e Linux. Estarei compartilhando com a comunidade minha experincia
mostrando como realizar tal tarefa. Como sabemos (ou deveramos saber) o Active D
irectory usa o Kerberos para autenticao de usurios no domnio. Ento partindo deste pri
ncpio j podemos ter em mente quais pacotes utilizar para este processo. No entrarei
em detalhes sobre a configurao e parmetros do samba pois existem muitos artigos e
tutorais na internet e assim perderamos o foco deste post. Pois bem, deixemos de
bl bl e vamos ao que interessa:
1 - Preparando o ambiente:
Usaremos o Ubuntu 8.04 LTS (com suporte at 2013) como servidor j que o suporte ofe
recido pela canonical de 5 anos, ou seja voc administrador instalando esta verso t
er tempo de se preparar para uma migrao natural que seria o Ubuntu 10.04 que ter sup
orte at 2015.
2 - Baixando os pacotes necessrios:

$ sudo apt-get update && sudo apt-get install krb5-user winbind ssh samba

3 - acerte o horrio do seu servidor samba igual ao do servidor Active Directory p
ois caso contrrio ele no permitir o logon. Para quem no conhece o comando $ sudo su
senha:
1
2
# date mmddhhmmyyyy
# exit
Onde:
mm: Ms
dd: Dia
hh: hora
mm: Minuto
yyyy: Ano
3 Editando os arquivos necessrios:
Obs: recomendo fortemente daqui pra frente antes de editar os arquivos realizar
uma cpia dos mesmos pois caso algo d errado, ser possvel a restaurao dos mesmos. Claro
que muitos sabem dessas precaues, mas fica a a dica.

$ sudo nano /etc/resolv.conf


Altere o arquivo conforme o modelo abaixo:

search seu.dominio
nameserver ip_do_dns_primario
nameserver ip_do_dns_secundario

Salve e feche o arquivo.
Altere o arquivo /etc/hosts, conforme o modelo: (neste caso apenas edite a ultim
a linha)

$ sudo nano /etc/hosts

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts

::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
ip_do_host nome_da_maquina.seu.dominio nome_do_host


Salve e feche o arquivo.
Altere o arquivo /etc/nsswitch.conf conforme abaixo:

$ sudo nano /etc/nsswitch.conf

passwd: compat winbind
group: compat winbind
shadow: compat

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis


Salve e feche o arquivo.
Edite o arquivo /etc/krb5.conf e deixe-o assim:

$ sudo nano /etc/krb5.conf



[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = SEU.DOMINIO
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes[realms]
SEU.DOMINIO = {
kdc = servidor.seu.dominio
admin_server = servidor. seu.dominio
default_domain = SEU.DOMINIO
}[domain_realm]
.dominio.seu = SEU.DOMINIO
dominio.seu = SEU.DOMINIO
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false}

Salve e feche o arquivo.
Para verificar que voc consegue se autenticar via kerberos execute o comando:

kinit usuario@SEU.DOMINIO


Ser solicitada a senha do usurio. Se no der nenhuma mensagem de erro, execute o com
ando klist. Se for mostrada uma mensagem parecida com a abaixo, voc se autenticou
com sucesso:

Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: usuario@SEU.DOMINIO
Valid starting Expires Service pricipal
RENEW UNTIL 01/31/10 16:12:30
01/30/10 18:12:30 01/31/10 04:12:34 krbtgt/SEU.DOMINIO@SEU.DOMINIO


Altere o arquivo /etc/samba/smb.conf conforme abaixo:

$ sudo nano /etc/samba/smb.conf



[global]
workgroup = dominio
security = ads
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
password server = servidor.seu.dominio
realm = SEU.DOMINIO
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/bash
winbind use default domain = true
winbind enum users = yes
winbind enum groups = yes

Aqui voc tambm acrescentar outros parmetros como a lixeira do samba, full audit, ob
viamente os compartilhamentos, impressoras etc. Porm estes parmetros acima so apena
s o necessrio para a autenticao.
Salve e feche o arquivo.
Vamos editar os mdulos do PAM:

$ sudo nano /etc/pam.d/common-account


O arquivo /etc/pam.d/common-account deve conter somente as linhas:

account sufficient pam_winbind.so
account required pam_unix.so


Salve e feche o arquivo.

$ sudo nano /etc/pam.d/common-auth


O arquivo /etc/pam.d/common-auth deve conter somente as linhas:

auth required pam_listfile.so item=user sense=allow file=/etc/system_users
onerr=fail
auth sufficient pam_winbind.so
auth required pam_unix.so nullok_secure use_first_pass


Salve e feche o arquivo.

$ sudo nano /etc/pam.d/common-session

Inclua no arquivo /etc/pam.d/common-session a linha:

session required pam_mkhomedir.so umask=0022 skel=/etc/skel

Salve e feche o arquivo.
Crie o arquivo /etc/system_users e coloque os usurios, um em cada linha, que dese
ja permitir logon no computador. NO ESQUEA DE SEUS USURIOS LOCAIS.
1
2
$ sudo touch /etc/system_users
$ sudo nano /etc/system_users
Depois de adicionados os usurios, salve e feche o arquivo.
Crie o diretrio que conter o home dos usurios do domnio:

$ sudo mkdir /home/DOMINIO


4 - Adicione o computador ao domnio com o comando:

net ads join -U usuario_com_permissao_adicionar@SEU.DOMINIO


5 - Reinicie os servios:
1
2
3
$ sudo /etc/init.d/samba restart
$ sudo /etc/init.d/winbind restart
$ sudo /etc/init.d/ssh restart
Se voc por acaso adicionou usurios do domnio para acessar o servidor faa o teste:

$ ssh usuario_do_dominio@_seu_servidor

(se por acaso voc usar uma porta diferente da 22 especifique com o parmetro -p por
ta_do_ssh)
Agora ao criar as permisses no seu domnio Active Directory elas se refletiro direta
mente no seu servidor samba.
Por exemplo:
Temos dois usuarios: maria e jose pertencentes ao grupo financeiro
No seu servidor samba basta configurar as permisses utilizando dos parmetros usado
s no seu dominio.
Um exemplo de compartilhamento seria:
[financeiro]
path = /departamentos/financeiro
writable = yes
browseable = yes
create mask = 0770
directory mask = 0770
Assim se maria e jose pertencerem ao grupo financeiro, eles podero alm do dono da
pasta acessar e criar arquivos e diretrios dentro do compartilhamento.
Para configurar as permisses locais nos diretrios:
1
2
$ sudo chgrp financeiro /departamentos/financeiro -R
$ sudo chmod 770 /departamentos/financeiro -R
Est feito. Logicamente se trata de um exemplo. Cada ambiente possui suas necessid
ades e o Administador deve ser responsvel pelo ambiente de sua rede

Вам также может понравиться