Guia de Serviços de
Segurança e Diretório
Windows para Unix
Fernando Cima
Consultor de Segurança
Microsoft
Objetivos
• Entender os componentes do Unix que
suportam a integração com Active Directory
• Mostrar as formas de integrar Unix ao AD e
como decidir que caminho é o mais
adequado para o ambiente
• Apresentar o Guia de Segurança e Serviços
de Diretório Windows para Unix
A Visão
• Cada usuário tem somente uma identidade
e uma senha para usar todos os serviços
de TI, e ele somente se autentica uma vez
• Toda informação de segurança do usuário
é armazenado em um único local
•Vários projetos ao longo de vários anos podem ser
necessários para transformar essa visão em realidade. Na
verdade, é possível que nenhum caminho para essa visão
exista nesse momento. Mas isso não torna a visão inválida
ou inatingível algum dia.
Abordagens para o Problema
• Convergir em um único diretório
– Uma identidade, uma senha, em um único local
– Requer suporte a padrões de mercado
– Uso do Windows requer Active Directory
• Confiança entre diretórios existentes
– Somente Kerberos v5 suportado
– Não mais “em um único local”, mas perto
• Sincronizar, interoperar
– “Uma senha”, mas não “uma identidade”
– Significativamente mais complexo
Cinco Soluções Válidas
1.
2.
3.
4.
5.
AD/Kerberos somente para autenticação
AD/Kerberos para autenticação e autorização
AD/LDAP somente para autenticação
AD/LDAP para autenticação e autorização
Relação de confiança Kerberos entre AD e Unix
somente para autenticação
•Nós recomendados a Solução 2 como a
melhor abordagem de arquitetura
Confiança entre Estruturas
Existentes
• Solução 5
• Prereq: Organização já usa Kerberos em Unix
– Geralmente em um único realm
• Arquitetura de domínios não é complexa
– UNIX Kerberos suporta relações de confiança com
domínios de dentro da floresta
– Confiança entre florestas não é estável
• É necessário ter AD/ADAM para autorização dos
usuários de Unix
Porque Integrar Somente
Autenticação?
•
•
•
•
Soluções 1 e 3
Aumenta nível de confiança da infraestrutura
Existe já uma solução robusta de autorização
Metade da solução completa
– Reduz o número de identidades
– Mantém o mesmo número de locais de autorização
• Resolve o problema do desprovisionamento
Por que Autenticação LDAP?
• Várias plataformas importantes não
suportam Kerberos
– A maior parte dos sistemas operacionais
suportam Kerberos 5
– Algumas aplicações, em especial aplicações
web, não suportam
O que há de Errado com o
LDAP?
• Não projetado como sendo um protocolo de
autenticação
– Requer configurações extras para impedir senhas em
claro na rede e ataques de man in the middle
(SSL/TLS)
• Limitações de performance e escabilidade
– Autenticação requer bind LDAP
– Única prova de identidade é uma conexão ao servidor
– Não existe transitividade da identidade
Melhor Prática
• Solução 2
– Autenticação Kerberos
– Autorização via LDAP
• Consolidação de diretório, provisionamento e
deprovisionamento simplificado, senha única,
política comum…
• Usa os protocolos e serviços como eles foram
projetados
Seqüência de Logon Unix
• login obtém usuário e senha
• login chama PAM para autenticar usuário
– PAM usa vários módulos para tentar a autenticação
• login chama getpwnam() para obter dados de
autorização dos usuários
– getpwnam() por sua vez chama o NSS
– NSS usa vários módulos para tentar obter a
informação pedida
• login usa dados de autorização para criar o
processo inicial (shell)
•GINA
•Aplicação
•Login
•Aplicação
(login)
•SSPI
•pam_krb5
•GSSAPI
•LSA
•Cache de
credencial
(ticket)
•Windows
•Kerberos
(MIT de-facto)
•Serviço
•principal
key table
•Cache de
credencial
(ticket)
•Serviço default
•principal
key table
•Linux
•RFC 1510 – Kerberos V5
•AS - Authentication Service
•TGS - Ticket Granting Service
•KRB
•MIT de-facto
•CPW - Change password service
•kinit
•klist
•kdestroy
•kpasswd
•(MIT de-facto)
Kerberos para Autenticação
LDAP para Autenticação
•Aplicação
•login
•pam_ldap
•Em claro
ou SSL
•LDAP
API
• OpenLDAP
• ...
• LDAP (V3) - RFC 2251
• LDAP API - RFC 1831
• LDAP search - RFC 2254
• “protocolo” de mudança
de senha do AD
•Linux
• Conta do usuário
• Senha
•LDAP
Autorização Integrada
• Schema RFC 2307 ou SFU 3.0 para
armazenar as informações de autorização
Unix
– SFU 3.0 somente como legado
– Windows Server 2003 R2 inclui 2307
– Pequenas diferenças em relação à RFC;
detalhes no Guia
• Alguma política de grupo são aplicadas
– Ferramentas Unix não se preocupam com isso
LDAP
•Aplicação
•Aplicação
•ADSI
Active Directory
Services Interface
•LDAP
API
• LDAP (V3)
• - RFC 2251
• LDAP API
• - RFC 1831
• LDAP search
• - RFC 2254
•getpwnam
•LDAP
API
•nss_ldap
• nscd cache
daemon
•Windows
•Linux
•Em claro, SSL ou SASL
• Conta do Usuário
• Grupos
• Telefone
• E-mail
•…
•login
• Conta do Usuário
•LDAP
• UID
• GID
• Diretório home
• Grupos
•…
Selecionando Componentes
Unix para Solução 2
• Kerberos
– MIT v 1.3.7 ou superior
– Heimdal
– Soluções proprietárias
• LDAP
– OpenLDAP 2.2
– PADL nss_ldap
Configuração do Kerberos
• Passo 1: Criar conta dos usuários Unix no Active
Directory
• Step 2: Criar contas de computador para os
sistemas Unix no Active Directory
• Step 3: Criar arquivos keytab para os sistemas
Unix
• Step 4: Transferir e instalar o aquivo keytab no
sistema Unix
• Step 5: Configurar o arquivo pam.conf
• Step 6: Configurar o arquivo krb5.conf
Criando o arquivo keytab
ktpass -princ
host/linuxbox.sub.microsoftdemo.com@SU
B.MICROSOFTDEMO.COM -mapuser
linuxbox -pass password -out
linuxbox.keytab
Funcionou…
Targeting domain controller: msftaddemo.sub.microsoftdemo.com
Successfully mapped host/linuxbox.sub.microsoftdemo.com to linuxbox.
Key created.
Output keytab to linuxbox.keytab:
Keytab version: 0x502
keysize 79 host/
[email protected]
ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-CBC-MD5)
keylength 8 (0x0e9bd5da314f5bad)
Account linuxbox has been set for DES-only encryption.
Usando o Arquivo keytab
• Transfira o aquivo keytab do DC para o
sistema Unix
– Midia removível
– Use PuTTY para se conectar via SSH
• Use ktutil para importar o arquivo
• No prompt ktutil: digite
rkt linuxbox.keytab
• No prompt ktutil: digite
wkt /etc/krb5/krb5.keytab
Configure o Arquivo pam.conf
# Greatly simplified Kerberos Setup
#
# Authentication for logon
#
other auth sufficient
pam_krb5.so
other auth sufficient
pam_unix.so use_first_pass
#
# Password change mechanism
#
other password optional
pam_krb5.so try_first_pass
other password required
pam_unix.so
#
# There are others as well
#
Configure o Arquivo krb5.conf
[libdefaults]
default_realm = SUB.MICROSOFTDEMO.COM
default_tkt_enctypes = des-cbc-md5
default_tgs_enctypes = des-cbc-md5
[realms]
NA.CORP.CONTOSO.COM = {
kdc = msftaddemo.sub.microsoftdemo.com
admin_server = msftaddemo.sub.microsoftdemo.com
kpasswd_protocol = SET_CHANGE
kpasswd_server = msftaddemo.sub.microsoftdemo.com
}
[domain_realm]
.sub.microsoftdemo.com = SUB.MICROSOFTDEMO.COM
sub.microsoftdemo.com = SUB.MICROSOFTDEMO.COM
...
Configuração LDAP
• Passo 1: Estenda o schema do AD schema para
armazenar informação de autorização do Unix
• Passo 2: Provisione usuários e grupos para o
Unix
• Passo 3: Configure o cliente ldap Unix para se
conectar ao AD
• Passo 4: Configure nss_ldap para usar os
atributos desejados no AD
Configure o Arquivo ldap.conf
•# Point at DC
•uri
ldap://msftaddemo.sub.microsoftdemo.com
•#uri
ldaps://msftaddemo.sub.microsoftdemo.com
•# Distinguished name and password to bind with
•binddn cn=proxyuser,cn=Users,dc=sub,dc=microsoftdemo,dc=com
•bindpw Password1
•rootbinddn cn=proxyadmin,cn=Users,dc=sub,dc=microsoftdemo,dc=com
•# Locate base for searches
•nss_base_passwd ou=Unixusers,dc=sub,dc=microsoftdemo,dc=com?sub
•nss_base_shadow ou=Unixusers,dc=sub,dc=microsoftdemo,dc=com?sub
•nss_base_group ou=Unixgroups,dc=sub,dc=microsoftdemo,dc=com?sub
•# Map classes (SFU 3.0 schema)
•nss_map_objectclass posixAccount User
•nss_map_objectclass shadowAccount User
•nss_map_objectclass posixGroup Group
Configure o Arquivo ldap.conf
(continuação)
•# Map relevant attributes for authorization using SFU 3.0 schema
•nss_map_attribute uid sAMAccountName
•nss_map_attribute uidNumber msSFU30UidNumber
•nss_map_attribute gidNumber msSFU30GidNumber
•nss_map_attribute loginShell msSFU30LoginShell
•nss_map_attribute uniqueMember msSFUposixMemberf
•nss_map_attribute homeDirectory msSFUHomeDirectory
•nss_map_attribute memberUid msSFUMemberUid
•# Most stock ldap.conf files have these entries, and entries for
RFC2307
Configure o Arquivo
nsswitch.conf
•# Set search order for authorization data
•passwd: files ldap [TRYAGAIN=continue]
•group: files ldap [TRYAGAIN=continue]
Solução Comercial – Vintela
Authentication Services
• Informação de autorização Unix armazenado usando RC
2307 (compatível com 2003 R2)
• Trata UIDs e GIDs não-únicos
• Módulos PAM e NSS com cache para AIX, HP-UX,
Solaris, RedHat, SuSe
• Comunicação LDAP autenticada via Kerberos (SASL)
• Snap-in MMC para gerência
• Várias GPOs suportadas
• http://www.vintela.com
Solução Comercial:
Centrify DirectControl
• Informação de autorização Unix usando atributos
existentes ou RFC 2307
• Trata UIDs e GIDs não-únicos
• Módulos PAM e NSS com cache para AIX, HP-UX,
Solaris, RedHat, SuSe, Debian, MacOS X 10.4
• Comunicação LDAP autenticada via Kerberos (SASL)
• Snap-in MMC para gerência
• Várias GPOs suportadas
• http://www.centrify.com
Solução Open Source
• Informação de autorização Unix armazenada usando
schema SFU 3.0 ou RFC 2307
• Não trata UIDs e GIDs não-únicos
• Suporte de cache limitado para NSS
– Não existe cache offline para o TGT
– Não existe cache persistente para informação de autorizaçãoç
– Maior carga nos DCs e na rede
• Algumas implementações do pam_krb5 suportam SASL
• Sem snap-in de gerência
• Sem suporte a GPOs
Mudanças para Solução 4
• Obtenha o pam_ldap via PADL
• Configure o pam.conf para usar pam_ldap ao
invés de pam_krb5
• pam_ldap necessita das informações do
ldap.conf
– pam_login_attribute sAMAccountName
– pam_filter objectclass=User
– pam_password ad
• Habilite SSL/TLS para evitar senhas em claro na
consulta LDAP
Guia dos Serviços de Diretório e
Segurança Windows para Unix
• Documentação passo a passo para a integração da
autenticação e autorização entre ambientes Unix e Active
Directory
• Organizado em quatro volumes:
– Volume 1 – Descreve as tecnologias de autenticação e
autorização existentes e ajuda a escolher a mais apropriada entre
as cinco soluções existentes
– Volume 2 – Soluções usando autenticação Kerberos (soluções 1
e 2)
– Volume 3 – Soluções usando autenticação LDAP (soluções 3 e 4)
– Volume 4 – Relação de confiança entre AD e Kerberos Unix
(solução 5)
Recursos
• Guia de Serviços de Segurança e Diretório
Windows para Unix
– http://go.microsoft.com/?linkid=5118169
• Porta 25
– http://porta25.technetbrasil.com.br
Seu potencial. Nossa inspiração.
© 2006 Microsoft Corporation. Todos os direitos reservados.
O propósito desta apresentação é apenas informativa. Microsoft não faz nenhuma garantia expressa ou implícita nesta apresentação.
MR
Download

TEMA - Microsoft