Marcelo Machado Fleury marcelomf[noSpam]gmail[p]com marcelo[p]fleury[noSpam]4linux[p]com[p]br Http://marcelomf.blogspot.co...
Agenda <ul><li>Ambiente SSO
Kerberos
Pré-requisitos: DNS/BIND, NTP, /etc/...
Kerberos e o OpenLDAP
Porque utilizar o SASL ?
Checklist de implementação
Kerberização de serviços
Demonstração </li></ul>
Ambiente SSO <ul><li>SSO ? Single Sign-On.
Vantagens </li><ul><li>Autenticação centralizada
Usabilidade
Segurança (Kerberos/GSSAPI) </li></ul><li>Cuidados </li><ul><li>Segurança (KDCSpoofing, vide apresentações na blackhat)
Disponibilidade
Manutenção </li></ul></ul>
Kerberos <ul><li>História </li><ul><li>Projeto Athena. O Cão Cérbero do deus Hades.
Versão 4 no final dos anos 80, por Steve Miller e Clifford Neuman no MIT. </li></ul><li>RFCs: 4120, 4537, 5021, 5896
Curiosidades
Implementações </li><ul><li>MIT , Heimdal, Micro$oft
... </li></ul></ul>
O ambiente Kerberos <ul><li>TTP – Trusted Third Party
KDC – Key Distribution Center </li><ul><li>AS  – Authentication Server
TGS – Ticket Granting Server </li></ul><li>SS – Service Server
TGT - Ticket Granting Ticket
Cliente </li></ul>
… o ambiente <ul><li>REALMs
Cross-Realm Operation
Upcoming SlideShare
Loading in …5
×

Kerberos e OpenLDAP: Ambiente SSO OpenSource

1,741 views

Published on

