Ambientes mistos e agora?

Atualmente no meio corporativo nós nos deparamos cada vez mais com ambientes mistos. A proposta desse artigo é facilitar a vida de quem está iniciando no mundo Linux e depara-se com o seguinte:
Como ingressar uma estação Linux no ambiente que tenha como servidor de autenticação o MS Active Directory?

[ Hits: 28.144 ]

Por: Eduardo em 19/05/2011


Introdução



Título: Ambientes mistos e agora? Descrição: Atualmente no meio corporativo nós nos deparamos cada vez mais com ambientes mistos. A proposta desse artigo é facilitar a vida de quem está iniciando no mundo Linux e depara-se com o seguinte: Como ingressar uma estação Linux no ambiente que tenha como servidor de autenticação o MS Active Directory? 1 - Introdução Atualmente no meio corporativo nós nos deparamos cada vez mais com ambientes mistos. Tais como:
  • Servidores Linux e clientes Mac/Linux/Windows;
  • Servidores Windows e clientes Mac/Linux/Windows (Nesse caso são para os administradores de rede que gostam de viver com muita emoção);

Entre outros.

Sendo assim, gostaria de afirmar que a proposta desse artigo é facilitar a vida de quem está iniciando no mundo Linux e depara-se com o seguinte questionamento: Como ingressar uma estação Linux no ambiente que tenha como servidor de autenticação o MS Active Directory?

Ambiente:
  • Microsoft Windows Server 2008 R2
  • Active Directory
  • Hostname: server1
  • IP: 192.168.1.100


  • Linux Ubuntu 10.10
  • Hostname: maquina1
  • IP: 192.168.1.101
  • Samba
  • Winbind
  • Kerberos

Premissas:
  • O AD deve está configurado
  • Deve existir conectividade entre o cliente e o servidor e vice-versa (pode ser verificado através do ICMP, exemplo: Na máquina cliente, abra o shell e digite ping server1. Caso não tenha obtido nenhuma perda de pacotes, existe conectividade).
  • A máquina cliente deve ter acesso à internet.

Observações:

O artigo não demonstra como instalar e/ou configurar o Active Directory. O servidor AD possui no drive C: um diretório compartilhado no AD denominado "dados" que armazena os arquivos dos usuários.

Referências:

Conectividade entre os hosts

Visando facilitar a conectividade entres os hosts, recomendo editar o arquivo hosts na máquina cliente (Linux) da seguinte maneira.

Digite:

sudo vi /etc/hosts

Insira a seguinte linha

192.168.1.100      server1.xpto.br      server1

Para sair e salvar as configurações, digite - esq:x<enter>

Instalação dos aplicativos necessários

Instalação dos aplicativos necessários na máquina cliente. Digite:

sudo apt-get install krb5-user krb5-config libpam-krb5 winbind samba smbclient smbfs samba-common libpam-mount

Configuração dos arquivos

Abaixo segue a um exemplo de configuração dos arquivos. Esses arquivos podem ser customizados de acordo com o ambiente. Editando o krb5.conf, lê-se: arquivo de configuração do kerberos.

Para editar o arquivo digite:

sudo vi /etc/krb5.conf

Caso não exista, insira as referências ao libdefaults, realms e domain_realm.

Insira as seguintes linhas:

[libdefaults]
default_realm = XPTO.BR
dns_lookup_realm= true
dns_lookup_kdc= true
ticket_lifetime= 24h
forwardable= yes

[realms]
        XPTO.BR = {
                kdc= server1.xpto.br
                admin_server=  server1.xpto.br
                default_domain=  XPTO.BR
        }

[domain_realm]
        .xpto.br = XPTO.BR
        xpto.br = XPTO.BR

Para sair e salvar as configurações, digite - esq:x<enter>

Editando o nsswitch.conf, lê-se: arquivo que determina a ordem das buscas realizadas quando uma certa informação é requisitada.

Para editar o arquivo digite:

sudo vi /etc/nsswitch.conf

Caso não exista, insira as referências conforme a descrição abaixo.

passwd:         compat winbind
group:          compat winbind

Para sair e salvar as configurações, digite - esq:x<enter>

Editando o smb.conf, lê-se: arquivo de configuração do Samba.

Para editar o arquivo digite:

sudo vi /etc/samba/smb.conf

Caso não exista, insira as referências conforme a descrição abaixo.

#Change this to the workgroup/NT-domain name your Samba server will part
workgroup = xpto

# Cap the size of the individual log files (in KiB).
   max log size = 1000

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
   security = ads
   password server=server1.xpto.br
   realm= XPTO.BR

# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
   idmap uid = 10000-20000
   idmap gid = 10000-20000
   template shell = /bin/bash
   template homedir = /home/%U

# The following was the default behaviour in sarge,
# but samba upstream reverted the default because it might induce
# performance issues in large organizations.
# See Debian bug #368251 for some of the consequences of *not*
# having this setting and smb.conf(5) for details.
   winbind use default domain = true
   winbind enum groups = yes
   winbind enum users = yes
   winbind separator = +
   winbind refresh tickets = yes
   winbind nested groups = yes

