A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Kerberos: conceitos, melhores práticas e particularidades Vladimir Michel Bacurau Magalhães twittertwitter | Blog | LinkedInBlogLinkedIn Instrutor | Consultor.

Apresentações semelhantes


Apresentação em tema: "Kerberos: conceitos, melhores práticas e particularidades Vladimir Michel Bacurau Magalhães twittertwitter | Blog | LinkedInBlogLinkedIn Instrutor | Consultor."— Transcrição da apresentação:

1 Kerberos: conceitos, melhores práticas e particularidades Vladimir Michel Bacurau Magalhães twittertwitter | Blog | LinkedInBlogLinkedIn Instrutor | Consultor | Administrador de Bancos de Dados MCT | MCITP | MOS | MCTS | MMI | ITIL V3 | COBIT V4.1 | ISO 27002

2 Sobre PASS: PASS Chapter & Virtual Chapter Mais de 260 Organizações no nível Mundial + 20 Organizações Virtuais SQLSaturday ~200 Eventos no Mundo, um dia inteiro de treinamento livre sobre SQL Server 24 Hours of PASS Eventos online, gratuítos. Existem edições locais (Português, Espanhol, Russo, … ) SQLRally Eventos regionais, pagos. (European Nordic, Rússia, …) PASS Summit Evento pago de 3 dias + 2 dias de Workshops, conta com as equipas da Microsoft e dos melhores Profissionais. 2

3 Agenda Formas de Autenticação NTLM x Kerberos Vantagens do Kerberos Implementação Troubleshooting e Ferramentas 3

4 Formas de autenticação 4 SQL (Mixed-Mode)Windows (Trusted)

5 Formas de autenticação 5

6 6 SQL (Mixed-Mode)Windows (Trusted) Controle de acessos extra Envia senha pela rede Usuário admin (SA) conhecido Acessos de domínios não confiáveis Acesso customizado em aplicações web Controle unificado de acessos na rede Não envia senha pela rede Permite o controle por grupos Acessa apenas domínios com confiança Maior número de políticas de controle (ex: não permitir alterar senha)

7 Formas de autenticação Autenticação Windows, (Windows 2000 em diante): Utiliza algoritmo Negotiate (SPNEGO)SPNEGO SPNEGO permite que cliente e servidor negociem protocolo de autenticação que será utilizado Tenta por padrão Kerberos Caso não consiga, utiliza NTLM (NTLM fallback) 7

8 NTLM x Kerberos NTLM Cliente envia nome de usuário para o servidor Servidor gera e envia um desafio para o cliente Cliente encripta o desafio utilizando a senha do usuário Cliente envia o desafio encriptado para o servidor Servidor envia resposta do cliente para o Controlador de domínio Controlador de domínio valida resposta e envia resultado para servidor 8

9 9

10 NTLM x Kerberos Kerberos Usuário se autentica com o KDC O Authentication Service (AS), um componente do KDC, recebe requisição de autenticação e a valida KDC envia um ticket para o cliente Cliente recebe o ticket e o coloca em cache Ao tentar utilizar um recurso da rede o cliente envia o ticket recebido ao componente TGS do KDC KDC retorna um ticket de sessão para o cliente Cliente envia ticket de sessão para recurso de rede que deseja acessar Servidor avalia o ticket Servidor libera ou bloqueia acesso do cliente 10

11 11

12 NTLM x Kerberos 12 Cérbero/CerberusMitologia Grega Cão que guardava a entrada do Hades, reino subterrâneo dos mortos As 3 cabeças do Kerberos representam o cliente, servidor e o KDC.

13 Vantagens do Kerberos 13 Problemas do NTLMVantagens do Kerberos Permite ataques de replay Assume que o servidor é confiável Requer mais tráfego de autenticação do que o Kerberos Autenticação Mutua – cliente autentica o serviço e o serviço autentica o cliente Padrão aberto Permite delegação

14 Vantagens do Kerberos Pré-autenticação 14

15 Vantagens do Kerberos 15 Evitando ataques de replay Se pré-autenticação estiver habilitada: Time stamp encriptado utilizando o hash da senha do usuário KDC desencripta o time stamp e o valida Cuidado com o horário de verão!

16 Implementação Security Support Provider Interface (SSPI) Permite que uma aplicação use vários modelos de segurança disponíveis sem alterar a interface para o sistema de segurança. Provê uma camada de abstração entre protocolos de nível de aplicação e protocolos de segurança. 16

17 Implementação 17

18 Implementação 18

19 Implementação 19

20 Implementação Pré-requisitos: Cliente e servidor devem fazer parte do mesmo domínio do windows ou domínios com confiança entre eles O SPN deve estar registrado no Active Directory Cliente deve conectar ao servidor utilizando TCP/IP (ou seja, named pipes, shared memory não permitem utilizar o Kerberos!) 20

