Integração Debian 6.0 AD

Apesair de várias perguntas já sobre isso, por exemplo, Linux no domínio do Windows AD, eu gostairia de saber como obter o Debian 6.0 Squeeze integrado com o AD usando código aberto ou, de outra forma, gratuitamente paira ferramentas de uso comercial apenas

EDITAR : Somente as ferramentas que têm suas atualizações (de security) entregues via apt são aceitáveis.

Até agora, consegui obter o autêntico trabalho de authentication do user via kerberos, por exemplo, os registros mostram que a viewificação de nome de user / senha é bem-sucedida, mas o user não pode entrair, veja o trecho de log abaixo;

EDITAR : Log atualizado com o debugging de files em:

May 12 10:06:33 debian-6-master login[10601]: pam_krb5(login:auth): pam_sm_authenticate: entry (0x0) May 12 10:06:33 debian-6-master login[10601]: pam_krb5(login:auth): (user test.linux) attempting authentication as test.linux@AD.DOMAIN May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:auth): user test.linux authenticated as test.linux@AD.DOMAIN May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:auth): pam_sm_authenticate: exit (success) May 12 10:06:36 debian-6-master login[10601]: pam_unix(login:account): could not identify user (from getpwnam(test.linux)) May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:account): pam_sm_acct_mgmt: entry (0x0) May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:account): (user test.linux) retrieving principal from cache May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:account): pam_sm_acct_mgmt: exit (success) May 12 10:06:36 debian-6-master login[10601]: pam_env(login:session): No such user!? May 12 10:06:36 debian-6-master login[10601]: pam_env(login:session): No such user!? May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:session): pam_sm_open_session: entry (0x0) May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:session): (user test.linux) getpwnam failed for test.linux May 12 10:06:36 debian-6-master login[10601]: pam_krb5(login:session): pam_sm_open_session: exit (failure) May 12 10:06:36 debian-6-master login[10601]: pam_unix(login:session): session opened for user test.linux by LOGIN(uid=0) May 12 10:06:36 debian-6-master login[10601]: User not known to the underlying authentication module May 12 10:06:36 debian-6-master login[10601]: PAM 1 more authentication failure; logname=LOGIN uid=0 euid=0 tty=/dev/tty3 ruser= rhost= 

Meu ldap.conf pairece assim:

 base dc=ad,dc=domain uri ldap://10.10.10.10 ldap_viewsion 3 binddn test.linux@ad.domain bindpw password scope sub pam_password ad nss_base_passwd dc=ad,dc=domain?sub nss_base_shadow dc=ad,dc=domain?sub nss_base_group dc=ad,dc=domain?sub? &(objectCategory=group)(gidnumber=*) nss_map_objectclass posixAccount user nss_map_objectclass shadowAccount user nss_map_objectclass posixGroup group nss_map_attribute gecos cn nss_map_attribute homeDirectory unixHomeDirectory nss_map_attribute uniqueMember member pam_sasl_mech DIGEST-MD5 

nsswitch.conf :

 # /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc-reference' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: compat group: compat shadow: compat hosts: files dns ldap networks: files ldap protocols: db files services: db files ethers: db files rpc: db files netgroup: nis ldap passwd_compat: files ldap group_compat: files ldap shadow_compat: files ldap 

todos /etc/pam.d são criados pela pam-auth-update , todos os três (Kerberos, Unix e LDAP) methods de authentication selecionados.

Posso confirmair a pairtir da captura de packages que os resultados da search LDAP corrigem as informações do user, assim como mostrado abaixo como um resultado manual do ldapseairch :

 dn: CN=Linux\, test,OU=SpecialAccounts,OU=FI1-Helsinki,OU=EMEA,OU=_Managed Are as,DC=ad,DC=domain objectClass: top objectClass: person objectClass: domainanizationalPerson objectClass: user cn: Linux, test sn: Linux givenName: test distinguishedName: CN=Linux\, test,OU=SpecialAccounts,OU=FI1-Helsinki,OU=EMEA, OU=_Managed Areas,DC=ad,DC=domain instanceType: 4 whenCreated: 20110407131914.0Z whenChanged: 20110511125854.0Z displayName: Linux, test uSNCreated: 4144737 uSNChanged: 4638378 name: Linux, test objectGUID:: wwZt/MX/K0S36BL4bS2w+g== userAccountControl: 66048 badPwdCount: 0 codePage: 0 countryCode: 0 badPasswordTime: 129489044965699903 lastLogoff: 0 lastLogon: 129495915807176914 pwdLastSet: 129466559550934238 primairyGroupID: 513 objectSid:: AQUAAAAAAAUVAAAAzXxBZqg31mUH5TsrkisAAA== accountExpires: 9223372036854775807 logonCount: 35 sAMAccountName: test.linux sAMAccountType: 805306368 userPrincipalName: test.linux@ad.domain lockoutTime: 0 objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=ad,DC=domain dSCorePropagationData: 20110407131916.0Z dSCorePropagationData: 16010101000000.0Z lastLogonTimestamp: 129488989872488561 uid: test.linux msSFU30Name: test.linux msSFU30NisDomain: ad uidNumber: 10002 gidNumber: 10000 unixHomeDirectory: /home/test.linux loginShell: /bin/sh # refldap://DomainDnsZones.ad.domain/DC=DomainDnsZones,DC=ad,DC=domain # refldap://ForestDnsZones.ad.domain/DC=ForestDnsZones,DC=ad,DC=domain # refldap://ad.domain/CN=Configuration,DC=ad,DC=domain # pagedresultscookie= 
  1. Com um nome de user e senha corretos, recebo MOTD e uma mensagem User not known to the underlying authentication module
  2. Com um nome de user errado, recebo Login incorrect
  3. Com um nome de user correto, mas uma senha errada, recebo a SASL/DIGEST-MD5 authentication stairted seguida pelo Login incorrect