Para sair e salvar as configurações, digite - esq:x<enter>

Testando o Kerberos

sintaxe: kinit contadeadm@DOMINIO

Exemplo:

kinit Administrator@XPTO.BR
Password for Administrator@XPTO.BR:   (Digite a senha do administrador do AD)

Caso não retorne nenhuma mensagem de erro, a autenticação está funcionando.

Para visualizar as entradas no cache de credenciais locais e tabela de chaves, digite:

klist

Deve retornar algo parecido com:

Default principal: administrator@XPTO.BR

Valid starting     Expires            Service principal
04/18/11 18:52:12  04/19/11 04:52:17  krbtgt/XPTO.BR@XPTO.BR
   renew until 04/19/11 18:52:12

Para adicionar a máquina no domínio Windows, digite:

sudo net.samba3 ads join -U Administrator
$ sudo: unable to resolve host maquina1


Enter Administrator's password:   (Digite a senha do administrador do AD)

Aparecerá algo parecido como:

Using short domain name -- XPTO
Joined 'MAQUINA1' to realm 'xpto.br'

Após aparecer a mensagem, acesse o servidor AD e verifique se a máquina foi incluída com sucesso.

Acessando a máquina cliente com qualquer conta do Domínio

Para que seja possível acessar a máquina cliente (Linux) com qualquer conta do domínio você deve acessar novamente a máquina cliente e editar o arquivo  /etc/security/pam_mount.conf.xml

Digite:

sudo vi /etc/security/pam_mount.conf.xml

Caso não exista, insira as seguintes linhas.

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<!--
        See pam_mount.conf(5) for a description.
-->

<pam_mount>
<volume user="*" fstype="cifs" server="192.168.1.100" path="dados/%(USER)" mountpoint="/home/%(USER)/Documentos" options="iocharset=utf8,file_mode=0700,dir_mode=0700" />
                <!-- debug should come before everything else,
                since this file is still processed in a single pass
                from top-to-bottom -->

<debug enable="0" />

                <!-- Volume definitions -->


                <!-- pam_mount parameters: General tunables -->

<!--
<luserconf name=".pam_mount.conf.xml" />
-->

<!-- Note that commenting out mntoptions will give you the defaults.
     You will need to explicitly initialize it with the empty string
     to reset the defaults to nothing. -->
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
<!--
<mntoptions deny="suid,dev" />
<mntoptions allow="*" />
<mntoptions deny="*" />
-->
<mntoptions require="nosuid,nodev" />
<path>/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin</path>

<logout wait="0" hup="0" term="0" kill="0" />

Para sair e salvar as configurações, digite - esq:x<enter>

Pronto! Agora a máquina cliente está habilitada para aceitar autenticação de qualquer conta do domínio.

Espero ter contribuído para comunidade VOL.
   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Apache + SSL + Nenhuma mensagem de erro de certificado no IE

Leitura recomendada

Evitando acúmulo de arquivos na lixeira do Samba

Inicialização do Linux

Configurando o Samba facilmente

Samba + Windows XP (perfil móvel)

Instalação e configuração do Samba no Ubuntu Server

  
Comentários
[1] Comentário enviado por removido em 20/05/2011 - 10:08h

Ou instale o likewise.

[2] Comentário enviado por Robson_85 em 23/05/2011 - 15:24h

quando dou o comando "kinit administrador@express.com.br" ele me retorna a seguinte mensagem;

kinit: Improper format of Kerberos configuration file while initializing Kerberos 5 library

pode me dizer o que eu fiz de errado?

[3] Comentário enviado por anonymous em 23/05/2011 - 18:51h

ilsahec,

Conheço o likewise, muito bom e tb recomendo.

Robson_85,

a sintaxe correta é com o dominio digitado em caixa alta, exemplo: kinit administrador@EXPRESS.COM.BR

Compara o seu krb5.conf com o que postei e verifica se está no mesmo padrão.

[4] Comentário enviado por wellington79 em 27/04/2012 - 15:51h

ola, uma pergunta vc sabe como desmontar apos o logout. Fiz a instalacao e quando logo no linux ele monta o compartilhamento mas quando faco o logou ele nao desmonta mantei o compratilhamento montado.

[5] Comentário enviado por rgamalho em 09/07/2012 - 07:03h

Bom dia!

Estou com um problema aqui no trabalho... Estamos usando o ClearOS como servidor PDC. Até aqui, com as estações Windows, tudo perfeito! O problema surgiu quando tentamos adicionar estações Linux. O que ocorre é que o ClearOS mantém as permissões de pastas no lado do servidor em 0670 e o pam_mount não está funcionando dessa foma (Só monta as pastas que estão com permissões 0770).

A pergunta é: Tem como fazer o pam_mount funcionar com as pastas na situação original do software (não quero ter que modificar os scripts da ferramenta que está no servidor)?

Desde já,

Grato pela atenção


Contribuir com comentário