Migrando o Network Information Services (NIS) e Windows SFU 2003 para Subsystems for UNIX-based Applications e Identity Management for UNIX – Active Directory Domain Services
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:
- 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;
- 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;
- Referente à migração do Network Information Service (NIS) para o AD, utilizaremos o IdMU para a importação de dados;
- 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);
- 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
- 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:
- 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);
- Instale o IdMU ( https://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;
- 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:
- Importe o NIS maps para o AD DS seguindo a documentação da MS: https://technet.microsoft.com/en-us/library/cc770730.aspx ;
- 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: https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=10031 .
Synchronizing SFU Attributes with RFC2307 Attributes: https://blogs.msdn.com/b/sfu/archive/2010/03/31/synchronizing-sfu-attributes-with-rfc2307-attributes.aspx (Ashish Sahu).