Por Caio Cesar – Revisado por Josue Yen

Uma das dúvidas de nossos clientes sobre a atualização do Active Directory Domains para o Windows Server 2008 R2 AD DS Domains é o que deve ser preparado e alterado quando se tem um SFU instalado no domínio 2003 e existem vários clientes UNIX/Linux se autenticando através deste serviço.

Neste artigo, vou fornecer as etapas que devem ser seguidas para preparar e migrar o ambiente para que os clients UNIX/Linux possam se autenticar no AD DS.

O Windows Services for UNIX (SFU) permite que computadores baseados em UNIX/Linux possam compartilhar dados, credenciais de segurança e scripts. As características do SFU e suas features estão disponíveis neste link.

Irei também adicionar os passos que devem ser efetuados referente à importação do NIS maps para o AD.

Informações Importantes antes da migração:

  1. SUA é o ambiente UNIX de desenvolvimento e o IdMU efetua a sincronização do NIS e das senhas. As informações utilizadas pelo IdMU estão armazenadas no AD (especificamente nos atributos de SFU). Um backup do system state salva as configurações utilizadas pelo IdMU;
  2. Na migração do Active Directory 2003 para o Windows Server 2008 R2 AD DS Domain, o schema será extendido em uma das etapas da migração, portanto a instalação do IdMU criará apenas o NIS container e você então utilizará a ferramenta para a gerência do seu ambiente;
  3. Referente à migração do Network Information Service (NIS) para o AD, utilizaremos o IdMU para a importação de dados;
  4. A guia de atributos UNIX só irá ser preenchida com os atributos de RFC2307 para os novos usuários e grupos, enquanto as informações antigas irão permanecer inalteradas (maiores informações de como sincronizar os atributos do SFU com o RFC2307 para todos os objetos no final do artigo);
  5. Os UNIX/Linux clients deverão ser reconfigurados para utilizar os novos atributos que serão extendidos pelo processo de migração. O map das alterações destes atributos para as versões do SFU e AD schemas estão documentadas nesta tabela:

    SFU 2.0

    SFU 3.5 Schema

    Windows Server 2003 R2 Schema

    Windows Server 2008 Schema

    uidNumber

    msSFU30UidNumber

    uidNumber

    uidNumber

    gidNumber

    msSFU30GidNumber

    gidNumber

    gidNumber

    gecos

    msSFU30Gecos

    gecos

    gecos

     

    msSFU30HomeDirectory

    unixHomeDirectory

    unixHomeDirectory

    loginShell

    msSFU30LoginShell

    loginShell

    loginShell

    shadowLastChange

    msSFU30ShadowLastChange

    shadowLastChange

    shadowLastChange

    shadowMin

    msSFU30ShadowMin

    shadowMin

    shadowMin

    shadowMax

    msSFU30ShadowMax

    shadowMax

    shadowMax

    shadowWarning

    msSFU30ShadowWarning

    shadowWarning

    shadowWarning

    shadowInactive

    msSFU30ShadowInactive

    shadowInactive

    shadowInactive

    shadowExpire

    msSFU30ShadowExpire

    shadowExpire

    shadowExpire

    shadowFlag

    msSFU30ShadowFlag

    shadowFlag

    shadowFlag

    memberUid

    msSFU30MemberUid

    memberUid

    memberUid

    memberNisNetgroup

    msSFU30MemberNisNetgroup

    memberNisNetgroup

    memberNisNetgroup

     

    msSFU30NetgroupDetail

    nisNetgroupTriple

    nisNetgroupTriple

    ipServicePort

    msSFU30IpServicePort

    ipServicePort

    ipServicePort

    ipServiceProtocol

    msSFU30IpServiceProtocol

    ipServiceProtocol

    ipServiceProtocol

    ipProtocolNumber

    msSFU30IpProtocolNumber

    ipProtocolNumber

    ipProtocolNumber

    oncRpcNumber

    msSFU30OncRpcNumber

    oncRpcNumber

    oncRpcNumber

    ipHostNumber

    msSFU30IpHostNumber

    ipHostNumber

    ipHostNumber

    ipNetworkNumber

    msSFU30IpNetworkNumber

    ipNetworkNumber

    ipNetworkNumber

    ipNetmaskNumber

    msSFU30IpNetmaskNumber

    ipNetmaskNumber

    ipNetmaskNumber

    macAddress

    msSFU30MacAddress

    macAddress

    macAddress

    bootParameter

    msSFU30BootParameter

    bootParameter

    bootParameter

    bootFile

    msSFU30BootFile

    bootFile

    bootFile

    nisMapName

    msSFU30NisMapName

    nisMapName

    nisMapName

    nisMapEntry

    msSFU30NisMapEntry

    nisMapEntry

    nisMapEntry

     

    msSFU30Password

    unixUserPassword

    unixUserPassword

     

    msSFU30MemberOfNisNetgroup

    msSFU30MemberOfNisNetgroup

    msSFU30MemberOfNisNetgroup

     

    msSFU30Aliases

    msSFU30Aliases

    msSFU30Aliases

     

    msSFU30NisDomain

    msSFU30NisDomain

    msSFU30NisDomain

     

    msSFU30PosixMember

    msSFU30PosixMember

    msSFU30PosixMember

     

    msSFU30PosixMemberOf

    msSFU30PosixMemberOf

    msSFU30PosixMemberOf

     

    msSFU30NetgroupHostAtDomain

    msSFU30NetgroupHostAtDomain

    msSFU30NetgroupHostAtDomain

     

    msSFU30NetgroupUserAtDomain

    msSFU30NetgroupUserAtDomain

    msSFU30NetgroupUserAtDomain

     

    msSFU30CryptMethod

    msSFU30CryptMethod

    msSFU30CryptMethod

     

    msSFU30Name

    msSFU30Name

    msSFU30Name

     

    msSFU30PosixAccount

    posixAccount

    posixAccount

     

    msSFU30ShadowAccount

    shadowAccount

    shadowAccount

     

    msSFU30PosixGroup

    msSFU30PosixGroup

    msSFU30PosixGroup

     

    msSFU30IpService

    ipService

    ipService

     

    msSFU30IpProtocol

    ipProtocol

    ipProtocol

     

    msSFU30OncRpc

    oncRpc

    oncRpc

     

    msSFU30IpHost

    ipHost

    ipHost

     

    msSFU30IpNetwork

    ipNetwork

    ipNetwork

     

    msSFU30NisNetgroup

    nisNetgroup

    nisNetgroup

     

    msSFU30NisMap

    nisMap

    nisMap

     

    msSFU30NisObject

    nisObject

    nisObject

     

    msSFU30Ieee802Device

    ieee802Device

    ieee802Device

     

    msSFU30BootableDevice

    bootableDevice

    bootableDevice

     

    msSFU30Top

    msSFU30Top

    msSFU30Top

     

    msSFU30MailAliases

    msSFU30MailAliases

    msSFU30MailAliases

  6. Como a informação antiga continua presente, qualquer UNIX/Linux irá continuar utilizando os atributos antigos. Estes parâmetros deverão ser reconfigurados nos servidores UNIX/Linux.

