Integrando FreeBSD com Active Directory e OpenLDAP

Preview:

Citation preview

Integrando FreeBSD com Active Directory e OpenLDAP

O que será mostrado nestes 60 minutos?

• O que é LDAP?• O serviço de diretório OpenLDAP• A implementação do Active Directory• O porquê da integração• O que é o SFU?• O projeto nss_ldap• O projeto pam_ldap• O segredo da integração• Os arquivos de configuração• Projeto de compatibilidade com o Active Directory• O que falta ainda?

O que é LDAP?

LDAP (Lightweight Directory Access Protocol) é um protocolo (executado sobre o TCP/IP) cliente-servidor, utilizado para acessar um serviço de Diretório. Ele foi inicialmente usado como uma interface para o X.500, mas também pode ser utilizado com autonomia e em outros tipos de servidores de Diretório.

Atualmente vem se tornando um padrão, diversos programas já possuem suporte a LDAP. Livros de endereços, autenticação, armazenamento de certificados digitais (S/MIME) e de chaves públicas (PGP), são alguns dos exemplos onde o LDAP já é amplamente utilizado.

O serviço de diretórioOpenLDAP

Um Diretório é como um banco de dados, mas tende a conter mais informações descritivas, baseadas em atributo, e é organizado em forma de árvore, não de tabela.

A informação em um Diretório é geralmente mais lida do que escrita. Como conseqüência, Diretórios normalmente não são usados para implementar transações complexas, ou esquemas de consultas regulares em bancos de dados, transações estas que são usadas para fazer um grande volume de atualizações complexas.

Atualizações em Diretórios são tipicamente simples ou nem são feitas.

Diretórios são preparados para dar resposta rápida a um grande volume de consultas ou operações de busca.

Eles também podem ter a habilidade de replicar informações extensamente; isto é usado para acrescentar disponibilidade e confiabilidade, enquanto reduzem o tempo de resposta.

Existem várias maneiras diferentes para disponibilizar um serviço de Diretório. Métodos diferentes permitem que diferentes tipos de informações possam ser armazenadas no Diretório, colocando requerimentos diferentes, sobre como aquela informação poderá ser referenciada, requisitada e atualizada, como ela é protegida de acessos não autorizados, etc..

Alguns serviços de Diretório são locais, fornecendo o serviço para um contexto restrito (ex., o serviço finger em uma máquina isolada). Outros serviços são globais, fornecendo o serviço para um contexto muito maior (por exemplo, a própria Internet).

A implementação doActive Directory

Active Directory

O porquê da integração

Autenticação integrada entre serviços

Migrações seletivas

Serviços de alta disponibilidade

Migrações de usuários / objetos entre ambientes

Suporte a NIS / NFS entre ambientes

O que é SFU?

Desde sua introdução em 1999, o Services for UNIX (SFU) iniciaram um papel principal para quem tentava fazer redes Windows e UNIX coexistir pacificamente. A versão inicial trouxe junto diversos produtos diferentes em um pacote totalmente acoplado.

A versão 2.0 do SFU se estendeu e melhorou substancialmente o suporte do Network File System (NFS), adicionando autenticação e a integração com Windows, ao fornecer um produto mais inteiramente integrado.

Com a liberação da versão 3,0 em maio, 2002, Microsoft substituiu a camada de emulação precedentes da tecnologia Interix. Interix é um subsistema completo para executar nativamente programas UNIX em ambientes Microsoft Windows Server™ 2003, Windows XP Professional, e Windows 2000.

O interix inclui um completo pacotes de softwares UNIX, como:

BashVIAWKPerlPythonGCC

Com versão 3.5 do SFU, a Microsoft melhorou o Interix SDK para suportar aplicações nativas e APIs para melhorar o suporte para a internacionalização.

A sustentação ao NFS foi estendida também para melhorar a autenticação em ambientes comDirectory® e usuários nativos do Windows 2003.

Além disso houve muitas melhorias substanciais no desempenho no NFS e em componentes NIS do SFU.

Microsoft projetou SFU 3.5 para trabalhar com uma grande escala larga plataformas UNIX-Like como, BSD/Linux/Solaris usando protocolos padronizados como LDAP, NIS, NFS.

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

Os arquivos de configuração

Instalação do SFU (Services for Unix)

O projeto pam_nsswitch

A definição das entidades definida na RFC 2307 é executada geralmente por um conjunto de chamadas da biblioteca C do UNIX (tais como o getpwnam() para retornar os atributos de um usuário).

O módulo do nss_ldap fornece os meios para ambientes Unix se integrarem a serviços de diretório OpenLDAP, buscando informações como hosts, usuários, senhas ou qualquer informação contida no serviço de diretório. O módulo é a execução da referência da RFC 2307.

O projeto pam_ldap

O módulo do pam_ldap fornece meios para o FreeBSD faça autenticação, mudança de senhas e usuários em serviços de diretórios LDAP.

O segredo da integração

Mapeamento de Objetos

Object Class (posixAccount) User

uid

msSFU30NameuidNumber

msSFU30UidNumber

Os arquivos de configuração

uri ldap://w3k.dominio.com.br/base dc=dominio,dc=com,dc=brldap_version 3binddn administrator@dominio.com.brbindpw SenhadoUsuarioAdministratorscope subpam_login_attribute msSFU30Namepam_password adnss_base_passwd cn=users,dc=dominio,dc=com,dc=br?onenss_base_group cn=users,dc=dominio,dc=com,dc=br?onenss_map_objectclass posixAccount Usernss_map_attribute uid msSFU30Namenss_map_attribute uidNumber msSFU30UidNumbernss_map_attribute gidNumber msSFU30GidNumbernss_map_attribute loginShell msSFU30LoginShellnss_map_attribute gecos namenss_map_attribute userPassword msSFU30Passwordnss_map_attribute homeDirectory msSFU30HomeDirectorynss_map_objectclass posixGroup Groupnss_map_attribute uniqueMember posixMembernss_map_attribute cn sAMAccountName

/usr/local/etc/ldap.conf

Objetos OpenLDAP UnixObjetos Active Directory Microsoft®

Os arquivos de configuração

passwd: files ldapgroup: files ldap

/etc/nsswitch.conf

Os arquivos de configuração

auth sufficient /usr/local/lib/pam_ldap.so

/etc/pam.d ; sshd, imap, ftpd e outros

O que é possivel de fazer?

Integração de serviços:

• VPN PPTP• VPN Ipsec + Radius• Mailservers (Postfix/Sedmail/Qmail)• Autenticação de Gateways PF+AUTHPF• Squid• Samba 3• Asterisk (VoIP)• Aplicações WEB (php, perl,mono C#)

Projeto de compatibilidadecom o Active Directory

Projeto de compatibilidade com o Active Directory consiste básicamente em mapear funções e tecnologias utilizadas para integração de ambientes e desenvolver similares opensource.

Projetos em andamento:

• Schemas do Active Directory• Schemas do ISA Server• Schemas do Exchange Server• Modificação de serviços• DNS• DHCP• SAMBA• PF (Packet Filter OpenBSD)• POSTFIX• Client Multi-Plataforma .NET Mono C#• Interface Web para gerenciamento centralizado

O que falta ainda?

OpenLDAP

Objetivos a serem alcançadosusando tecnologias do FreeBSD:

• Integração entre cliente/FreeBSD – servidor/FreeBSD• Definição de padrão para arvóre de diretório LDAP• Login Classes (Integração com LDAP)• MAC ou Mandatory Access Control

Duvidas?Informações?

www.tompast.orgrafael.sales@lycos.deteam@tompast.org