Palestra proferida no FLISOL-GO 2011.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,741
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Kerberos e OpenLDAP: Ambiente SSO OpenSource

  1. 1. Marcelo Machado Fleury marcelomf[noSpam]gmail[p]com marcelo[p]fleury[noSpam]4linux[p]com[p]br Http://marcelomf.blogspot.com Http://www.slideshare.com/marcelomf Http://twitter.com/marcelomf … #GOPHP, #GOJAVA, #PSL-GO, #ASL-GO, #GTER, #MASOCH-L, #FUG-BR, #CISSP-BR, #OWASP “ Havendo olhos suficientes, todos os erros são óbvios” By Eric S. Raymond Kerberos e OpenLDAP, um ambiente SSO OpenSource
  2. 2. Agenda <ul><li>Ambiente SSO
  3. 3. Kerberos
  4. 4. Pré-requisitos: DNS/BIND, NTP, /etc/...
  5. 5. Kerberos e o OpenLDAP
  6. 6. Porque utilizar o SASL ?
  7. 7. Checklist de implementação
  8. 8. Kerberização de serviços
  9. 9. Demonstração </li></ul>
  10. 10. Ambiente SSO <ul><li>SSO ? Single Sign-On.
  11. 11. Vantagens </li><ul><li>Autenticação centralizada
  12. 12. Usabilidade
  13. 13. Segurança (Kerberos/GSSAPI) </li></ul><li>Cuidados </li><ul><li>Segurança (KDCSpoofing, vide apresentações na blackhat)
  14. 14. Disponibilidade
  15. 15. Manutenção </li></ul></ul>
  16. 16. Kerberos <ul><li>História </li><ul><li>Projeto Athena. O Cão Cérbero do deus Hades.
  17. 17. Versão 4 no final dos anos 80, por Steve Miller e Clifford Neuman no MIT. </li></ul><li>RFCs: 4120, 4537, 5021, 5896
  18. 18. Curiosidades
  19. 19. Implementações </li><ul><li>MIT , Heimdal, Micro$oft
  20. 20. ... </li></ul></ul>
  21. 21. O ambiente Kerberos <ul><li>TTP – Trusted Third Party
  22. 22. KDC – Key Distribution Center </li><ul><li>AS – Authentication Server
  23. 23. TGS – Ticket Granting Server </li></ul><li>SS – Service Server
  24. 24. TGT - Ticket Granting Ticket
  25. 25. Cliente </li></ul>
  26. 26. … o ambiente <ul><li>REALMs
  27. 27. Cross-Realm Operation
  28. 28. PrincipalNames: primary/instance@REALM
  29. 29. ACLs
  30. 30. Backends diversos
  31. 31. Replicação, master/slave
  32. 32. Vários serviços podem ser kerberizados
  33. 33. APIs para diferentes linguagens </li></ul>
  34. 34. ... Autenticação Kerberos ...
  35. 37. Autenticação Kerberos
  36. 38. Autenticação Kerberos
  37. 39. Autenticação Kerberos
  38. 40. Autenticação Kerberos
  39. 41. Kerberos CLI <ul><li>Kinit
  40. 42. Klist
  41. 43. Kdestroy </li></ul>
  42. 44. Daemons Kerberos MIT <ul><li>Kadmind </li><ul><li>TCP: 749 (Administração, kadmin)
  43. 45. TCP: 754 (Propagação)
  44. 46. UDP: 464 (Alteração de senhas) </li></ul><li>Krb5kdc </li><ul><li>TCP/ UDP: 88 (KDC V.5)
  45. 47. TCP/ UDP: 750 (V. 4)
  46. 48. TCP/UDP: 751 (V.4) </li></ul></ul>
  47. 49. Kadmin(.local) <ul><li>Operações: </li><ul><li>PrincipalNames: </li><ul><li>addprinc, delprinc, modprinc, cpw, getprinc(s) </li></ul><li>Policys
  48. 50. Getprivs
  49. 51. Keytabs </li><ul><li>ktadd, ktrem </li></ul><li>Lock/unlock </li></ul></ul>
  50. 52. Chaves importantes <ul><li>Keytabs </li><ul><li>Administração/Acesso ao KDC. </li></ul><li>{Service.keyfile}
  51. 53. Stash
  52. 54. krbPrincipalKey </li></ul>
  53. 55. Arquivos importantes <ul><li>/etc/krb5.conf
  54. 56. /etc/krb5.keytab
  55. 57. /etc/krb5kdc/kadm5.acl
  56. 58. /etc/krb5kdc/kadm5.keytab
  57. 59. /etc/krb5kdc/kdc.conf
  58. 60. /etc/krb5kdc/{service.keyfile}
  59. 61. /etc/krb5kdc/stash </li></ul>
  60. 62. Os pré-requisitos <ul><li>NTP/NTPD </li><ul><li>Clientes e servidores com relógios sincronizados. Garantia de vida dos tickets Kerberos. </li></ul><li>DNS/BIND </li><ul><li>Utilizado pelos KDCs, clientes e serviços kerberos e programas de administração como o kadmin(.local). </li></ul><li>IMPORTANTES </li><ul><li>/etc/hosts, /etc/hostname, /etc/resolv.conf </li></ul></ul>
  61. 63. Entradas no DNS <ul><li>_kerberos
  62. 64. _kerberos-master._udp
  63. 65. _kerberos-adm._tcp
  64. 66. _kpasswd._udp
  65. 67. _kerberos._udp
  66. 68. _ldap._tcp.seu.realm </li></ul>
  67. 69. Mas e o OpenLDAP ? <ul><li>Protocolo LDAP
  68. 70. Operações
  69. 71. Índices
  70. 72. Módulos
  71. 73. ACLs
  72. 74. SSL/TLS
  73. 75. Backends diversos
  74. 76. Replicação: master/slave, multimaster </li></ul>
  75. 77. Kerberos+OpenLDAP <ul><li>Vantagens
  76. 78. OpenLDAP autenticando contra Kerberos
  77. 79. Kerberos utilizando OpenLDAP como backend
  78. 80. OpenLDAP suportando simple binds de usuários kerberizados </li></ul>
  79. 81. E o SASL ? <ul><li>GSS-API
  80. 82. Ampliação da gama de aplicações que poderão se autenticar
  81. 83. userPassword: {SASL}principalName </li></ul>
  82. 84. O seu checklist <ul><li>Os pré-requisitos
  83. 85. OpenLDAP </li><ul><li>Schemas kerberos(3), no slapd.conf(acls, sasl, authz-regexp e índices)
  84. 86. Importação do ldif inicial. </li></ul><li>Kerberos </li><ul><li>Krb5.conf, kdc.conf e kadm5.acl </li></ul><li>Criação do domínio Kerberos no OpenLDAP(kdb5_ldap_util) e do stash
  85. 87. Criação do service.keyfile(kdb5_ldap_util)
  86. 88. Criação dos keytabs </li></ul>
  87. 89. Serviços kerberizaveis <ul><li>OpenLDAP, Pam, Samba, Squid, Apache, SSH, Postfix, Cyrus ...
  88. 90. Aplicações escritas em diversas linguagens como JAVA, PHP e C.
  89. 91. WS-Security
  90. 92. ***** SEMPRE VERIFIQUE SE A APLICAÇÃO ENVIA A SENHA EM TEXTO PLANO NO PRIMEIRO LOGIN ***** </li></ul>
  91. 93. Demonstração <ul><li>SSO
  92. 94. Gestão de principalNames
  93. 95. SASL
  94. 96. OpenLDAP
  95. 97. Apache
  96. 98. Squid
  97. 99. Samba </li></ul>
  98. 100. Marcelo Machado Fleury marcelomf[noSpam]gmail[p]com marcelo[p]fleury[noSpam]4linux[p]com[p]br Http://marcelomf.blogspot.com Http://www.slideshare.com/marcelomf Http://twitter.com/marcelomf … #GOPHP, #GOJAVA, #PSL-GO, #ASL-GO, #GTER, #MASOCH-L, #FUG-BR, #CISSP-BR, #OWASP &quot;Conheço muitos que não puderam quando deviam, porque não quiseram quando podiam.&quot; By François Rabelais Muito Obrigado!

×