Guia de Servios de Segurana e Diretrio Windows

  • Slides: 33
Download presentation
Guia de Serviços de Segurança e Diretório Windows para Unix Fernando Cima Consultor de

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

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

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

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 v 5 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

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

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

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

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

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

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

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_krb

• GINA • Aplicação • Login • Aplicação (login) • SSPI • pam_krb 5 • 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 V 5 • 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 para Autenticação • Aplicação • login • pam_ldap • Em claro ou SSL • LDAP API • Open. LDAP • . . . • LDAP (V 3) - 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

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 R 2 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 • ADSI Active Directory Services Interface • LDAP API • LDAP

LDAP • Aplicação • ADSI Active Directory Services Interface • LDAP API • LDAP (V 3) • - 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

Selecionando Componentes Unix para Solução 2 • Kerberos – MIT v 1. 3. 7 ou superior – Heimdal – Soluções proprietárias • LDAP – Open. LDAP 2. 2 – PADL nss_ldap

Configuração do Kerberos • Passo 1: Criar conta dos usuários Unix no Active Directory

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 krb 5. conf

Criando o arquivo keytab ktpass -princ host/linuxbox. sub. microsoftdemo. com@SU B. MICROSOFTDEMO. COM -mapuser

Criando o arquivo keytab ktpass -princ host/linuxbox. sub. microsoftdemo. com@SU B. MICROSOFTDEMO. COM -mapuser linuxbox -password -out linuxbox. keytab

Funcionou… Targeting domain controller: msftaddemo. sub. microsoftdemo. com Successfully mapped host/linuxbox. sub. microsoftdemo. com

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: 0 x 502 keysize 79 host/ linuxbox. sub. microsoftdemo. com@SUB. MICROSOFTDEMO. COM ptype 1 (KRB 5_NT_PRINCIPAL) vno 3 etype 0 x 3 (DES-CBC-MD 5) keylength 8 (0 x 0 e 9 bd 5 da 314 f 5 bad) Account linuxbox has been set for DES-only encryption.

Usando o Arquivo keytab • Transfira o aquivo keytab do DC para o sistema

Usando o Arquivo keytab • Transfira o aquivo keytab do DC para o sistema Unix – Midia removível – Use Pu. TTY para se conectar via SSH • Use ktutil para importar o arquivo • No prompt ktutil: digite rkt linuxbox. keytab • No prompt ktutil: digite wkt /etc/krb 5. keytab

Configure o Arquivo pam. conf # Greatly simplified Kerberos Setup # # Authentication for

Configure o Arquivo pam. conf # Greatly simplified Kerberos Setup # # Authentication for logon # other auth sufficient pam_krb 5. so other auth sufficient pam_unix. so use_first_pass # # Password change mechanism # other password optional pam_krb 5. so try_first_pass other password required pam_unix. so # # There are others as well #

Configure o Arquivo krb 5. conf [libdefaults] default_realm = SUB. MICROSOFTDEMO. COM default_tkt_enctypes =

Configure o Arquivo krb 5. conf [libdefaults] default_realm = SUB. MICROSOFTDEMO. COM default_tkt_enctypes = des-cbc-md 5 default_tgs_enctypes = des-cbc-md 5 [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. . .

Configuração LDAP • Passo 1: Estenda o schema do AD schema para armazenar informação

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.

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 Password 1 • 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 posix. Account User • nss_map_objectclass shadow. Account User • nss_map_objectclass posix. Group

Configure o Arquivo ldap. conf (continuação) • # Map relevant attributes for authorization using

Configure o Arquivo ldap. conf (continuação) • # Map relevant attributes for authorization using SFU 3. 0 schema • nss_map_attribute uid s. AMAccount. Name • nss_map_attribute uid. Number ms. SFU 30 Uid. Number • nss_map_attribute gid. Number ms. SFU 30 Gid. Number • nss_map_attribute login. Shell ms. SFU 30 Login. Shell • nss_map_attribute unique. Member ms. SFUposix. Memberf • nss_map_attribute home. Directory ms. SFUHome. Directory • nss_map_attribute member. Uid ms. SFUMember. Uid • # Most stock ldap. conf files have these entries, and entries for RFC 2307

Configure o Arquivo nsswitch. conf • # Set search order for authorization data •

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

Solução Comercial – Vintela Authentication Services • Informação de autorização Unix armazenado usando RC 2307 (compatível com 2003 R 2) • Trata UIDs e GIDs não-únicos • Módulos PAM e NSS com cache para AIX, HP-UX, Solaris, Red. Hat, Su. Se • 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 Direct. Control • Informação de autorização Unix usando atributos existentes ou

Solução Comercial: Centrify Direct. Control • 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, Red. Hat, Su. Se, Debian, Mac. OS 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

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_krb 5 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.

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_krb 5 • pam_ldap necessita das informações do ldap. conf – – – pam_login_attribute s. AMAccount. Name 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

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:

Recursos • Guia de Serviços de Segurança e Diretório Windows para Unix – http: //go. microsoft. com/? linkid=5118169 • Porta 25 – http: //porta 25. technetbrasil. com. br

Seu potencial. Nossa inspiração. MR © 2006 Microsoft Corporation. Todos os direitos reservados. O

Seu potencial. Nossa inspiração. MR © 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.