21 Implementação O que é um SPN? Service Principal Name informa o cliente sobre o serviço Formado de 3 ou 4 das partes abaixo (porta do serviço é opcional) Tipo/Classe do serviço Database Engine (MSSQLSvc) Analysis Services (MSOLAPSvc.3) SQL Browser (MSOLAPDisco.3) Nome do servidor A porta (se necessária) A conta com a qual o serviço está executando Precisaremos de TODOS estes itens corretos 21

22 Implementação Como configuro o SPN? Administrador do domínio, conta de sistema do computador ou uma conta como a Network Service. Como normalmente não configuramos (boas práticas!) o SQL Server com nenhum desses tipos de contas o mesmo não será capaz de configurar o SPN por conta própria. 22

23 Implementação SQL Server até tentará registrar o SPN automaticamente se o protocolo TCP/IP estiver ativo Irá gerar mensagens no log como a seguinte: The SQL Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service. Error: 0×2098. Failure to register an SPN may cause integrated authentication to fall back to NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies. 23

24 Implementação 24

25 Implementação SETSPN -? Classe/ : Onde ? pode ser: A – adiciona o SPN S – adiciona o SPN, após verificar se ele já não existe* X – Pesquisa por duplicidade F – Pesquisa por duplicidade, em toda a floresta Q – Consulta a existência de um SPN D – remove SPN R – resetar SPN L – Listar SPN 25

26 Implementação SELECT s.session_id, c.connect_time, s.login_time, s.login_name, c.protocol_type, c.auth_scheme, s.HOST_NAME, s.program_name FROM sys.dm_exec_sessions s INNER JOIN sys.dm_exec_connections c ON s.session_id = c.session_id 26

27 Implementação 27

28 Implementação SETSPN –S MSSQLSvc/ accountname SETSPN –D MSSQLSvc/ accountname SETSPN –L domain\accountname SETSPN -X 28

29 Implementação Domínio: exemplo.local Servidor: banco01 Conta: exemplo\SQL SETSPN –S MSSQLSvc/banco01.exemplo.local exemplo\SQL SETSPN –S MSSQLSvc/banco01 exemplo\SQL SETSPN –S MSSQLSvc/banco01.exemplo.local:1433 exemplo\SQL SETSPN –S MSSQLSvc/banco01:1433 exemplo\SQL 29

30 Implementação Domínio: exemplo.local Servidor: banco01 Conta: exemplo\SSRS SETSPN -S http/banco01 exemplo\SSRS SETSPN -S http/banco01.exemplo.local exemplo\SSRS Com host header SETSPN -S http/www.relatorios.com.br exemplo\SSRS 30

31 Implementação Domínio: exemplo.local Servidor: banco01 Conta: exemplo\SSAS | exemplo\browser SETSPN -S msolapsvc.3/banco01 Domain\SSAS -SQL Browser (pode ser necessário com instâncias nomeadas do SSAS!) SETSPN –S MSOLAPDisco.3/banco01 SETSPN –S MSOLAPDisco.3/banco01.exemplo.local SETSPN –S MSOLAPDisco.3/banco01 exemplo\browser SETSPN –S MSOLAPDisco.3/banco01.exemplo.local exemplo\browser 31

32 Implementação Domínio: exemplo.local Servidor: banco01 Conta: exemplo\SQL SETSPN –D MSSQLSvc/banco01.exemplo.local exemplo\SQL SETSPN –L exemplo\SQL SETSPN -X 32

33 Implementação Domínio: exemplo.local Servidor: banco01 Conta: exemplo\SQL SETSPN –F –S MSSQLSvc/banco01.exemplo.local exemplo\SQL 33

34 Troubleshooting e Ferramentas 34

35 Troubleshooting e Ferramentas 35

36 Troubleshooting e Ferramentas 36

37 Troubleshooting e Ferramentas 37

38 Troubleshooting e Ferramentas 38

39 Troubleshooting e Ferramentas 39

40 Troubleshooting e Ferramentas 40

41 Troubleshooting e Ferramentas RSReportServer.config true 41

42 Troubleshooting e Ferramentas Klist – lista os tickets do usuário cuidado com o UAC Mostrará apenas tickets daquela sessão Disponível no WS 2008 em diante Até o WS 2003 estava disponível no resource kit tools 42

43 Troubleshooting e Ferramentas 43

44 Troubleshooting e Ferramentas Klist purge – remove todos os tickets do usuário atual 44

45 Troubleshooting e Ferramentas 45