Migração:

  1. Siga este procedimento para a migração do 2003 para o 2008 (quando o schema é extendido na execução do adprep /forestprep, os atributos antigos do SFU serão migrados para o 2008);
  2. Instale o IdMU (http://technet.microsoft.com/en-us/library/cc731178.aspx ) - ele será o responsável para o gerenciamento dos usuários e irá criar o NIS container;
  3. Atualize as configurações dos servidores UNIX/Linux que efetuam bind para o AD de acordo com a tabela citada acima.

Exemplo de arquivos de configuração: krb5.conf / ldap.conf / nsswitch.conf / yp.conf / login / system-auth

Exemplo de configuração (ldap.conf):

DE

host domain_name

base DC=contoso,DC=com

ldap_version 3

binddn ccesar_binduser@contoso.com

bindpw BINDUSERPASSWD

port 389

scope sub

nss_base_passwd ou=users,dc=contoso,dc=com?one

nss_base_shadow ou=users,dc=contoso,dc=com?one

nss_base_group ou=groups,dc=contoso,dc=com?one

nss_map_objectclass msSFU30PosixAccount User

nss_map_objectclass msSFU30ShadowAccount User

nss_map_objectclass msSFU30PosixGroup Group

nss_map_attribute uid sAMAccountName

nss_map_attribute uidNumber msSFU30UidNumber

nss_map_attribute gidNumber msSFU30GidNumber

nss_map_attribute cn sAMAccountName

nss_map_attribute uniqueMember member

nss_map_attribute homeDirectory msSFU30HomeDirectory

nss_map_attribute loginShell msSFU30LoginShell

nss_map_attribute msSFU30Gecos name

ssl no

tls_cacertdir /etc/openldap/cacerts

pam_password md5

PARA

host domain_name

base DC=contoso,DC=com

ldap_version 3

binddn ccesar_binduser@contoso.com

bindpw BINDUSERPASSWD

port 389

scope sub

nss_base_passwd ou=users,dc=contoso,dc=com?one

nss_base_shadow ou=users,dc=contoso,dc=com?one

nss_base_group ou=groups,dc=contoso,dc=com?one

nss_map_objectclass posixAccountUser

nss_map_objectclass shadowAccount User

nss_map_objectclass msSFU30PosixGroup Group

nss_map_attribute uid sAMAccountName

nss_map_attribute uidNumber uidNumber

nss_map_attribute gidNumber gidNumber

nss_map_attribute cn sAMAccountName

nss_map_attribute uniqueMember member

nss_map_attribute homeDirectory unixHomeDirectory

nss_map_attribute loginShell loginShell

nss_map_attribute gecos name

ssl no

tls_cacertdir /etc/openldap/cacerts

pam_password md5

Atributos alterados:

De: msSFU30PosixAccount

Para: posixAccount

De: msSFU30ShadowAccount

Para: shadowAccount

De: msSFU30UidNumber

Para: uidNumber

De: msSFU30GidNumber

Para: gidNumber

De: msSFU30HomeDirectory

Para: unixHomeDirectory

De: msSFU30LoginShell

Para: loginShell

De: msSFU30Gecos

Para: gecos

Importante: Tenha certeza de remover o bit de confidencialidade no atributo “unixUserPassword” (searchFlag) se você está utilizando um non-admin user para efetuar bind no AD. Se isto não for efetuado, o usuário configurado para fazer LDAP bind’s não irá conseguir ler este atributo e a autenticação irá falhar.

Se você está efetuando a migração do seu Network Information Service (NIS) para o AD DS:

  1. Importe o NIS maps para o AD DS seguindo a documentação da MS: http://technet.microsoft.com/en-us/library/cc770730.aspx ;
  2. Nos servidores UNIX/Linux, atualize os atributos conforme foi explicado acima.

Maiores Informações:

Sugestão de pacotes (Linux):

- Kerberos Server;

- LDAP;

- YPBIND.

Password Synchronization é suportado a partir das seguintes versões dos sistemas operacionais:

  • Hewlett Packard HP UX 11i v1;
  • IBM® AIX® version 5L 5.2 and 5L 5.3;
  • SunSM Microsystems Solaris™ 10, Scalable Processor Architecture (SPARC)-compatible versions only.

Linux

  • Novell® SUSE® Linux Enterprise Server 10;
  • Red Hat® Enterprise Linux® 4 server.

Leituras recomendadas:

UNIX migration project guide: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=10031 .

Synchronizing SFU Attributes with RFC2307 Attributes: http://blogs.msdn.com/b/sfu/archive/2010/03/31/synchronizing-sfu-attributes-with-rfc2307-attributes.aspx (Ashish Sahu).