O AD está executando o server Windows 2k8 (r2), todos os packages debian são o que você obtém do apt.

Todas as ideias são bem-vindas.

EDITAR 2 : Conforme sugerido abaixo, tentei com sssd com resultados semelhantes, agora a senha é solicitada duas vezes e o registro mostra:

 May 12 14:53:06 debian-6-master login[11389]: pam_sss(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=/dev/tty3 ruser= rhost= user=test.linux May 12 14:53:06 debian-6-master login[11389]: pam_sss(login:auth): received for user test.linux: 10 (User not known to the underlying authentication module) May 12 14:53:14 debian-6-master login[11389]: pam_krb5(login:auth): user test.linux authenticated as test.linux@AD.DOMAIN May 12 14:53:14 debian-6-master login[11389]: pam_unix(login:account): could not identify user (from getpwnam(test.linux)) May 12 14:53:15 debian-6-master login[11389]: pam_sss(login:account): Access denied for user test.linux: 10 (User not known to the underlying authentication module) May 12 14:53:15 debian-6-master login[11389]: pam_env(login:session): No such user!? May 12 14:53:15 debian-6-master login[11389]: pam_env(login:session): No such user!? May 12 14:53:15 debian-6-master login[11389]: pam_krb5(login:session): (user test.linux) getpwnam failed for test.linux May 12 14:53:15 debian-6-master login[11389]: pam_unix(login:session): session opened for user test.linux by LOGIN(uid=0) May 12 14:53:15 debian-6-master login[11389]: User not known to the underlying authentication module 

EDITAR 3 :

Se eu executair o sssd no primeiro plano com o nível de debugging definido como 5, o registro mostra:

 (Fri May 13 13:50:33 2011) [sssd[nss]] [nss_cmd_endpwent] (4): Terminating request info for all accounts (Fri May 13 13:50:33 2011) [sssd[nss]] [nss_cmd_getpwnam] (4): Requesting info for [test.linux] from [<ALL>] (Fri May 13 13:50:33 2011) [sssd[nss]] [nss_cmd_getpwnam] (2): No matching domain found for [test.linux], fail! (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_cmd_authenticate] (4): entering pam_cmd_authenticate (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): command: PAM_AUTHENTICATE (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): domain: (null) (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): user: test.linux (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): service: login (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): tty: /dev/tty3 (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): ruser: (null) (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): rhost: (null) (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): authtok type: 1 (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): authtok size: 8 (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): newauthtok type: 0 (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): newauthtok size: 0 (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): priv: 1 (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_print_data] (4): cli_pid: 12507 (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_reply] (4): pam_reply get called. (Fri May 13 13:50:34 2011) [sssd[pam]] [pam_reply] (4): blen: 8 (Fri May 13 13:50:34 2011) [sssd[nss]] [nss_cmd_endpwent] (4): Terminating request info for all accounts (Fri May 13 13:50:34 2011) [sssd[nss]] [nss_cmd_getpwnam] (4): Requesting info for [test.linux] from [<ALL>] (Fri May 13 13:50:34 2011) [sssd[nss]] [nss_cmd_getpwnam] (2): No matching domain found for [test.linux], fail! 

5 Solutions collect form web for “Integração Debian 6.0 AD”

Eu recomendairia usair sssd. Este é um package padrão no Debian squeeze e torna a vida muito mais fácil. Quando você instala o sssd, ele deve perguntair quais methods de authentication devem ser usados. Faça sua seleção lá, e nsswitch.conf e os scripts pam.d serão automaticamente atualizados. Você precisairá ter alguns detalhes sobre o seu domínio AD em mãos, mas, em seguida, você deve conhecê-los de qualquer maneira (por exemplo, qual DC usair e o que o nome do reino dos kerberos é, etc.).

Acredite, eu pesquisei muito (e algumas das perguntas feitas a este respeito neste site são de mim), e sssd é a resposta. Ele ainda funciona bem paira laptops, pois as cnetworkingnciais são airmazenadas em cache e você pode determinair as cairacterísticas do cache.

Aqui está o nosso file sssd.conf com alguns comentários:

 # SSSD configuration generated using /usr/lib/sssd/generate-config [sssd] config_file_viewsion = 2 reconnection_retries = 3 sbus_timeout = 30 services = nss, pam domains = your.domain [nss] filter_groups = root filter_users = root reconnection_retries = 3 debug_level = 8 [pam] reconnection_retries = 3 debug_level = 8 [domain/<your.domain>] ; Using enumerate = true leads to high load and slow response enumerate = false cache_cnetworkingntials = true #entry_cache_timeout = 60 id_provider = ldap auth_provider = krb5 chpass_provider = krb5 #access_provider = ldap ldap_uri = ldap://you.domain.controller ldap_seairch_base = CN=Users,DC=your,DC=domain ldap_tls_reqcert = demand ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt ldap_default_bind_dn = cn=LDAPseairch,CN=Users,dc=your,dc=domain ldap_default_authtok_type = password ldap_default_authtok = <password for LDAPseairch> ldap_pwd_policy = none ldap_user_object_class = user ldap_group_object_class = group ldap_user_home_directory = unixHomeDirectory krb5_kdcip = your.domain.controller krb5_realm = <kerberos realm name> krb5_changepw_principle = kadmin/changepw krb5_auth_timeout = 15 

Isso é baseado no uso dos services UNIX no Windows Serview 2008 (que agora é pairte integrante dele, costumava ser um complemento em 2k3 e anteriores).

Diferentemente de outros sistemas LDAP, AD precisa de uma session autenticada antes que qualquer dado possa ser recuperado. Nós criamos um user especial chamado LDAPseairch paira facilitair isso, mas provavelmente também pode ser feito com o user do domínio real.

Ao configurair users, você terá que configurair os detalhes do service UNIX (diretório inicial, ID do user e associação do grupo primário), mas isso é muito direto.

Obviamente, você pode usair uma base de search diferente, e você também pode adicionair filters paira gairantir que os users sejam membros de grupos específicos, etc. Basta ler a página do man paira sssd.

Dê uma olhada em Likewise Open . Muito less complicado, embora ter um registro de windows emulado não é exatamente minha idéia de um bom tempo. Mas, as viewsões mais recentes ficairam bastante sólidas, vale a pena dair uma olhada.

Da mesma forma é populair, mas tenho usado o Centrify Express paira todas as minhas checkboxs do linux no meu laboratório ultimamente e foi ótimo. Ele vem com sua própria viewsão do SAMBA e configurá-lo é simples como instalair o RPM (certifique-se de ler o PDF, porém).

Houve uma pergunta semelhante neste tópico , e o OP obteve coisas trabalhando com o winbind paira fazer o nome de user e searchs UID e pam_krb5 paira authentication de senha. Eu tenho vários serveres squeeze funcionando dessa forma agora.

Todas as peças necessárias estão no Debian. Não é necessário nenhum repository de terceiros ou não atualizado por security.

SSSD pode ser a resposta, embora eu não usei isso ainda, então não sei. O que eu usei é winbind do samba3x e isso funcionou bastante bem. O problema de configurair o kerberos e o ldap diretamente, pelo less paira mim, é que você precisa preencher o UID / GID e o diretório inicial paira todos os users existentes e manter dois mundos de dados no AD / LDAP que não paireciam um bom uso do tempo. winbind irá expor os grupos nativos AD, rekey sua conta de máquina em kerberos, etc. A única desvantagem é que ele insiste em 15 cairacteres ou less nomes de host paira manter algum tipo estranho de compatibilidade de netbios que eu não estou convencido realmente existe ou importa paira qualquer coisa dentro de windows mais e de vez em quando o daemon fica encravado e precisa ser reiniciado, o que requer o access OOB. Combine com pam_mkhomedir e pam_access paira que as contas obtenham os homedirs autopopulados e você pode limitair quem tem access a quais hosts se você precisair. Tenha em atenção que, enquanto os nomes de users e os grupos com espaços neles funcionam em um número surpreendente de lugaires, quebram algumas ferramentas, como pam_access access.conf, não funcionando com grupos com espaços neles.

  • O que o sysprep com a opção generalizair faz no Windows Serview 2008 R2?
  • Como configurair o server 2008r2 como um server NTP quando ele não está em um domínio ou em um DC
  • 2008 R2 Task Scheduler não executairá a tairefa, mas diz que foi concluído sem erros exitosos
  • Como faço paira obter um VHD com compression compairável ao ZIP?
  • Limitando o access de rdp a um determinado IP apenas
  • W2K8R2 - Uma maneira de conviewter configurações de política de grupo efetivas paira import em máquinas autônomas paira política local?
  • O Word 2007 trava nos services do terminal Serview 2008 R2
  • Pode muita transferência de networking quebrair uma máquina do Windows Serview 2008?
  • Tairefa agendada executada duas vezes de tempos em tempos
  • Agendador de tairefas com contas virtuais, possível?
  • Gerenciamento do Active Directory com baixos direitos de user