46 Troubleshooting e Ferramentas klist –li 0x3e7 klist –li 0x3e7 purge 0x3e7 é a sessão da máquina (Local System) Com a opção purge você pode reiniciar o group membership sem ter de realizar um reboot 46

47 Troubleshooting e Ferramentas 47

48 Troubleshooting e Ferramentas Kerbtray – Lista tickets do usuário através de uma GUI Apenas exibe os tickets Disponível no resource kit tools do WS

49 Troubleshooting e Ferramentas 49

50 Troubleshooting e Ferramentas Utilize portas estaticas para a database engine! Há programas que não permitem especificar a porta! Tente utilizar: SERVIDOR\INSTANCIA,PORTA SERVIDOR\INSTANCIA:PORTA 50

51 Troubleshooting e Ferramentas 51

52 Troubleshooting e Ferramentas SQL Native Client Permite especificar o SPN que será utilizado pelo cliente para autenticação 52

53 Troubleshooting e Ferramentas 53

54 Troubleshooting e Ferramentas Kerberos event logging Crie a chave: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters Registry Value: LogLevel Value Type: REG_DWORD Value Data: 0x1 Para desabilitar, remova a chave de registro A partir do WS 2008 não requer reboot Utilize em conjunto: KerbDebugLevel e LogToFile (também em HKLM\...\Parameters) Cuidado com o impacto na performence 54

55 Troubleshooting e Ferramentas Kerberos UDP Fragmentation Kerberos executa por padrão na porta UDP 88 até WS 2003 Pacotes podem ser perdidos por componentes da rede Realiza fallback para TCP em caso de Tickets muito grandes TCP a partir do WS 2008 Como forçar o Kerberos a utilizar TCP em vez de UDP no WindowsComo forçar o Kerberos a utilizar TCP em vez de UDP no Windows 55

56 Troubleshooting e Ferramentas Problemas com navegadores IE6, IE7, IE8 ignoram portas digitadas na URL Alguns navegadores tentam Kerberos por padrão (IE) outros NTLM 56

57 Troubleshooting e Ferramentas CNAME x ANAME Resolução do nome ocorre erroneamente com CNAME Sempre utilize ANAMEs! 57

58 Troubleshooting e Ferramentas 58

59 Troubleshooting e Ferramentas Monitoramento de pacotes: Wireshark Netmon Message analyserMessage analyser Uma ferramenta utilizada para visualizar o conteúdo de pacotes de rede que estão sendo enviados e recebidos em uma conexão de rede ativa ou de um arquivo de dados capturado previamente. Ela provê opções de filtro para análises complexas de dados de rede. 59

60 Troubleshooting e Ferramentas 60

61 Troubleshooting e Ferramentas 61

62 Troubleshooting e Ferramentas 62

63 Troubleshooting e Ferramentas 63

64 Troubleshooting e Ferramentas 64

65 Troubleshooting e Ferramentas KDC_ERR_PREAUTH_REQUIRED Em geral não é um erro, mas sim um problema na forma que algumas aplicações implementam o Kerberos Aplicações que não realizam a pré-autenticação Provavelmente a aplicação fará o processo correto em seguida 65

66 Troubleshooting e Ferramentas KDC_ERR_PRINCIPAL_UNKNOWN SPN não registrado Serviço está sendo consultado com o nome errado klist purge? 66

67 Troubleshooting e Ferramentas KDC_ERR_PREAUTH_FAILED Em geral, usuário não existe ou a senha está errada/desatualizada 67

68 Troubleshooting e Ferramentas KRB_AP_ER_MODIFIED Ticket apresentando pelo serviço foi encriptado com conta diferente da que o serviço utiliza Autenticação falha e não há NTLM fallback 68

69 Troubleshooting e Ferramentas HOSTS/LMHOSTS Cuidado com dados inválidos! 69

70 Troubleshooting e Ferramentas 70

71 Troubleshooting e Ferramentas Constrained Delegation Quando trabalhando em cluster, deve ser configurado em cada nó do cluster! 71

72 Troubleshooting e Ferramentas Reboot Em várias situações um reboot não é necessário De qualquer forma, caso a solução não funcione, é sempre bom tentar um reboot! 72

73 Material complementar Troubleshooting Kerberos Errors https://magalhaesv.wordpress.com/ https://twitter.com/awsaxton Troubleshooting Kerberos Delegation Using DelegConfig Kerberos Authentication Tester 73

74 Perguntas?

75 Obrigado pela presença!


Carregar ppt "Kerberos: conceitos, melhores práticas e particularidades Vladimir Michel Bacurau Magalhães twittertwitter | Blog | LinkedInBlogLinkedIn Instrutor | Consultor."

Apresentações semelhantes


Anúncios Google