KERBEROS EM REDES LINUX Monografia apresentada ao Departamento de Cincia da Computao da Universidade Federal de Lavras, como parte das exigncias do curso de Ps!raduao Lato Sensu em "dministrao de #edes Linux $"#L% para o&teno do t'tulo de (specialista em "dministrao de #edes Linux) *rientador Professor +oa,uim -uinteiro Uc./a Lavras Minas !erais 0 1rasil 2334 LEONARDO DE BRITO JORDO USO DO PROTOCOLO DE AUTENTICAO KERBEROS EM REDES LINUX Monografia apresentada ao Departamento de Cincia da Computao da Universidade Federal de Lavras, como parte das exigncias do curso de Ps!raduao Lato Sensu em "dministrao de #edes Linux $"#L% para o&teno do t'tulo de (specialista em "dministrao de #edes Linux) "provada em 16 de Abril de 2005 Professor 5erlon "6res Camargo Professor #icardo Martins de "&reu 7ilva Professor +oa,uim -uinteiro Uc./a $*rientador% Lavras Minas !erais 0 1rasil minha esposa Lucineide e aos meus filhos, Lucas e Mariana, pelo apoio e compreenso . v vi Agradeciment! "gradeo a Deus, acima de tudo, e a meus pais, por tudo ,ue me deram e proporcionaram) "gradeo a meus amigos e a todos ,ue, direta ou indiretamente, contri&u'ram para ,ue eu pudesse concluir esse curso) vii viii Re!"m * protocolo 8er&eros 9 um sistema de autenticao segura para aplica:es cliente;servidor ,ue utili<a criptografia de c.ave sim9trica para autenticar usu=rios e servidores, eliminando o tr=fego de sen.as pela rede e garantindo segurana a sistemas de informao) * 8er&eros 9 um sistema de loon >nico, onde a sen.a 9 informada uma >nica ve< e o 8er&eros efetua a autenticao e criptografia de forma transparente entre usu=rios e servios) (ste documento descreve o protocolo de autenticao 8er&eros e apresenta os passos para instalao e configurao de servidores de autenticao 8er&eros em uma rede Linux) ix x S"m#ri $ Intrd"%& $ ' O Prtc( Ker)er! * 2)? @iso geral))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A 2)2 #a<:es para a utili<ao do 8er&eros)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) B 2)A Funcionamento &=sico do 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4 2)B Cnfraestrutura do 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D * O Prtc( Ker)er! n +NU,Lin"- . A)? (lementos do 8er&eros)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ?3 A)?)? #eino 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ?3 A)?)2 Principal do 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ?3 A)?)A " &ase de dados 8er&eros)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?? A)?)B * ar,uivo Ee6ta&)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?2 A)?)4 FicEets 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ?2 A)2 Cnterao entre o usu=rio e o 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ?A A)2)? "cessando o 8DC)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?A A)2)2 "cessando um servidor))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ?B / In!ta(a%& e Cn0ig"ra%& $1 B)? PlaneGamento da instalao do 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))?H B)?)? Definio do nome do reino))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?I B)?)2 Portas para acesso ao 8DC e aos servios administrativos)))))))))))))))?I B)?)A 7ervidores 8DC escravos))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ?I B)?)B #eplicao da &ase de dados)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))?J B)?)4 Usando o DK7 na configurao))))))))))))))))))))))))))))))))))))))))))))))))))))))) 23 B)?)D 7incroni<ao de 5or=rio))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))22 B)2 Cnstalao do servidor 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 2A B)2)? 5ardLare dos servidores)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))2B B)2)2 Pacotes do 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))24 B)A Configurao do servidor 8DC))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 24 B)A)? * ar,uivo Er&4)conf)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 2D B)A)2 * ar,uivo Edc)conf))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 2H B)A)A Criao da &ase de dados do 8er&eros))))))))))))))))))))))))))))))))))))))))))))) 2I xi B)A)B Criao do ar,uivo de controle de acesso))))))))))))))))))))))))))))))))))))))))) 2J B)A)4 Cniciando os servios do 8DC mestre))))))))))))))))))))))))))))))))))))))))))))))) A3 B)A)D "dio de administradores M &ase de dados)))))))))))))))))))))))))))))))))))))) A3 B)A)H Criao do principal para o servidor))))))))))))))))))))))))))))))))))))))))))))))))) A? B)A)I Criao do ar,uivo de c.ave para o 8DC $Ee6ta&%)))))))))))))))))))))))))) A2 B)A)J Criando as contas dos principais )))))))))))))))))))))))))))))))))))))))))))))))))))))) AA B)A)?3 Festando a funcionalidade do servidor 8DC)))))))))))))))))))))))))))))))))))) AA B)B) Cnstalao e configurao de m=,uinas clientes))))))))))))))))))))))))))))))))))))))))))) AB B)B)? Programas clientes)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) AB B)B)2 Criao do principal e da c.ave para o cliente))))))))))))))))))))))))))))))))))A4 B)4) 7ervidores de aplicao)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) AD B)4)? Programas de servidor)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) AH B)4)2 Criao do principal e da c.ave para o servidor e servios)))))))))))))) AH B)D (xemplo de uso de aplicao))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) AJ 2 Admini!tra%& d Ker)er! /$ 4)? Controle de acesso))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) B? 4)2 * programa Eadmin))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) B2 4)A Pol'ticas))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))BA 4)A)? Criao e alterao de pol'ticas)))))))))))))))))))))))))))))))))))))))))))))))))))))))))BA 4)A)2 Listando as pol'ticas))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))BB 4)A)A *&tendo a configurao de uma pol'tica)))))))))))))))))))))))))))))))))))))))))))B4 4)A)B #emoo de pol'ticas)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) B4 4)B "dministrao de Principais)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) BD 4)B)? Criao e modificao de principais))))))))))))))))))))))))))))))))))))))))))))))))) BD 4)B)2 Listando principais))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))BH 4)B)A *&tendo informa:es de um principal)))))))))))))))))))))))))))))))))))))))))))))) BI 4)B)B #emoo de principais)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) BI 4)B)4 "lterao de sen.a)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) BJ 4)B)D Principais para m=,uinas)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 43 4)4 *pera:es administrativas so&re a &ase de dados do 8er&eros))))))))))))))))))))4? 4)4)? Copiando a &ase de dados para um ar,uivo)))))))))))))))))))))))))))))))))))))) 42 4)4)2 #estaurando a &ase de dados de um ar,uivo)))))))))))))))))))))))))))))))))))))4A 4)4)A Criao do ar,uivo para a sen.amestra))))))))))))))))))))))))))))))))))))))))))) 4A 4)4)B Criao e remoo da &ase de dados)))))))))))))))))))))))))))))))))))))))))))))))))4B 4)D "dministrao do lado cliente))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))4B 4)D)? "lterao de sen.a)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 44 4)D)2 *&teno de ticEets))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 44 xii 4)D)A @isuali<ao dos ticEets)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4D 4)D)B Destruio dos ticEets))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4D 3 Cn!idera%4e! 5inai! 21 D)? "ta,ues M infraestrutura 8er&eros)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4H D)2 7egurana do protocolo))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))4J D)A "ta,ues gen9ricos)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D? D)B 7olu:es de segurana))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D2 D)4 Desvantagens do 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) DA D)D @antagens do 8er&eros)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) DB D)H Propostas para futuros tra&al.os)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) D4 xiii xiv Li!ta de 5ig"ra! Figura B)?N (xemplo de <ona DK7))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 2? Figura B)2N (xemplo do ar,uivo ntp)conf))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 2A Figura B)AN (xemplo do ar,uivo Er&4)conf))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 2H Figura B)BN (xemplo do ar,uivo Edc)conf)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))2I Figura B)4N Criando a &ase de dados 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))2J Figura B)DN (xemplo do ar,uivo Eadm4)acl)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A3 Figura B)HN Logs de iniciali<ao do 8DC)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A3 Figura B)IN Criao do principal OadminP))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A? Figura B)JN Criao do principal para o 8DC))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A? Figura B)?3N Criao da c.ave para o 8DC)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) A2 Figura B)??N Listando o ar,uivo Er&4)Ee6ta&)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) AA Figura B)?2N Criao de principal para usu=rio))))))))))))))))))))))))))))))))))))))))))))))))))))))))) AA Figura B)?AN Listando o ar,uivo de credenciais)))))))))))))))))))))))))))))))))))))))))))))))))))))))) AB Figura B)?BN Criao de principal de m=,uina cliente)))))))))))))))))))))))))))))))))))))))))))))))A4 Figura B)?4N Criao da c.ave para m=,uina cliente)))))))))))))))))))))))))))))))))))))))))))))))))AD Figura B)?DN Configurao do inetd)conf para servios)))))))))))))))))))))))))))))))))))))))))))) AH Figura B)?HN Criao de principais para servidor de aplicao))))))))))))))))))))))))))))))))))AI Figura B)?IN Criao de c.aves para servios))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) AI Figura B)?JN "cesso a servio com autenticao 8er&eros))))))))))))))))))))))))))))))))))))))) AJ Figura B)23N Listando os ticEets do usu=rio)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))B3 Figura 4)?N (xemplo do ar,uivo Eadm4)acl)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) B2 Figura 4)2N Criando uma pol'tica)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) BB Figura 4)AN Listando pol'ticas))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))B4 Figura 4)BN Listando a configurao de uma pol'tica)))))))))))))))))))))))))))))))))))))))))))))))) B4 Figura 4)4N (xcluso de uma pol'tica)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) BD Figura 4)DN Uso do comando addQprincipal)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) BH Figura 4)HN Listando principais))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) BI Figura 4)IN Listando informa:es de um principal))))))))))))))))))))))))))))))))))))))))))))))))))))BJ Figura 4)JN (xcluso de um principal))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) BJ Figura 4)?3N "lterao de sen.a de um principal pelo administrador))))))))))))))))))))))) 43 Figura 4)??N Criando e listando o ar,uivo de c.aves)))))))))))))))))))))))))))))))))))))))))))))))) 4? Figura 4)?2N Copiando a &ase de dados)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))42 xv Figura 4)?AN #estaurando a &ase de dados)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4A Figura 4)?BN Criando o ar,uivo de sen.amestra)))))))))))))))))))))))))))))))))))))))))))))))))))))) 4B Figura 4)?4N #emovendo a &ase de dados))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4B Figura 4)?DN "lterando a sen.a do principal em uso))))))))))))))))))))))))))))))))))))))))))))))))) 44 Figura 4)?HN *&tendo um ticEet)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4D Figura 4)?IN Listando o ar,uivo de credenciais)))))))))))))))))))))))))))))))))))))))))))))))))))))))) 4D xvi Li!ta de Ta)e(a! Fa&ela B)?N #egistros 7#@ para o 8er&eros))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 22 Fa&ela 4)?N Permiss:es de controle de acesso M &ase de dados)))))))))))))))))))))))))))))))))B2 Fa&ela 4)2N *p:es do Eadmin))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))BA Fa&ela 4)AN *p:es para os comandos addQpolic6 e modif6Qpolic6))))))))))))))))))))))) BB Fa&ela 4)BN *p:es dos comandos addQprincipal e modif6Qprincipal))))))))))))))))))))) BH Fa&ela 4)4N *p:es para o comandos c.angeQpassLord)))))))))))))))))))))))))))))))))))))))))) 43 Fa&ela 4)DN *p:es do Etadd)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))4? Fa&ela 4)HN *p:es do programa Ed&4Qutil)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 42 xvii xviii Ca67t"( $ Intrd"%& Muitos dos sistemas computacionais utili<am es,uemas de autenticao &aseados em sen.as, onde um usu=rio precisa se identificar para o servidor ,ue deseGa utili<ar fornecendo um cdigo de usu=rio e uma sen.a) Para muitos servios, a transmisso das informa:es de autenticao se d= sem o uso de criptografia) Para se ter segurana nessas condi:es, a rede deveria ser inacess'vel externamente e todos os computadores e usu=rios da rede interna deveriam ser confi=veis) Uma alternativa para um sistema de autenticao segura 9 a utili<ao do protocolo 8er&eros ? ) * o&Getivo prim=rio pelo ,ual o 8er&eros foi proGetado 9 a eliminao da transmisso de sen.as descriptografadas pela rede) 7e implantado e utili<ado ade,uadamente o 8er&eros acrescenta um novo n'vel de segurana M rede) Keste documento so apresentados os conceitos e terminologia do 8er&eros, al9m dos passos para instalao e configurao de servidores de autenticao &aseada em 8er&eros na plataforma !KU;Linux) * Cap'tulo 2 apresenta o protocolo 8er&eros em lin.as gerais, seu funcionamento &=sico e elementos principais) * Cap'tulo A mostra o 8er&eros dentro de um am&iente !KU;Linux, os servios &=sicos para fornecimento de credenciais de autenticao e como interagem os diversos componentes do 8er&eros numa rede Linux) * Cap'tulo B trata do planeGamento da instalao e a configurao dos ? 8er&eros vem do grego Cer&erus e, na mitologia grega, era o nome do co de trs ca&eas ,ue guardava a entrada do mundo inferior) ? servidores 8er&eros, servidores de aplicao e clientes numa rede ,ue utili<a o 8er&eros para autenticao) * Cap'tulo 4 apresenta os principais comandos para administrao do am&iente 8er&eros e, finalmente, o Cap'tulo D apresenta aspectos relativos a poss'veis fal.as de segurana e formas de ata,ue os ,uais o 8er&eros se prop:e a redu<irR vantagens e desvantagens de sua utili<ao) 2 Ca67t"( ' O Prtc( Ker)er! '8$ 9i!& gera( 8er&eros 9 um protocolo de autenticao de rede criado pelo Massachusetts !nstitute of "echnolo# $MCF 2 % e ,ue utili<a criptografia de c.ave sim9trica para autenticar usu=rios no acesso a servios de rede 0 eliminando o envio de sen.as atrav9s da rede 0 provendo um sistema de autenticao segura para aplica:es cliente;servidor) * 8er&eros suporta diversos tipos de criptografia de c.ave sim9trica, entre eles D(7, AD(7, "(7?2I, "(724D e #CB) Mais so&re criptografia pode ser visto em SF(#!U7*KR 7C5K(C(# $233A%T) * 8er&eros 9 um sistema de loon >nico, onde a sen.a 9 informada uma >nica ve< e o 8er&eros efetua a autenticao e criptografia de forma transparente) -uando um usu=rio efetua loon, o 8er&eros o autentica utili<ando a sen.a desse usu=rio e fornece um mecanismo pelo ,ual o mesmo pode provar sua identidade a servidores e servios sem fornecer a sen.a novamente) " instalao do 8er&eros e dos programas ,ue o utili<am redu< a possi&ilidade de captura de sen.as por usu=rios malintencionados ou de falsificao de identidade, onde um usu=rio tenta se passar por outro) (m suma, o 8er&eros 9 uma soluo ,ue prov ferramentas de autenticao e criptografia forte so&re a rede para garantir segurana a sistemas de informao) * 8er&eros foi desenvolvido pelo MCF em um proGeto c.amado Athena e uma 2 .ttpN;;Le&)mit)edu;Eer&eros;LLL A implementao livre desse protocolo est= dispon'vel pelo MCF so& licenciamento semel.ante aos utili<ados pelo 17D e UVindoL) * MCF disponi&ili<a o 8er&eros em cdigofonte, de modo ,ue seu conte>do pode ser revisto e analisado por ,uem deseGa implement=lo, como forma de certificao do conte>do, aumentando a confia&ilidade na instalao) Para os ,ue preferem produtos com suporte profissional, .= vers:es do 8er&eros disponi&ili<adas por diversos fornecedores, al9m de implementa:es do 8er&eros em v=rios produtos comerciais) Diversos programas servidores e clientes em Linux foram modificados para suportar o uso do 8er&eros, incluindose telnet, rlogin, rsh, rcp e ftp) 5= tam&9m &i&liotecas e "PCs para permitir a adio de segurana &aseada em 8er&eros nos aplicativos) 5= duas vers:es do 8er&eros atualmente em usoN a verso B e a verso 4) "s vers:es de ? a A foram vers:es de desenvolvimento e nunca foram disponi&ili<adas) " verso B possui diversas vulnera&ilidades e seu uso deve ser evitado) * pacote do 8er&eros @4 foi proGetado para ser de f=cil uso) (ste documento trata da verso 4 do 8er&eros, definido na #FC ?4?3 S8*5LR K(UM"K $?JJA%T) '8' Ra:4e! 6ara a "ti(i:a%& d Ker)er! "s redes so inseguras e grande parte dos protocolos utili<ados no prov segurana) "plica:es ,ue enviam sen.as a&ertas atrav9s de uma rede esto vulner=veis a, por exemplo, ferramentas para captura de sen.as) Muitas aplica:es cliente;servidor confiam nos programas clientes ,uanto M identidade do usu=rio sem nen.um outro reforo de segurana por parte do servidor) "lguns am&ientes utili<am fire$alls para solucionar pro&lemas de segurana nas redes) Cnfeli<mente, essa opo considera ,ue os Omaus elementosP esto do lado de fora da empresa, o ,ue nem sempre 9 verdade G= ,ue .= ata,ues tam&9m por parte de usu=rios internos de uma rede) Uma ve< ,ue o 8er&eros negocia comunicao autenticada e, opcionalmente, criptografada, entre dois pontos numa rede, ele prov uma camada de segurana ,ue B no depende, por exemplo, de ,ual lado de um fire$all o usu=rio est=, tornando a implantao do 8er&eros de grande importWncia dentro de uma rede corporativa) * protocolo 8er&eros foi criado como uma soluo para pro&lemas de segurana de autenticao em redes) Com o 8er&eros um cliente pode provar sua identidade a um servidor $e viceversa% numa conexo de rede insegura) Depois de autenticados pelo 8er&eros, cliente e servidor podem tam&9m criptografar toda a sua comunicao de modo a garantir privacidade e integridade dos dados trafegados) *u seGa, o 8er&eros 9 um sistema ,ue auxilia a solucionar algumas ,uest:es de seguranaN redu<ir o n>mero de sen.as ,ue o usu=rio necessita para acessar diversos servios a apenas uma sen.a no 8er&eros e acrescentar criptografia aos dados trafegados, assegurando ,ue dados sens'veis no trafeguem de forma a&erta na rede) '8* 5"ncinament )#!ic d Ker)er! * 8er&eros difere de outros m9todos de autenticao) "o inv9s de autenticar cada usu=rio em cada servio de rede, o 8er&eros utili<a uma c.ave secreta comum e um OmediadorP confi=vel para validao da identidade dos clientes frente a um conGunto de servios de rede) * OmediadorP confi=vel 9 um servidor con.ecido como KDC $%e# &istribution 'enter 0 Centro de Distri&uio de C.aves% ,ue executa os deamons do 8er&eros) " c.ave secreta comum 9 a sen.a do usu=rio convertida numa c.ave para criptografia) Ko caso de servidores ou aplica:es a c.ave, comumente, 9 gerada de forma aleatria) Ko 8er&eros, os clientes podem ser usu=rios, servidores ou programas, e so con.ecidos como principals $ou O6rinci6ai!P%) * 8DC arma<ena a &ase de dados de principais e suas c.aves, ,ue so utili<adas para autenticao) Para o 8er&eros, o con.ecimento da c.ave secreta 9 considerado suficiente como prova de identidade) "ssim, o servidor 8er&eros 9 confiado para autenticar ,ual,uer cliente para ,ual,uer outro cliente) " autenticao 9 feita de forma ,ue no .= o envio de sen.as atrav9s da rede em momento algum) * funcionamento do 8er&eros se d=, &asicamente, da seguinte formaN um cliente envia uma solicitao ao 8DC e o 8DC procura esse principal na sua &ase de dados) 4 7e 9 encontrado, o 8DC cria um T+T $"ic(et)*rantin "ic(et 0 tic(et para o&ter tic(et% para o cliente, criptografa o F!F usando a sen.a do cliente como c.ave e envia o F!F criptografado para o cliente) * cliente tenta descriptografar o F!F, usando sua prpria c.ave $computada a partir da sua sen.a%) 7e o cliente consegue descriptografar o F!F, este 9 mantido em cache na m=,uina do cliente para futuras provas de identidade perante ,ual,uer servio OEer&eri<adoP, uma ve< ,ue, o&tido o F!F, no 9 mais necess=rio informar a sen.a novamente at9 ,ue o F!F expire ou ,ue o usu=rio efetue novo loon) * F!F 9 marcado para expirar depois de certo tempo $geralmente, I .oras%) * tempo de expirao 9 utili<ado para ,ue, caso um F!F seGa capturado por um invasor, este o ten.a apenas por um per'odo de tempo) * F!F permite ao cliente o&ter tic(ets adicionais para acesso a servios) " solicitao e o&teno desses tic(ets adicionais 9 transparente ao usu=rio) 7empre ,ue o usu=rio precisar acessar um servio de rede, o softLare cliente usa o F!F para solicitar ao 8DC um novo tic(et espec'fico para a,uele servio, no sendo necess=ria nova autenticao utili<ando uma sen.a) (sta 9 apenas uma viso geral de como a autenticao 8er&eros funciona numa rede) Maiores detal.es so apresentados no Cap'tulo A) '8/ In0rae!tr"t"ra d Ker)er! * termo infraestrutura do 8er&eros referese aos programas, servidores, clientes e configura:es ,ue permitem a utili<ao do protocolo 8er&eros em uma rede) (ssa infraestrutura consiste do softLare do 8er&eros, servidores de autenticao redundantes e seguros, um arma<enamento centrali<ado de contas e sen.as, e sistemas configurados para utili<ar a autenticao atrav9s do protocolo 8er&eros) "l9m da infraestrutura inerente ao prprio 8er&eros, este depende de certos servios de rede para seu correto funcionamento) (m primeiro lugar, o 8er&eros re,uer ,ue os .or=rios das m=,uinas da rede esteGam sincroni<ados entre si) Para isso, um programa de sincroni<ao de .or=rio deve existir na rede) * +et$or( "ime ,rotocol -KFP%, definido na #FC ?A34 SMCLL7 $?JJ2%T, 9 o protocolo mais D indicado e o mais utili<ado para essa finalidade) Ko Linux, o KFP 9 implementado pelo ntpd) Mais so&re o KFP pode ser visto no Cap'tulo B) *utro servio importante no funcionamento do 8er&eros 9 o &omain +ame Ser.ice $DK7%, definido nas #FC ?3AB SM*C8"P(F#C7 $?JIH% $?%T e #FC ?3A4 SM*C8"P(F#C7 $?JIH% $2%T) Certos aspectos do 8er&eros dependem de ,ue o DK7 e m=,uinas da rede esteGam devidamente configurados) "lgumas considera:es so&re DK7 no 8er&eros so mostradas no Cap'tulo B) H I Ca67t"( * O Prtc( Ker)er! n +NU,Lin"- Como G= exposto no Cap'tulo 2, o 8er&eros efetua a autenticao dos usu=rios sem ,ue a sen.a seGa transmitida pela rede) * 8er&eros &aseia sua autenticao em tic(ets eletr/nicos ,ue so enviados criptografados pela rede) Um servidor central c.amado 8DC autentica o usu=rio e o fornece um tic(et ,ue o permite acessar m=,uinas e servios) Para o 8er&eros, cada usu=rio, m=,uina ou servio 9 c.amado de 6rinci6a( e cada principal possui uma c.ave) Para usu=rios, a c.ave 9 criada a partir da sen.a individual e para m=,uinas e servios, a partir de um n>mero aleatrio) " c.aves, assim como as sen.as, so mantidas secretas e so con.ecidas apenas pelo principal ao ,ual a c.ave pertence e pelo 8DC) "s c.aves so utili<adas para autenticao e envio seguro de mensagens atrav9s da criptografia de c.ave sim9trica, o ,ue significa ,ue se uma mensagem 9 criptografada com uma c.ave, ela s pode ser descriptografada com a mesma c.ave) Uma ve< ,ue a c.ave s 9 con.ecida por duas partes, o seu principal e o 8DC, isso permite uma troca segura de mensagens entre eles) * servidor 8DC executa dois importantes deamons do 8er&eros @4, o kadmind e o krb5kdc, ,ue so executados como superusu=rio $root%) * kadmind 9 o deamon administrativo do servidor 8er&eros e 9 utili<ado pelo programa kadmin para manuteno da &ase de dados de principais e configurao de pol'ticas) * kadmin permite a administrao remota do 8er&eros, mesmo se no .ouverem programas de acesso remoto ao servidor 8er&eros) * krb5kdc 9 o J principal programa do 8er&eros, sendo respons=vel por reali<ar o papel de OmediadorP na autenticao 8er&eros, ou seGa, 9 o programa ,ue executa o 8DC) Ko Cap'tulo 2 foi apresentado o funcionamento do 8er&eros em lin.as gerais) Keste Cap'tulo 9 mostrado com maiores detal.es o processo de fornecimento de tic(ets e autenticao) *8$ E(ement! d Ker)er! *8$8$ Rein Ker)er! Um reino $realm% 8er&eros 9 um dom'nio administrativo ,ue consiste de um conGunto de m=,uinas ,ue compartil.am informa:es contidas numa &ase de dados 8er&eros em comum e confiam nos mesmos servidores 8DC) X poss'vel efetuar autenticao entre usu=rios e servios de reinos diferentes atrav9s de rela:es de confiana entre dois reinos, c.amadas Oautenticao entre reinosP $cross)realm authentication%) Para isso os administradores dos dois reinos compartil.am c.aves, de modo ,ue um reino consegue tratar tic(ets do outro reino) Com isso, principais de um reino conseguem se autenticar em outro reino) * reino possui um nome ,ue o identifica e, geralmente, 9 o mesmo nome do dom'nio DK7, por9m em letras mai>sculas) "pesar dessa caracter'stica no ser o&rigatria, ela tem sido comumente usada nas implementa:es do 8er&eros) *8$8' Princi6a( d Ker)er! Um principal do 8er&eros 9 ,ual,uer entidade ,ue deva ser autenticada) Csso inclui usu=rios, m=,uinas e servios) Cada principal possui uma c.ave secreta associada, a ,ual s 9 con.ecida pelo prprio principal e pelo 8DC) Fradicionalmente, um principal 9 formado por trs partesN prim=rio 0 9 a primeira parte do principal) Pode ser o nome de um usu=rio ou servio) Para um servidor 9 a palavra host) instWncia 0 serve para ,ualificar o prim=rio) X uma strin separada do prim=rio por uma &arra $;%) Pode ser va<ia ou indicar caracter'sticas especiaisN ?3 no caso de um usu=rio descreve poss'veis credenciaisR no caso de uma m=,uina 9 o seu nome DK7 completo) reino $realm% 0 parte do nome do principal ,ue indica a ,ual reino o principal pertence) Um reino 9 a estrutura lgica da rede atendida pelo 8er&eros) * formato t'pico de um principal 9 prim/rio0inst1ncia234!+5) Para um principal de usu=rio podese terN GosexYMZV"#()K(F Gosex;adminYMZV"#()K(F onde a instWncia admin 9 t'pica para indicar ,ue o principal tem privil9gios administrativos no 8er&eros) *s dois principais acima so entidades diferentes, possuindo sen.as e permiss:es distintas) Ko caso de principais de m=,uinas ou servios, a parte prim=ria indica o tipo de servio, por exemplo host ou ftp) " instWncia indica a m=,uina na ,ual o servio est= dispon'vel, por exemploN .ost;server?)m6Lare)netYMZV"#()K(F ftp;ftp)df)m6Lare)netYMZV"#()K(F 7e o nome do reino no for informado no principal, ser= assumido ,ue o principal est= no reino padro do contexto utili<ado, informado nos ar,uivos de configurao do 8er&eros) *8$8* A )a!e de dad! Ker)er! Cada reino 8er&eros possui pelo menos um servidor 8DC ,ue arma<ena a &ase de dados mestre do 8er&eros para a,uele reino) Um reino 8er&eros pode ter servidores 8DC escravos, ,ue possuem cpias de leitura da &ase de dados 8er&eros, a ,ual 9 replicada periodicamente do 8DC mestre para os escravos) Mais informa:es so&re servidores 8DC escravos so apresentadas no Cap'tulo B) * 8er&eros s fornece credenciais M,uelas entradas existentes na &ase de dados do 8er&eros) Cada usu=rio, servio ou m=,uina no am&iente 8er&eros deve possuir uma entrada na &ase de dados) " &ase de dados do 8er&eros possui os principais e suas respectivas sen.as) ?? *8$8/ O ar;"i< keytab Cada principal na &ase de dados possui uma sen.a) *s usu=rios rece&em sua sen.a do administrador e a arma<enam de alguma forma $memria, agenda etc)%) Da mesma forma, cada servio possui uma c.ave, con.ecida apenas pelo 8DC e pelo prprio servio) Ko servidor 8DC, a c.ave dos servios fica arma<enada na &ase de dados do 8er&eros) Ko servidor ,ue executa o servio, por9m, as c.aves so arma<enadas localmente em ta&elas de c.aves, ,ue so ar,uivos con.ecidos como (e#tabs, geralmente arma<enados no ar,uivo /etc/krb5.keytab) * servio utili<a o ar,uivo (e#tab da mesma forma ,ue um usu=rio usa sua sen.a, ou seGa, ,uando .= necessidade de autenticao, o servidor utili<a as c.aves arma<enadas no ar,uivo (e#tab e as apresenta ao 8DC para se identificar) * Cap'tulo B apresenta mais detal.es so&re a configurao de servios e a necessidade das c.aves arma<enadas no ar,uivo (e#tab) *8$82 Tickets Ker)er! "s credenciais do 8er&eros, ou tic(ets, so um conGunto de informa:es eletr/nicas ,ue podem ser usadas para verificar a identidade de um usu=rio, servidor ou servio) *s tic(ets so arma<enados num cache de credenciais, geralmente em ar,uivos tempor=rios no /tmp) X atrav9s de um programa cliente ,ue as credenciais para identificar um usu=rio so automaticamente o&tidas a partir de um servidor 8DC na rede) * primeiro tic(et a ser o&tido 9 o "ic(et)*rantin "ic(et $F!F%, o ,ual permite o&ter tic(ets adicionais para acesso a servios 8er&eros) " solicitao e o&teno desses tic(ets adicionais acontecem de forma transparente) Um exemplo de solicitao do F!F 9 atrav9s do comando kinit) Uma ve< executado, o kinit solicita a sen.a do usu=rio, ,ue, se informada corretamente, ir= o&ter do 8DC um F!F e uma c.ave de sesso para permitir o uso correto do F!F) (ssa com&inao de F!F mais c.ave de sesso 9 con.ecida como credencial) Uma ve< o&tida a credencial, os programas clientes executados pelo usu=rio podem fa<er uso dessa credencial para o&ter do 8DC tic(ets espec'ficos para acesso ?2 a outros servios na rede 8er&eros) De posse desses tic(ets o programa cliente pode provar a identidade do usu=rio e o&ter acesso ao servio) Um exemplo 9 o deamon klogind ,ue, executando num servidor, permite acesso remoto a esse servidor) * programa rlogin, executado na m=,uina do usu=rio, apresenta ao 8DC as credenciais desse usu=rio e o&t9m um tic(et espec'fico para provar sua identidade e o&ter acesso remoto ao servidor) *8' Intera%& entre "!"#ri e Ker)er! *8'8$ Ace!!and KDC " autenticao do 8er&eros 9 normalmente iniciada pelo usu=rio executando um programa de solicitao de autenticao do 8er&eros) Um exemplo de programa desse tipo 9 o kinit) * kinit envia uma mensagem ao 8DC solicitando um F!F $,ue permitir= solicitar novos tic(ets no futuro% para o usu=rio) (ssa mensagem 9 enviada a&erta e no cont9m informa:es sens'veis, apenas a solicitao) (m sistemas com o 8er&eros @4 a utili<ao do programa login do 8er&eros permite ,ue esse processo acontea no processo de loon do usu=rio, sem a necessidade de execuo de um programa separado para solicitar o F!F) "ps a solicitao do F!F, o seguinte processo aconteceN ?) * 8DC $krb5kdc% rece&e a solicitao e &usca pelo principal do usu=rio na &ase de dados 8er&eros) 7e o principal existe, o 8DC o&t9m a c.ave secreta do principal $8p% e gera duas coisasN uma c.ave de sesso $8s?% e o F!F, ,ue cont9m uma cpia da c.ave de sesso) 2) * 8DC criptografa o F!F com outra c.ave con.ecida apenas pelo prprio 8DC $8Edc% e criptografa a c.ave de sesso e o F!F com a c.ave secreta do usu=rio, enviandoos para o cliente) ?A user1@MYWARE.NET
KDC TGT
K p K s1 A) "o rece&er essa resposta, o cliente $kinit ou login% solicita a sen.a ao usu=rio e aps a digitao da sen.a ela 9 convertida na c.ave secreta do usu=rio $8p%) (ssa c.ave 9, ento, utili<ada para descriptografar a mensagem rece&ida do 8DC, ,ue cont9m a c.ave de sesso $8s?% e o F!F $criptografado pela c.ave do 8DC%) B) " c.ave de sesso e o F!F so arma<enados no cache de credenciais ,ue 9 um ar,uivo tempor=rio na m=,uina local) " partir de ento o usu=rio est= apto a solicitar novos tic(ets para acesso a servios na rede 8er&eros usando o seu F!F) Para isso ele apresenta o F!F ao 8DC ,ue ir= gerar um novo tic(et para o usu=rio, de modo ,ue ele possa acessar o servio solicitado) X poss'vel perce&er ,ue a sen.a no foi transmitida pela rede em nen.um momento) *8'8' Ace!!and "m !er<idr Dada a suposio ,ue o usu=rio deseGa efetuar um loon remoto usando o 8er&eros, executando o programa 8er&eros rlogin para acessar uma m=,uina na rede, d=se in'cio aos seguintes passosN ?) * usu=rio executa o clienteN rlogin nome_do_host 2) * programa rlogin verifica no cache de credenciais se .= um tic(et para acesso ao servidor solicitado) 7e no .=, envia ao 8DC uma solicitao de acesso ao servidor deseGado, ,ue cont9m, al9m da solicitao em si, o F!F ?B TGT
K kdc
TGT
$ainda criptografado pela c.ave do 8DC% e uma mensagem com informa:es de .or=rio $timestamp%, criptografada com a c.ave de sesso) A) * 8DC descriptografa o F!F rece&ido usando sua prpria c.ave secreta $8Edc% e, usando a c.ave de sesso contida no F!F $8s?%, descriptografa a mensagem de timestamp rece&ida para validar o usu=rio) "ssim, como foi poss'vel ler a mensagem com a respectiva c.ave de sesso, o 8DC sa&e ,ue o usu=rio 9 ,uem di< ser) B) * 8DC, ento, gera uma nova c.ave de sesso $8s2%,ue ser= compartil.ada entre o usu=rio e o servidor ,ue ele pretende utili<ar) (le cria um novo tic(et $F!7% contendo essa nova c.ave de sesso e a identificao do usu=rio e criptografao com a c.ave do servidor $8srv%) * 8DC tam&9m criptografa uma cpia da nova c.ave de sesso com a c.ave de sesso ,ue ele rece&eu no F!F do usu=rio $8s?S8s2T%) 4) * novo tic(et $criptografado com a sen.a do servidor% e a nova c.ave de sesso $criptografada com a c.ave de sesso do usu=rio% so enviados ao usu=rio) D) * cliente rlogin rece&e o tic(et $F!7% e a c.ave de sesso $8s2% enviados pelo 8DC, descriptografa a c.ave de sesso $pois ele possui a c.ave 8s?% e arma<ena am&os no cache de credenciais) (le usa a nova c.ave de sesso para criptografar uma mensagem $M?%, efetua a conexo ao servidor ?4 De: user1@MYWARE.NET Acesso a: srv.myware.ne@MYWARE.NET TGT
dd;mm;aaaa ..NmmNss
K srv user1@MYWARE.NET K s!
pretendido e envia a ele essa mensagem e o tic(et do servidor $F!7% ainda criptografado $rece&ido do 8DC e ,ue est= em cache% ) H) * deamon do rlogin no servidor $klogind% o&t9m a sua prpria c.ave secreta $8srv 0 a ,ual est= segura no disco local, no ar,uivo keytab% e a usa para descriptografar o tic(et $F!7% rece&ido do usu=rio, tendo acesso, portanto, M identidade do usu=rio e M c.ave de sesso $8s2% ) Com essa c.ave de sesso o servidor a&re a mensagem $M?% rece&ida do cliente, isso serve para autenticar o usu=rio pois foi poss'vel usar a c.ave para a&rir a mensagem) I) 7e o usu=rio tem permisso para efetuar loon $a CD do usu=rio est= no /etc/passwd ou o principal est= no ar,uivo .k5login%, o klogind efetua o loon do usu=rio) " partir da', tanto o servidor como o usu=rio con.ecem a nova c.ave de sesso $8s2%, podendo utili<=la para criptografar o tr=fego entre eles) Uma ve< ,ue apenas o servidor e o 8DC sa&em a c.ave do servidor, o deamon do rlogin tem a certe<a de ,ue o tic(et foi criptografado pelo 8DC $apesar de t lo rece&ido do usu=rio% e pode confiar na informao so&re a identidade do usu=rio contida no tic(et) " informao do tempo de expirao tam&9m 9 inclu'da nos tic(ets para prevenir contra ata,ues de reenvio, ,ue 9 a apresentao fraudulenta de um tic(et capturado na rede, na inteno de se o&ter uma autenticao) "trav9s do uso de tic(ets criptografados, os ,uais s podem ser descriptografados se o cliente con.ece a c.ave secreta, a autenticao segura acontece) ?D Ca67t"( / In!ta(a%& e Cn0ig"ra%& " implantao do 8er&eros numa rede 9 um processo ,ue envolve defini:es diversas) * 8er&eros utili<a &ases de dados centrali<adas, servidores de autenticao, servidores de aplicao e, principalmente, tem relao com a segurana lgica de todo o am&iente da rede) Por isso, sua instalao e configurao, re,uerem an=lise e planeGamento pr9vio de todos os elementos a ele relacionados, de forma direta ou indireta) Keste Cap'tulo ser= visto o planeGamento do am&iente 8er&eros e os passos para instalar e configurar um servidor 8DC, al9m de servidores de aplicao e clientes para utili<ar o 8er&eros para autenticao) " maioria das distri&ui:es possuem suporte ao 8er&eros) " t'tulo de informao, este documento encontrase &aseado na distri&uio #ed 5at Linux A ) /8$ P(ane=ament da in!ta(a%& d Ker)er! "ntes de iniciar a instalao propriamente dita, 9 necess=rio considerar diversos aspectos, entre elesN o nome do reinoR as portas utili<adas pelo 8DC e pelo servio de administrao da &ase de dadosR A .ttpN;;LLL)red.at)com ?H ,uantidade de servidores 8DC $mestre e escravos% necess=riosR os nomes dos servidores 8DCR como ser= feita a propagao da &ase de dados) Maiores detal.es so&re a instalao e configurao tam&9m podem ser encontrados em S1#(KK(K $233B%T, SF(##(C#" $233A%T, SMCF $2332% $?%T, S#ed 5at $233A%T, S7F"K!(#R L"K( $2332%T e SFUK! $?JJD%T) /8$8$ De0ini%& d nme d rein * nome do reino 8er&eros pode ser ,ual,uer conGunto de caracteres "7CCC) Por9m, por conveno e simplicidade, 9 sugerido ,ue o reino ten.a o mesmo nome do dom'nio DK7, por9m em letras mai>sculas) Por exemplo, se seu dom'nio DK7 9 Osuaempresa)com)&rP, o nome do reino 8er&eros pode ser 7U"(MP#(7")C*M)1#) * nome do reino 9 sens'vel ao formato, ou seGa, mai>sculas e min>sculas so tratadas de forma diferente) "l9m disso, deve ser >nico na rede) /8$8' Prta! 6ara ace!! a KDC e a! !er<i%! admini!trati<! "s portas utili<adas pelo 8er&eros para acesso ao 8DC e para uso do programa de administrao kadmin so, por padro, as portas II e HBJ, respectivamente) Para o uso de portas diferentes 9 necess=rio alterar os ar,uivos /etc/services e krb5.conf em cada m=,uina e o ar,uivo kdc.conf em cada servidor 8DC) Mais detal.es so&re a configurao e uso dos ar,uivos krb5.conf e kdc.conf sero apresentados mais adiante) /8$8* Ser<idre! KDC e!cra<! Um servidor 8DC escravo 9 um servidor 8DC ,ue possui uma cpia de leitura da &ase de dados e ,ue executa a autenticao de principais da mesma forma ,ue o 8DC mestre) *s servidores 8DC escravos no permitem altera:es na &ase de dados 0 isto s pode ser feito no 8DC mestre) Caso o 8DC mestre fi,ue indispon'vel por um longo tempo, 9 poss'vel alterar o papel de um 8DC escravo, de modo ,ue ele passe a ser o 8DC mestre) ?I * uso de servidores 8DC escravos acrescenta redundWncia para os servios de fornecimento de tic(ets e autenticao de principais, al9m de permitir uma diviso das demandas para esses servios entre os servidores 8DC) Ko caso de fal.as ou impossi&ilidade de acesso ao servidor 8DC mestre, o servio de autenticao no fica interrompido) Para ,ue a autenticao 8er&eros possa acontecer 9 necess=rio ,ue os clientes ten.am acesso a pelo menos um servidor 8DC, seGa mestre ou escravo) "lgumas sugest:es so&re servidores 8DC incluemN ter pelo menos um 8DC escravo, como uma forma de bac(up e tolerWncia a fal.as) "ssim, o servio de autenticao no 9 interrompido em casos de parada do 8DC mestre, seGa por pro&lemas f'sicos, atuali<a:es de hard$are ou soft$are etc), G= ,ue os principais continuam sendo autenticados pelo servidor 8DC escravoR ter um 8DC escravo em pr9dio diferente do 8DC mestre, para os casos mais graves de indisponi&ilidade como ,uedas de energia ou incndios) " definio do n>mero de servidores 8DC, &em como sua locali<ao, deve fa<er parte do planeGamento da instalao do 8er&eros e depende de fatores espec'ficos da rede como largura de &anda e o n>mero de usu=rios da rede) /8$8/ Re6(ica%& da )a!e de dad! " &ase de dados do 8er&eros reside no servidor 8DC mestre e deve ser replicada para os servidores 8DC escravos ,ue existirem $geralmente atrav9s do cron% de modo a manter as informa:es de autenticao atuali<adas entre esses servidores) "ssim, 9 necess=rio planeGar com ,ue fre,[ncia essa propagao deve ocorrer) Caso a propagao tome muito tempo para ser conclu'da at9 todos os servidores 8DC, seGa devido a uma &ase de dados muito grande ou um n>mero elevado de servidores escravos ou mesmo retardos na rede, 9 poss'vel efetuar a cpia em paralelo, ou seGa, replicar a &ase de dados para um conGunto de servidores escravos e destes para outros conGuntos, redu<indo o tempo total de propagao) ?J /8$82 U!and DNS na cn0ig"ra%& Kuma instalao onde .= um grande n>mero de m=,uinas a configurar, em ,ue seria &astante tra&al.osa a distri&uio e manuteno dos ar,uivos de configurao do 8er&eros, uma opo 9 utili<ar o DK7 para fornecer as informa:es so&re os servios 8er&eros, no mais colocando essas informa:es nos ar,uivos de configurao locais) Mesmo em instala:es de pe,ueno porte essa opo tornase v=lida como preparao do am&iente para futuros crescimentos) Mesmo ,ue no se use o DK7 para fornecer configura:es do 8er&eros, ele 9 fundamental para a resoluo de nomes e funcionamento do 8er&eros) Por isso, 9 importante ,ue o DK7 da rede esteGa corretamente configurando e com as informa:es sempre atuali<adas, incluindose os registros da <ona reversa) Ma6eament entre m#;"ina! e rein Ker)er! * mapeamento de nomes de m=,uinas para o reino 8er&eros pode ocorrer de duas maneiras) " primeira 9 a forma tradicional, ,ue utili<a o ar,uivo de configurao krb5.conf) "trav9s de regras espec'ficas contidas nesse ar,uivo 9 poss'vel mapear um dom'nio DK7 para o reino 8er&eros) " segunda forma 9 efetuando uma &usca por um registro especial do tipo TXT no DK7) 7e o cliente est= .a&ilitado para essa forma de &usca, ele tenta encontrar esse registro no DK7 adicionando o prefixo _kerberos no nome da m=,uina) Caso no encontre, o cliente continua a &usca adicionando esse prefixo com as diversas possi&ilidades de dom'nios existentes no nome at9 encontrar um registro coincidente, ,ue ser= ento considerada o nome do reino) "ssim, um m=,uina c.amada ftp.df.myware.net ir= procurar pelos seguintes registros FUF no DK7N _kerberos.ftp.df.myware.net _kerberos.df.myware.net _kerberos.myware.net _kerberos.net _kerberos Mesmo ,ue a opo de uso do DK7 para configurao do 8er&eros no seGa 23 utili<ada, 9 recomendado ,ue a configurao do DK7 seGa feita, visando crescimento futuro e interao com outros reinos 8er&eros) De0ini%& de nme! de m#;"ina 6ara ! !er<idre! KDC X recomendado ,ue os servidores 8DC ten.am nomes definidos como registros CK"M( no DK7) Um CK"M( 9 um apelido para um nome de m=,uina) Por exemplo o 8DC mestre poderia se c.amar kerberos e os servidores 8DC escravos, kerberos1, kerberos2, etc) " vantagem de utili<ar registros CK"M( 9 ,ue, caso seGa necess=rio uma troca de m=,uina $por exemplo, instalar um servidor 8DC mais potente% apenas a entrada CK"M( precisaria ser alterada sem a necessidade de troca de nomes de m=,uinas) Dessa forma, o nome do servidor 8er&eros fica independente do nome f'sico da m=,uina) *utra forma de locali<ar os servidores 8DC de um reino 9 atrav9s do uso de registros S! no DK7) (sse tipo de registro 9 suportado pelo 8er&eros @4 e por vers:es mais recentes do DK7) (sses registros indicam o nome da m=,uina e a porta do servio) Mais detal.es so&re registros S! podem ser vistos na #FC 2HI2 S!UL1#"KD7(KR @CUC(R (7C1*@ $2333%T) "#$%$& myware.net. _kerberos TXT '()*+,.&,T' kerberos -&+(, cascao.myware.net kerberos1 -&+(, cebola.myware.net kerberos2 -&+(, monica.myware.net _kerberos._.dp S! / / 00 cascao S! / / 00 cebola S! / / 00 monica _kerberos1master._.dp S! / / 00 cascao _kerberos1adm._tcp S! / / 234 cascao _kpasswd._.dp S! / / 353 cascao 5ig"ra /8$> (xemplo de <ona DK7 " Figura B)? mostra um exemplo de ar,uivo de <ona DK7 com entradas S! para o 8er&eros) X importante o&servar ,ue nos registros S! devem ser usados os nomes das m=,uinas e no seus apelidos) " Fa&ela B)? explica os registros S! para o 8er&eros utili<ados na Figura B)?) Ko decorrer deste documento ser= utili<ada a forma tradicional de configurao, 2? ou seGa, atrav9s dos ar,uivos do prprio 8er&eros) * DK7 ser= utili<ado unicamente para resoluo de nomes) Ta)e(a /8$> #egistros S! para o 8er&eros Regi!tr De!cri%& _kerberos._.dp Define a conexo aos 8DCs via UDP) X a conexo mais usada e, geralmente, 9 definida para porta II) _kerberos1 master._.dp Cndica o 8DC mestre para os casos de troca de sen.a recente e o usu=rio ter acessado um 8DC ,ue ainda no est= atuali<ado, aparentando sen.a incorreta) Kessa situao o 8DC mestre 9 contactado e a mesma sen.a 9 utili<ada para verificao) 7e .= apenas um 8DC, essa entrada no 9 necess=ria) _kerberos1 adm._tcp Cndica a porta para conexo do programa kadmin, geralmente a porta HBJ no 8DC mestre) Ko 8er&eros do MCF 9 necess=rio configurar a entrada c.amada admin_server no ar,uivo krb5.conf) _kpasswd._.dp Deve listar a porta BDB do 8DC mestre) X a porta usada para troca de sen.a pelo usu=rio) Maiores detal.es so&re o uso do DK7 no 8er&eros podem ser vistos no \!uia do "dministrador do 8er&eros @4\, do MCF SMCF $2332% $2%T) /8$83 Sincrni:a%& de ?r#ri Parte do processo de autenticao do 8er&eros 9 &aseada no tempo de expirao dos tic(ets, tornando a preciso dos relgios dos servidores e esta:es um ponto cr'tico da infraestrutura) Por isso, o sincronismo dos .or=rios entre as m=,uinas ,ue utili<am o 8er&eros deve estar configurado corretamente ou o 8er&eros no ir= funcionar) Clientes ,ue tentem se autenticar a partir de uma m=,uina com relgio fora de sincronismo iro fal.ar na tentativa de autenticao com o servidor 8DC) Uma forma de manter os relgios das m=,uinas sincroni<ados 9 utili<ar um protocolo como o +et$or( "ime ,rotocol $KFP% ) * KFP 9 um protocolo para sincronismo de .or=rios entre m=,uinas) (xistem diversos servidores p>&licos de KFP dispon'veis) (sses servidores so divididos em n'veis) *s servidores de n'vel ? no devem ser usados para sincronismo de clientes pois so em pe,ueno n>mero e o acesso 9 restrito aos servidores ,ue comp:em a .ierar,uia do servio) *s servidores de n'vel 2 sincroni<am seus relgios com os 22 servidores do n'vel ? e esto dispon'veis para uso de sincroni<ao pelos clientes) Uma lista de servidores p>&licos de KFP de n'vel 2 pode ser o&tida no site da #KP B ) Ko !KU;Linux, a ativao do KFP se d= pela instalao do pacote KFP e edio do ar,uivo de configurao, geralmente o /etc/ntp.conf) *s valores padro podem ser mantidos, devendose apenas informar os servidores de KFP ,ue sero utili<ados para sincronismo do relgio local) " Figura B)2 mostra um exemplo do ar,uivo /etc/ntp.conf) server ntps211.gn.d.ie server ntps212.gn.d.ie driftfile /etc/ntp/drift broadcastdelay /.//0 a.thenticate no 5ig"ra /8'> (xemplo do ar,uivo ntp.conf * comando de atuali<ao do KFP pode ser adicionado ao cron para ,ue seGa executado periodicamente, por exemploN 6/ 7 7 7 7 /.sr/sbin/ntpdate 1s X poss'vel ter uns poucos servidores na rede interna atuali<ando seus relgios com os servidores p>&licos de KFP) *s clientes e demais servidores podem ser configurados para atuali<arse a partir desses servidores internos, mesmo ,ue no usem o 8er&eros) Mais informa:es so&re o protocolo KFP e configurao de servidores KFP podem ser o&tidas no site do +et$or( "ime ,rotocol ,ro6ect 4 ) /8' In!ta(a%& d !er<idr Ker)er! "o se configurar o 8er&eros, o primeiro passo 9 a instalao do servidor) Considerando ,ue os servidores so dedicados ao servio de autenticao, al9m da instalao dos pacotes necess=rios ao funcionamento do 8er&eros, 9 recomend=vel seguir alguns passos para manter o servidor o mais seguro poss'velN B .ttpN;;LLL)rnp)&r;ntp;ntpstratum2).tml 4 .ttpN;;LLL)ntp)org 2A instalar o sistema operacional e patches de seguranaR no instalar interfaces ou pacotes gr=ficosR opcionalmente, instalar o 775 para administrao remota do servidorR verificar as portas em uso, desa&ilitando ,ual,uer porta desnecess=riaR restringir o acesso ao servidor apenas Ms m=,uinas ,ue necessitam autenticao) Csso pode ser feito pela edio dos ar,uivos /etc/hosts.allow e /etc/hosts.deny ou com iptables) Keste documento no ser= a&ordada a configurao de servidores 8DC escravos &em como a replicao da &ase de dados) 7e for necess=rio implementar servidores escravos, detal.es de como configurar os relacionamentos entre o servidor mestre e os escravos podem se encontrados em S1#(KK(K $233B%T e no \!uia de Cnstalao do 8er&eros @4\, do MCF SMCF $2332% $?%T) /8'8$ ?ard@are d! !er<idre! * servio do 8er&eros no re,uer muito do hard$are do servidor 8DC) 7egundo consta em S1#(KK(K $233B%T, um servidor monoprocessado $um PCCC433% com discos redundantes ,ue possuam capacidade suficiente para arma<enamento da &ase de dados 8er&eros e ?2I M1 de memria #"M, 9 suficiente para atender cerca de ,uarenta a cem mil autentica:es por dia) "l9m disso, .= a vantagem da utili<ao de servidores secund=rios, o ,ue permite a distri&uio da carga pela diviso das demandas de autenticao entre o servidor 8DC mestre e os escravos) Uma das recomenda:es a considerar 9 ,ue os servidores seGam dedicados ao servio de autenticao 8er&eros, com permisso de loon local apenas ao administrador do 8er&eros) Csso implica em desativar todos os servios desnecess=rios) "pesar do servio de shell remoto $775% ser um servio ,ue pode permanecer ativo para administrao remota do servidor, a administrao da &ase de dados do 8er&eros, por9m, pode ser feita M distWncia atrav9s do programa kadmin) "l9m das restri:es de acesso lgico, 9 tam&9m fundamental implementar restri:es de acesso f'sico ao servidor) Devido Ms informa:es ,ue arma<ena, a segurana dos servidores 8DC 9 de suma importWncia para a segurana da prpria 2B rede, ou seGa, devem ser tomadas todas as precau:es para evitar ,ue ,ual,uer servidor 8DC seGa comprometido) /8'8' Pacte! d Ker)er! *s seguintes pacotes so necess=rios para instalar o servidor 8er&eros nas distri&ui:es !KU;LinuxN krb51libs krb51client krb51server 5= tam&9m pacotes de documentao e desenvolvimento, krb51doc e krb51 devel, respectivamente, por9m 9 recomendado ,ue no seGam instalados nos servidores 8DC, mas em outras m=,uinas) Fam&9m 9 poss'vel o&ter os ar,uivos para instalao no site do MCF D ) /8* Cn0ig"ra%& d !er<idr KDC Conforme visto no Cap'tulo A, os servidores 8DC arma<enam uma cpia da &ase de dados do 8er&eros e so respons=veis pela distri&uio de tic(ets) * 8DC mestre possui a cpia principal da &ase de dados, na ,ual so feitas as altera:es, e propaga essa &ase aos servidores 8DC escravos em intervalos regulares) *s servidores 8DC escravos tam&9m efetuam a distri&uio de tic(ets, mas neles a &ase de dados 9 apenas de leitura, no sendo poss'vel a administrao da &ase de dados a partir de um servidor 8DC escravo) Dessa forma, 9 poss'vel aos clientes continuar efetuando loon mesmo ,ue o 8DC mestre esteGa indispon'vel) Lem&rese ,ue s .= um 8DC mestre, podendo .aver diversos servidores 8DC escravos) "o se configurar o servidor 8er&eros, os seguintes passos devem seguidosN ?) "ssegurarse de ,ue a sincroni<ao de .or=rio est= funcionando no seu servidor e tam&9m entre os clientes) 7e .ouver diferenas de .or=rio superior a cinco minutos entre eles, os clientes no sero capa<es de se autenticar com D .ttpN;;Le&)mit)edu;Eer&eros;dist;index).tml 24 o servidor) (sse valor padro 9 configur=vel e pode ser alterado) * sincronismo de .or=rio 9 necess=rio para prevenir ata,ues com tic(ets antigos capturados na rede) "l9m disso, o DK7 deve estar funcionando ade,uadamente para permitir a correta resoluo de nomes) 2) Cnstalar os pacotes krb51libs, krb51server, e krb51client na m=,uina ,ue executar= o servio de 8DC) (ssa m=,uina deve estar segura e, se poss'vel, no deve executar mais nen.um servio al9m do 8DC) A) (ditar os ar,uivos de configurao do 8er&eros /etc/krb5.conf e /var/kerberos/krb5kdc/kdc.conf de modo a refletir os nomes de reinos e dom'nios planeGados para o seu am&iente) Por conveno, os nomes de reino so escritos em mai>sculas e os de dom'nios DK7 e nomes de m=,uinas em min>sculas) B) Criar a &ase de dados do 8er&eros e as contas dos principais) *s passos ? e 2 acima foram citados nas sess:es B)? e B)2) *s passos A e B sero mel.or detal.ados no decorrer deste Cap'tulo) /8*8$ O ar;"i< Ar)28cn0 * ar,uivo krb5.conf $geralmente locali<ado no diretrio /etc% cont9m as informa:es de configurao do 8er&eros, entre elas a definio dos servidores 8DC para o reino e o mapeamento de nomes de dom'nio para nomes de reinos 8er&eros) * ar,uivo 9 dividido em se:es ,ue cont9m diversos parWmetros de configurao) " Figura B)A apresenta um exemplo do ar,uivo /etc/krb5.conf) Ko ar,uivo de exemplo, a seo 8libdefa.lts9 define ,ue o reino MZV"#()K(F 9 o reino padro e ,ue o DK7 no ser= utili<ado para &usca das configura:es do 8er&eros) Ka seo 8realms9 esto definidos, para o reino MZV"#()K(F, os nomes dos servidores 8DC, ,ual deles 9 o 8DC mestre e ,uais as portas de acesso) " seo 8domain_realm9 fa< o mapeamento entre dom'nios DK7 e reinos 8er&eros e a seo 8logging9 determina a locali<ao dos ar,uivos de log do 8er&eros) Para mais detal.es so&re o formato e se:es do ar,uivo 2D /etc/krb5.conf consulte as suas respectivas p=ginas do man H ou o \!uia do "dministrador do 8er&eros @4\, do MCF SMCF $2332% $2%T) 8libdefa.lts9 defa.lt_realm : ()*+,.&,T dns_look.p_kdc : false dns_look.p_realm : false 8realms9 ()*+,.&,T : ; kdc : kerberos.myware.net<00 kdc : kerberos1.myware.net<00 admin_server : kerberos.myware.net<234 defa.lt_domain : myware.net = 8domain_realm9 .myware.net : ()*+,.&,T myware.net : ()*+,.&,T 8logging9 kdc : >$?,</var/log/krb5kdc.log admin_server : >$?,</var/log/kadmin.log defa.lt : >$?,</var/log/krb5lib.log 5ig"ra /8*> (xemplo do ar,uivo krb5.conf /8*8' O ar;"i< Adc8cn0 * ar,uivo kdc.conf cont9m informa:es de configurao prprias do servidor 8DC, entre elas os padr:es usados ao fornecer tic(ets) !eralmente fica locali<ado no diretrio ;var/kerberos/krb5kdc/kdc.conf e possui formato semel.ante ao do ar,uivo krb5.conf, com parWmetros de configurao distri&u'dos em se:es) Um exemplo do ar,uivo kdc.conf 9 mostrado na Figura B)B) Ko ar,uivo kdc.conf podem ser definidos diversos parWmetros, como as portas de acesso ao 8DC, a locali<ao dos ar,uivos da &ase dados, de configurao e de logs, como tam&9m os tipos de criptografia suportados) Para mais detal.es so&re o formato e se:es do ar,uivo kdc.conf consulte as suas respectivas 2 man krb5.conf 2H p=ginas do man I ou o \!uia do "dministrador do 8er&eros @4\, do MCF SMCF $2332% $2%T) 8kdcdefa.lts9 kdc_ports : 00 acl_file : /var/kerberos/krb5kdc/kadm5.acl admin_keytab : /var/kerberos/krb5kdc/kadm5.keytab 8realms9 ()*+,.&,T : ; kdc_ports : 00 kadmind_port : 234 key_stash_file : /var/kerberos/krb5kdc/.k5stash master_key_type : des61hmac1sha1 s.pported_enctypes : des61hmac1sha1<normal des1cbc1 crc<normal des1cbc1crc<v3 des1cbc1crc<afs6 = 8logging9 kdc : >$?,</.sr/local/var/krb5kdc/kdc.log admin_server : >$?,</.sr/local/var/krb5kdc/kadmin.log 5ig"ra /8/> (xemplo do ar,uivo kdc.conf /8*8* Cria%& da )a!e de dad! d Ker)er! * prximo passo na configurao do 8DC 9 a criao da &ase de dados do 8er&eros) Csso 9 feito atrav9s do comando kdb5_.til executado no servidor 8DC mestre) Para iniciali<ar e, ao mesmo tempo, criar a &ase de dados do 8er&eros, o comando kdb5_.til deve ser executado da seguinte formaN /.sr/sbin/kdb5_.til create 1s " opo create cria a &ase de dados para arma<enamento dos principais e das c.aves de autenticao para o reino 8er&eros) *pcionalmente, podese criar um ar,uivo oculto $c.amado stash file% ,ue arma<ena, localmente e de forma criptografada, a sen.amestra do 8DC utili<ada para autenticao autom=tica na iniciali<ao dos deamons do 8DC, o kadmind e o krb5kdc) * parWmetro 1s indica ,ue o 8er&eros deve criar o stash file no ,ual a sen.a mestre ser= arma<enada) 7em esse ar,uivo presente para a leitura da c.ave, o servidor 8er&eros ir= solicitar a sen.a sempre ,ue for iniciado) Por ser um ponto de 0 man kdc.conf 2I ata,ue caso seGa comprometido, o stash file deve ser mantido localmente no disco do 8DC e protegido com permisso de leitura apenas para o usu=rio root) Ko momento da criao, o 8er&eros ir= solicitar uma sen.a ,ue ser= a sen.a mestra da &ase de dados) (ssa sen.a pode ser ,ual,uer cadeia de caracteres, mas deve seguir as regras para composio de sen.as seguras) "o mesmo tempo, no pode ser es,uecida, so& pena de no ser mais poss'vel iniciar e administrar o servidor) " Figura B)4 mostra um exemplo de criao de uma &ase de dados 8er&eros) "ps a execuo so criados 4 ar,uivos no diretrio especificado no kdc.conf $o diretrio padro 9 o ;var/kerberos/krb5kdc%N principal, principal.ok, principal.kadm5, principal.kadm5.lock e o stash file, .k5stash) # /usr/local/sbin/kdb5_util create -s $nitiali@ing database A/var/kerberos/krb5kdc/principalA for realm A()*+,.&,TAB master key name AC/(D()*+,.&,TA )o. will be prompted for the database (aster Eassword. $t is important that yo. &#T >#%,T this password. ,nter CF- database master key< e1enter CF- database master key to verify< # 5ig"ra /82> Criando a &ase de dados 8er&eros /8*8/ Cria%& d ar;"i< de cntr(e de ace!! * ar,uivo de controle de acesso deve ser editado para especificar pol'ticas de controle de acesso M &ase de dados) Deve existir, pelo menos, a pol'tica de acesso relativa aos administradores do 8er&eros) * ar,uivo de controle de acesso, geralmente, 9 o /var/kerberos/krb5kdc/kadm5.acl mas sua locali<ao pode ser alterada no ar,uivo /var/kerberos/krb5kdc/kdc.conf) * kadm5.acl 9 usado pelo kadmind para determinar ,uais principais tm acesso administrativo M &ase de dados do 8er&eros e ,ual o n'vel de acesso) * formato do conte>do do kadm5.acl 9N principal permissGes 8principais_afetados9 2J "s permiss:es so &astante variadas e sua composio pode permitir ou negar uma s9rie de tarefas como a criao de entradas na &ase de dados, listagem dos principais ou troca de sen.as de principais) " permisso O]P d= acesso completo M &ase de dados do 8er&eros) Um exemplo do kadm5.acl pode ser visto na Figura B)D) De acordo com a figura, o ar,uivo especifica ,ue todo principal cuGa instWncia termine com 0admin no reino ()*+,.&,T ter= privil9gios de acesso completo) 7/adminD()*+,.&,T 7 5ig"ra /83> (xemplo do ar,uivo kadm5.acl Mais detal.es so&re as permiss:es no ar,uivo kadm5.acl podem ser vistas no Cap'tulo 4) /8*82 Iniciand ! !er<i%! d KDC me!tre Finalmente devese iniciar os servios necess=rios M execuo do 8DC) (sses servios so o krb5kdc e o kadmindN /.sr/sbin/krb5kdc /.sr/sbin/kadmind 7ua iniciali<ao autom=tica tam&9m pode ser configurada, de acordo com a distri&uio utili<ada) Para ,ue a iniciali<ao autom=tica seGa poss'vel 9 necess=rio ,ue o ar,uivo local com a sen.amestre $stash file% ten.a sido criado) *s ar,uivos de log especificados no ar,uivo /etc/krb5.conf podem ser lidos para verificao da iniciali<ao dos servios, conforme mostra a Figura B)H) /var/log/krb5kdc.log < >eb /2 1/<64</2 cascao.myware.net krb5kdc812229HinfoI< commencing operation /var/log/kadmin.log < >eb /2 1/<64<10 cascao.myware.net kadmind812339HinfoI< starting 5ig"ra /81> Logs de iniciali<ao do 8DC A3 /8*83 Adi%& de admini!tradre! B )a!e de dad! * utilit=rio kadmin comunicase com o kadmind atrav9s da rede e usa o 8er&eros para autenticao) Por9m, 9 necess=rio criar o primeiro principal antes de utili<ar os programas de administrao) Para isso, utili<ase o comando kadmin.local, ,ue 9 espec'fico para utili<ao no prprio servidor 8DC mestre e no utili<a o 8er&eros para autenticao) " Figura B)I apresenta um exemplo de criao do usu=rio admin como administrador do 8DC) J /.sr/sbin/kadmin.local 1K 'addprinc admin/admin' 5ig"ra /8C> Criao do principal OadminP Mais detal.es so&re as op:es do comando kadmin.local podem ser vistas no Cap'tulo 4) /8*81 Cria%& d 6rinci6a( 6ara !er<idr Cada servidor 8DC necessita de um principal do tipo host na &ase de dados do 8er&eros) 7upondo a configurao do ar,uivo /etc/krb5.conf da Figura B)A, mostrada anteriormente, .= um 8DC mestre e um 8DC escravo) Conforme mostrado na Figura B)J, para criar as c.aves desses servidores podese utili<ar o programa kadmin acessando o 8DC mestre, ,ue est= executando o deamon kadmind) # /usr/sbin/kadmin -p admin/admin +.thenticating as principal admin/admin with password. ,nter password< kadmin: addprinc -randkey host/kerberos.myware.net *+&$&%< no policy specified for 'host/kerberos.myware.netD()*+,.&,T'L defa.lting to no policy Erincipal 'host/kerberos.myware.netD()*+,.&,T' created. kadmin: addprinc -randkey host/kerberos1.myware.net &#T$-,< no policy specified for 'host/kerberos1.myware.netD()*+,.&,T'L defa.lting to no policy Erincipal 'host/kerberos1.myware.netD()*+,.&,T' created. kadmin: 5ig"ra /8.> Criao do principal para o 8DC A? X poss'vel associar uma pol'tica de sen.as ,uando um principal 9 criado) Uma pol'tica de sen.as define aspectos para as sen.as dos principais como taman.o m'nimo da sen.a, tempo de expirao da sen.a, etc) Caso no seGa especificado, o 8er&eros procura a pol'tica padro) Caso no existam pol'ticas definidas, o 8er&eros no poder= associar o principal a nen.uma pol'tica) Ko exemplo da Figura B)J, no .= pol'ticas definidas na &ase de dados do 8er&eros) Mais so&re pol'ticas de sen.as pode ser visto no Cap'tulo 4) /8*8C Cria%& d ar;"i< de cDa<e 6ara KDC EkeytabF Cada servidor 8DC $mestre ou escravo% precisa de uma c.ave para descriptografar tic(ets $vide seo A)2)2, 'tem H%) Csso 9 feito atrav9s do programa kadmin executado no pr7prio ser.idor para o ,ual se ,uer gerar a c.ave) " c.ave 9 lida da &ase de dados do 8er&eros e arma<enada localmente no ar,uivo /etc/krb5.keytab, conforme ilustrado na Figura B)?3) kadmin: ktadd host/kerberos.myware.net ,ntry for principal host/kerberos.myware.net with kvno 6B encryption type Triple F,S cbc mode with M(+-/sha1 added to keytab *>$?,</etc/krb5.keytab. kadmin: quit # 5ig"ra /8$G> Criao da c.ave para o 8DC Para ,ue seGa poss'vel a criao do ar,uivo de c.ave deve existir um principal para o servidor na &ase de dados do 8er&eros) *s passos da Figura B)?3 teriam ,ue ser executados localmente nos demais servidores 8DC, se .ouverem) * ar,uivo de c.ave 9 um ar,uivo criptografado, arma<enado localmente e ,ue cont9m a lista de c.aves da m=,uina ,ue funcionam de forma semel.ante M sen.a de um usu=rio) Do mesmo modo ,ue um usu=rio deve manter a sen.a em segurana, 9 importante manter segura a lista de c.aves de uma m=,uina) "ssim como o stash file, o ar,uivo (e#tab deve ter permisso de leitura apenas para o usu=rio root e deve existir unicamente no disco local) A2 Li!tand cnteHd d ar;"i< keytab X poss'vel listar as c.aves contidas no ar,uivo (e#tab utili<ando o comando klist, como mostrado na Figura B)??, onde 9 poss'vel visuali<ar a c.ave criada anteriormente) # klist -k Ceytab name< /etc/krb5.keytab C!&# Erincipal 1111 111111111111111111111111111111111111111111111 6 host/kerberos.myware.netD()*+,.&,T # 5ig"ra /8$$> Listando o ar,uivo krb5.keytab /8*8. Criand a! cnta! d! 6rinci6ai! Uma ve< ,ue o servidor 8DC est= operacional 9 poss'vel utili<ar o kadmin para criar as entradas para principais de usu=rios, m=,uinas e servios na &ase de dados do 8er&eros) " Figura B)?2 mostra a criao do usu=rio user1) Mais detal.es so&re a criao e manuteno de principais sero apresentados no Cap'tulo 4) # kadmin -q addprinc user1 -p admin/admin +.thenticating as principal admin/admin with password. ,nter password< *+&$&%< no policy specified for '.ser1D()*+,.&,T'L defa.lting to no policy ,nter password for principal '.ser1D()*+,.&,T'< e1enter password for principal '.ser1D()*+,.&,T'< Erincipal '.ser1D()*+,.&,T' created. # 5ig"ra /8$'> Criao de principal para usu=rio /8*8$G Te!tand a 0"ncina(idade d !er<idr KDC " partir de ento 9 poss'vel verificar se o servidor 8DC consegue distri&uir tic(ets) 1asta executar o comando kinit para o&ter um tic(et e arma<en=lo no cache de credenciais) AA Por padro, o kinit tenta se autenticar utili<ando o usu=rio logado) Como, nestes exemplos, o usu=rio logado no 9 o mesmo principal ,ue foi cadastrado na seo B)A)D, 9 necess=rio informar ao kinit o nome do principal, da seguinte formaN kinit admin/admin X poss'vel, ento, utili<ar o comando klist para visuali<ar a lista de credenciais arma<enadas no cache, conforme Figura B)?A, e o comando kdestroy caso se deseGe apagar o cache de credenciais) # klist Ticket cache< >$?,</tmp/krb5cc_/ Fefa.lt principal< admin/adminD()*+,.&,T !alid starting ,Npires Service principal /2//2//5 13<32<55 /2//0//5 //<32<55 krbtgt/()*+,.&,TD()*+,.&,T # 5ig"ra /8$*> Listando o ar,uivo de credenciais /8/8 In!ta(a%& e cn0ig"ra%& de m#;"ina! c(iente! " configurao de clientes para uso do 8er&eros 9 mais simples ,ue configurar um servidor 8DC) 1asicamente, 9 necess=rio instalar os pacotes de cliente, ,ue so o krb51libs, o krb51client e o krb51apps1clients, e configurar o 8er&eros atrav9s do ar,uivo /etc/krb5.conf ,ue pode ser o mesmo usado no servidor 8DC) "l9m disso, 9 necess=rio assegurarse ,ue a sincroni<ao de .or=rio e a resoluo de nomes atrav9s do DK7 esto funcionando ade,uadamente na m=,uina cliente) /8/8$ Prgrama! c(iente! "lguns dos programas OEer&eri<adosP instalados pelos pacotes so krlogin, ktelnet, kftp, krcp, krsh, ks., kinit, klist, kdestroy e kpasswd, AB locali<ados em /.sr/bin, e o login.krb5 locali<ado no diretrio /.sr/sbin) Pode ser necess=rio alterar configura:es nos clientes para ,ue esses programas seGam utili<ados no lugar das vers:es padro, por exemplo, alterando a vari=vel ^P"F5 ou criando alias ou lin(s) X recomend=vel ,ue o login.krb5 seGa utili<ado no lugar do /bin/login de modo ,ue os usu=rios no precisem executar o programa kinit para o&ter o F!F) Caso no seGam usados lin(s ou alteradas vari=veis de am&iente 9 necess=rio educar os usu=rios a utili<ar os programas OEer&eri<adosP como, por exemplo, kftp e kpasswd no lugar do ftp e passwd, respectivamente) "l9m disso, os usu=rios precisam se .a&ituar a utili<ar programas de gerenciamento de tic(ets como kinit, klist e kdestroy) "s vers:es OEer&eri<adasP mantm as caracter'sticas dos programas originais correspondentes, adicionando a caracter'stica de autenticao transparente, pelo uso dos tic(ets, e a opo de uso de criptografia na comunicao com o servidor remoto) Ka maioria das ve<es a >nica caracter'stica vis'vel 9 ,ue a sen.a no 9 solicitada ,uando .= a conexo ao servio remoto uma ve< ,ue a autenticao 9 feita pelo 8er&eros) Mais so&re as op:es de uso das vers:es dos programas podem ser vistos no \!uia do usu=rio do 8er&eros @4\, do MCF SMCF $2332% $A%T) /8/8' Cria%& d 6rinci6a( e da cDa<e 6ara c(iente "ntes ,ue uma m=,uina cliente possa o&ter tic(ets e utili<ar servios remotos 9 necess=rio criar um principal para essa m=,uina atrav9s do programa kadmin) * prim=rio do principal 9 a palavra host e a instWncia 9 o nome da m=,uina) " Figura B)?B mostra a criao do principal para a m=,uina cliente1) # kadmin -q addprinc -randkey host/cliente1.myware.net *+&$&%< no policy specified for 'host/servidor1.myware.netD()*+,.&,T'L defa.lting to no policy Erincipal 'host/cliente1.myware.netD()*+,.&,T' created. # 5ig"ra /8$/> Criao de principal de m=,uina cliente A4 Depois de criado o principal na &ase de dados do 8er&eros, 9 necess=rio arma<enar localmente a c.ave da m=,uina cliente, executando, na pr7pria m/8uina cliente, o programa kadmin, com o comando ktadd, como apresentado na Figura B)?4) # kadmin -q ktadd host/cliente1.myware.net ,ntry for principal telnet/servidor1.myware.net with kvno 6B encryption type Triple F,S cbc mode with M(+-/sha1 added to keytab *>$?,</etc/krb5.keytab. J 5ig"ra /8$2> Criao da c.ave para m=,uina cliente Por padro, o ar,uivo de c.ave 9 o /etc/krb5.keytab e deve ser mantido seguro, da mesma forma ,ue para o servidor 8DC $vide seo B)A)I%) /828 Ser<idre! de a6(ica%& Um servidor de aplicao 9 uma m=,uina ,ue prov servios para a rede) Kum am&iente 8er&eros 9 poss'vel ter os servidores executando os deamons dos servios OEer&eri<adosP, autenticando no servidor 8DC os usu=rios ,ue tentem utili<ar seus servios) Caso existam clientes sem o 8er&eros instalado 9 poss'vel ainda utili<ar o 8er&eros para loon na rede, por9m os servios tero ,ue aceitar conex:es an/nimas ou autentica:es locais) " instalao de um servidor de aplicao com 8er&eros re,uer a instalao dos pacotes krb51libs, krb51client e krb51apps1servers, e a configurao do 8er&eros atrav9s do ar,uivo /etc/krb5.conf, de modo semel.ante M configurao do cliente) Da mesma forma, 9 necess=rio assegurarse ,ue a sincroni<ao de .or=rio e a resoluo de nomes atrav9s do DK7 esto funcionando ade,uadamente na m=,uina servidora) "l9m disso, 9 necess=rio adicionar o servidor e seus servios M &ase de dados do AD 8er&eros e gerar o ar,uivo com as c.aves $(e#tab% para o servidor e para os servios) /828$ Prgrama! de !er<idr "ssim como .= os programas para clientes, o 8er&eros possui vers:es OEer&eri<adasP de programas para o servidor, entre eles, kftpd, klogind, kshd J , e ktelnetd) (sse programas so instalados no diretrio /.sr/sbin) 7upondo um servidor ,ue ir= prover os servios ftp e telnet &aseados no 8er&eros, e utili<ando o inetd, a Figura B)?D mostra as altera:es necess=rias no ar,uivo /etc/inetd.conf, para aceitar conex:es autenticadas pelo 8er&eros) "s lin.as para os servios ftp e telnet existentes no ar,uivo /etc/inetd.conf devem ser comentadas e as lin.as da Figura B)?D adicionadas) ftp stream tcp nowait root /.sr/sbin/kftpd kftpd 1a telnet stream tcp nowait root /.sr/sbin/ktelnetd ktelnetd 1a valid 5ig"ra /8$3> Configurao do inetd.conf para servios "ssim, so desa&ilitados os servios padro ftp e telnet, e passam a ser usados os programas do 8er&eros) Mais so&re as op:es para as vers:es dos programas de servidor podem ser vistas no \!uia do "dministrador do 8er&eros @4\, do MCF SMCF $2332% $2%T) /828' Cria%& d 6rinci6a( e da cDa<e 6ara !er<idr e !er<i%! Fodo servidor de aplica:es 8er&eros precisa de uma c.ave para o servidor e para os seus servios) Para isso 9 necess=rio criar o ar,uivo de c.ave /etc/krb5.keytab para permitir a autenticao do servidor e dos servios no 8DC) Para ,ue o ar,uivo seGa criado 9 necess=rio ,ue existam os principais do servidor e dos servios na &ase de dados do 8er&eros) J *s programas klogind e kshd so as vers:es OEer&eri<adasP do servidor de loin remoto e o servidor de shell remoto, respectivamente) AH * ar,uivo de c.ave deve ser mantido seguro, da mesma forma ,ue para o servidor 8DC $vide seo B)A)I%) " criao dos principais da m=,uina e dos servios 9 feita atrav9s do programa kadmin) " Figura B)?H apresenta a criao do principal para a m=,uina ser.idor1 e para os servios ftp e telnet no mesmo servidor) # kadmin -q addprinc -randkey host/seridor1.myware.net *+&$&%< no policy specified for 'host/servidor1.myware.netD()*+,.&,T'L defa.lting to no policy Erincipal 'host/servidor1.myware.netD()*+,.&,T' created. # kadmin -q addprinc -randkey !tp/seridor1.myware.net *+&$&%< no policy specified for 'ftp/servidor1.myware.netD()*+,.&,T'L defa.lting to no policy Erincipal 'ftp/servidor1.myware.netD()*+,.&,T' created. # kadmin -q addprinc -randkey telnet/seridor1.myware.net *+&$&%< no policy specified for 'telnet/servidor1.myware.netD()*+,.&,T'L defa.lting to no policy Erincipal 'telnet/servidor1.myware.netD()*+,.&,T' created. # 5ig"ra /8$1> Criao de principais para servidor de aplicao Depois de criados os principais na &ase de dados do 8er&eros, 9 necess=rio criar o ar,uivo com as c.aves) Csso 9 feito no pr7prio ser.idor de aplicao com o programa kadmin utili<ando o comando ktadd) " Figura B)?I apresenta a criao do ar,uivo de c.aves para os principais da Figura B)?H) # kadmin -q ktadd host/seridor1.myware.net !tp/seridor1.myware.net telnet/seridor1.myware.net ,ntry for principal host/servidor1.myware.net with kvno 6B encryption type Triple F,S cbc mode with M(+-/sha1 added to keytab *>$?,</etc/krb5.keytab. ,ntry for principal ftp/servidor1.myware.net with kvno 6B encryption type Triple F,S cbc mode with M(+-/sha1 added to keytab *>$?,</etc/krb5.keytab. ,ntry for principal telnet/servidor1.myware.net with kvno 6B encryption type Triple F,S cbc mode with M(+-/sha1 added to keytab *>$?,</etc/krb5.keytab. # 5ig"ra /8$C> Criao de c.aves para servios AI /83 E-em6( de "! de a6(ica%& 7upondo o principal user12M9:A34.+4" criado na seo B)A)J efetuando loon na estao cliente1.m#$are.net e acessando o servio de ftp no servidor ser.idor1.m#$are.net, podese apresentar situao semel.ante M apresentada na Figura B)?J) cliente1 login< .ser1 Eassword for .ser1< ?in.N 2.3.2/. user1"cliente1:#$ /usr/bin/k!tp seridor1.myware.net -onnected to servidor1.myware.net. 22/ servidor1 >TE server ready. 663 Osing a.thentication type %SS+E$L +F+T m.st follow %SS+E$ accepted as a.thentication type %SS+E$ a.thentication s.cceeded &ame Hservidor1.myware.net<.ser1I< 262 %SS+E$ .ser .ser1D()*+,.&,T is a.thori@ed as .ser1 emote system type is O&$X. Osing binary mode to transfer files. ftpP 5ig"ra /8$.> "cesso a servio com autenticao 8er&eros Kesse exemplo 9 tam&9m suposto ,ue o programa /.sr/sbin/login.krb5 est= sendo executado no lugar do /bin/login padro) Desse modo, o usu=rio no necessita executar o comando kinit para o&ter seus tic(ets) " Figura B)23 apresenta o resultado da execuo do comando klist para exi&ir os tic(ets do usu=rio) * usu=rio possui B tic(etsN o seu F!F e o tic(et de acesso M estao cliente1.m#$are.net, o&tidos aps o loon, o tic(et de acesso ao ser.idor1.m#$are.net, o&tido aps a conexo ao servidor, e o tic(et de acesso ao servio ftp, o&tido aps a autenticao no servio) " opo 15 especifica ,ue apenas os tic(ets da verso 4 do 8er&eros devem ser listados) X importante ressaltar ,ue o 8er&eros arma<ena apenas as informa:es para autenticao dos principais) "ssim, a conta local do usu=rio continua sendo necess=ria para ,ue o usu=rio efetue loon, uma ve< ,ue o Linux precisa o&ter outras informa:es do usu=rio como grupos, n>mero do CD para configurao das permiss:es locais de acesso a ar,uivos, shell padro, diretrio home etc) AJ user1"cliente1:#$ klist -5 Ticket cache< >$?,</tmp/krb5cc_p663 Fefa.lt principal< .ser1D()*+,.&,T !alid starting ,Npires Service principal /2//0//5 10<26</5 /2//4//5 /3<26 krbtgt/()*+,.&,TD()*+,.&,T renew .ntil /2//4//5 10<22<55 /2//0//5 10<26</5 /2//0//5 10<20 host/cliente1.myware.netD()*+,.&,T renew .ntil /2//4//5 10<22<55 /2//0//5 10<23<64 /2//0//5 10<24 host/servidor1.myware.netD()*+,.&,T renew .ntil /2//4//5 10<22<55 /2//0//5 10<23<33 /2//4//5 /3<26 ftp/servidor1.myware.netD()*+,.&,T renew .ntil /2//4//5 10<22<55 user1"cliente1:#$ 5ig"ra /8'G> Listando os tic(ets do usu=rio *u seGa, o 8er&eros permite a autenticao centrali<ada, mas o Linux precisa de outras informa:es para permitir o acesso local) (ssas informa:es, ,ue normalmente so arma<enadas no ar,uivo /etc/passwd de cada m=,uina, podem tam&9m ser centrali<adas) Uma opo para ter essas informa:es de forma centrali<ada 9 o uso de servios como o +ame Ser.ice S$itch $K77%) Com o K77, o administrador pode centrali<ar as informa:es de loon do usu=rio e manter o servio de autenticao no 8er&eros, com o ,ual 9 poss'vel o loon >nico, ou seGa, o usu=rio digita a sen.a uma >nica ve< e tem acesso aos servios OEer&eri<adosP sem necessidade de redigitar sen.as ou ter sen.as diferentes para os v=rios servios) B3 Ca67t"( 2 Admini!tra%& d Ker)er! " &ase de dados do 8er&eros cont9m os principais, suas sen.as e outras informa:es administrativas necess=rias para funcionamento de um reino) !rande parte das altera:es das informa:es contidas na &ase de dados do 8er&eros 9 feita atrav9s do programa kadmin, com o ,ual 9 efetuada a manuteno dos principais, gerenciadas as pol'ticas e ar,uivos de c.aves) *utro programa ,ue altera informa:es da &ase de dados 9 o kpasswd, utili<ado pelos usu=rios para troca de sen.a) Para administrao da &ase de dados do 8er&eros 9 utili<ado o programa kdb5_.til, ,ue manipula a &ase de dados como um todo, por exemplo para criao, remoo ou cpia dos ar,uivos ,ue comp:em a &ase de dados do 8er&eros) Do ponto de vista do usu=rio, o gerenciamento dos tic(ets e sen.as dos usu=rios 9 outro fator importante na administrao) (ste Cap'tulo apresenta op:es de comando e exemplos de uso dos programas para gerenciamento da &ase de dados, por parte do administrador, e do gerenciamento de tic(ets e sen.as, por parte dos usu=rios) 28$ Cntr(e de ace!! * controle de acesso e permiss:es administrativas M &ase de dados do 8er&eros 9 feito atrav9s de entradas no ar,uivo kadm5.acl) Como mostrado na seo B)A)B, o formato do conte>do do kadm5.acl 9N principal permissGes 8principais_afetados9 B? *s campos principal e principais_afetados podem incluir um asterisco $]%, de modo a generali<ar a permisso dada) " permisso 9 dada de acordo com a primeira entrada ,ue for coincidente) " Figura 4)? apresenta um exemplo de um ar,uivo de permiss:es e a Fa&ela 4)? as permiss:es poss'veis) "s permiss:es so representadas por letras min>sculas) Letras mai>sculas indicam negao de permisso) 7/adminD()*+,.&,T 7 rootD()*+,.&,T +F(-$? 5ig"ra 28$> (xemplo do ar,uivo kadm5.acl Ta)e(a 28$> Permiss:es de controle de acesso M &ase de dados O6%& De!cri%& a ; " Permite ; impede a adio de principais ou pol'ticas) d ; D Permite ; impede a remoo de principais ou pol'ticas) m ; M Permite ; impede a modificao de principais ou pol'ticas) c ; C Permite ; impede a modificao de sen.as de principais) i ; C Permite ; impede consultar a &ase de dados) l ; L Permite ; impede listar principais ou pol'ticas) ] ou x Fodos os privil9gios $admcil%) Ko exemplo da Figura 4)?, ,ual,uer principal com a instWncia admin tem acesso completo M &ase de dados) * principal root no tem privil9gios) Mais informa:es so&re o ar,uivo kadm5.acl podem ser vistas no \!uia do "dministrador do 8er&eros @4\, do MCF SMCF $2332% $2%T) 28' O 6rgrama kadmin * programa kadmin 9 utili<ado para administrao remota do 8DC mestre e gerao do ar,uivo de c.aves $(e#tab% e existe tanto no servidor 8er&eros como nos clientes e servidores de aplica:es) 5= tam&9m uma verso local do programa, c.amado kadmin.local ,ue 9 usado diretamente no 8DC, principalmente para B2 as configura:es iniciais de preparao e startup dos servios, aps as ,uais 9 poss'vel efetuar a administrao de forma remota) " Fa&ela 4)2 apresenta as principais op:es para o kadmin) Ta)e(a 28'> *p:es do kadmin O6%& De!cri%& r #(CK* Utili<a o reino especificado como reino padro) Fam&9m pode ser usado com o kadmin.local) p principal Usa o principal especificado para autenticao) Fam&9m pode ser usado com o kadmin.local) , comando Passa comandos diretamente ao programa) Fam&9m pode ser usado com o kadmin.local) L sen.a Utili<a a sen.a especificada ao inv9s de solicitar a entrada pelo teclado) s servidorSNportaT (specifica o servidor e a porta para conexo) m Utili<ado apenas com o kadmin.local) 7olicita a sen.amestra da &ase de dados) Mais detal.es so&re os programas kadmin e kadmin.local e as suas op:es de comando podem ser vistas no \!uia do "dministrador do 8er&eros @4\, do MCF SMCF $2332% $2%T) 28* P(7tica! Uma pol'tica 9 um conGunto de regras so&re sen.as) Pol'ticas podem determinar o tempo m=ximo e m'nimo de durao de sen.as, o taman.o m'nimo e tipo de caracteres ,ue uma sen.a deve conter, al9m do taman.o do .istrico de sen.as de um principal na &ase de dados) 28*8$ Cria%& e a(tera%& de 6(7tica! Para criar uma pol'tica 9 utili<ado o comando add_policy $ou addpol% do programa kadmin) (sse comando necessita da permisso de adio $OaP% e sua sintaxe 9 add_policy 8opQGes9 polRtica BA " alterao de configurao de uma pol'tica re,uer a permisso de modificao $OmP% e 9 feita com o comando modify_policy $ou modpol% do programa kadmin) " sintaxe 9 idntica M do comando add_policy) "s op:es mais comuns para os dois comandos esto listadas na Fa&ela 4)A) " Figura 4)2 mostra um exemplo de criao de uma pol'tica) Ta)e(a 28*> *p:es para os comandos add_policy e modify_policy O6%& De!cri%& maxlife tempo Configura o tempo de vida m=ximo para sen.as) minlife tempo Configura o tempo de vida m'nimo para sen.as) minlengt. tam (specifica o comprimento m'nimo de caracteres de uma sen.a) minclasses num #e,uer, no m'nimo, num classes de caracteres na sen.a) .istor6 num (specifica o n>mero de sen.as antigas a serem mantidas como .istrico para um principal) # kadmin +.thenticating as principal root/adminD()*+,.&,T with password. Eassword for root/adminD()*+,.&,T< kadmin: addpol -ma%li!e &1' day& -minlen(th ) -history 5 adm- pol kadmin: 5ig"ra 28'> Criando uma pol'tica 28*8' Li!tand a! 6(7tica! Para listar as pol'ticas existentes na &ase de dados 9 usado o comando list_policies do programa kadmin, ,ue re,uer o privil9gio administrativo de listar a &ase de dados $OlP%) 7ua sintaxe 9 list_policies 8eNpressSo9 onde eNpressSo pode conter caracteres para limitar a pes,uisa, de modo semel.ante a alguns comandos do shell do Linux) *utras formas do comando so BB listpols, get_policies e getpols) " Figura 4)A apresenta um exemplo de uso do comando) kadmin: listpols adm1pol polcom.m .ser1pol kadmin: 5ig"ra 28*> Listando pol'ticas 28*8* O)tend a cn0ig"ra%& de "ma 6(7tica Para ver a configurao de uma pol'tica espec'fica utili<ase o comando get_policy $ou getpol% ,ue necessita do privil9gio de consulta M &ase de dados $OiP%) " sua sintaxe 9 get_policy polRtica e a Figura 4)B mostra a configurao de uma das pol'ticas listadas na Figura 4)A) " informao reference count representa o n>mero de principais ,ue esto utili<ando essa pol'tica) kadmin: (etpol adm-pol Eolicy< adm1pol (aNim.m password life< 053/// (inim.m password life< / (inim.m password length< 2 (inim.m n.mber of password character classes< 1 &.mber of old keys kept< 5 eference co.nt< / kadmin: 5ig"ra 28/> Listando a configurao de uma pol'tica 28*8/ Rem%& de 6(7tica! " remoo de uma pol'tica 9 feita com o comando delete_policy $ou delpol% do programa kadmin, o ,ual re,uer a permisso administrativa de remoo $OdP% na &ase de dados) B4 "ntes de remover uma pol'tica 9 necess=rio ,ue no exista nen.um principal associado a ela) " sintaxe do comando 9 delete_policy 81force9 polRtica onde a opo 1force remove a pol'tica sem solicitar confirmao) " Figura 4)4 mostra a remoo de uma pol'tica) kadmin: delpol polcomum +re yo. s.re yo. want to delete the policy 'polcom.m'T Hyes/noI< yes kadmin: 5ig"ra 282> (xcluso de uma pol'tica 28/ Admini!tra%& de Princi6ai! " administrao de principais 9 um processo simples, por9m, &astante comum dentro da &ase de dados e, provavelmente, a atividade ,ue mais tomar= tempo do administrador) (ntre as tarefas de administrao esto a adio, alterao e remoo de principais e a alterao de sen.a de um principal) 28/8$ Cria%& e mdi0ica%& de 6rinci6ai! Para adicionar um principal ao 8er&eros utili<ase o comando add_principal $ou addprinc% do programa kadmin) (sse comando necessita da permisso de adio $OaP% e sua sintaxe 9 add_principal 8opQGes9 principal "o ser executado ele solicita uma sen.a para o novo principal) " alterao de atri&utos de um principal re,uer a permisso de modificao $OmP% e 9 feita com o comando modify_principal $ou modprinc% do programa kadmin) " sintaxe 9 idntica M do comando add_principal) "s op:es mais comuns para os dois comandos esto listadas na Fa&ela 4)B) " Figura 4)D apresenta um exemplo de uso do comando add_principal) BD Ta)e(a 28/> *p:es dos comandos add_principal e modify_principal O6%& De!cri%& expire data Configura a data de expirao do principal para data) pLexpire data Configura a data de expirao da sen.a para data) maxlife ma; Configura o tempo de expirao do tic(et para ma;) maxreneLlife ma; Configura o tempo de renovao do tic(et para ma;) polic6 pol (specifica uma pol'tica para o principal) clearpolic6 #emove a pol'tica existente ou cria um principal sem pol'tica associada) _`abneedc.ange \aneedc.ange\ fora o usu=rio a trocar a sen.a ao efetuar loon) \needc.ange\ retira essa o&rigao) * padro 9 \needc.ange\) randEe6 Cria uma c.ave aleatria para o principal $usado apenas com o comando add_principal%) X recomendada na criao de principais de m=,uinas $principal do tipo host<) pL senha Configura a sen.a para o principal sendo criado e, assim, no solicita a sen.a no momento da criao) kadmin: addprinc -policy user-pol user* ,nter password for principal '.ser6D()*+,.&,T'< e1enter password for principal '.ser6D()*+,.&,T'< Erincipal '.ser6D()*+,.&,T' created. kadmin: 5ig"ra 283> Uso do comando add_principal 28/8' Li!tand 6rinci6ai! X poss'vel listar os principais cadastrados no 8er&eros com o comando list_principals do programa kadmin) 7ua sintaxe 9 list_principals 8eNpressSo9 onde eNpressSo pode conter caracteres para limitar a pes,uisa, de modo semel.ante a alguns comandos do shell do Linux) 7e nen.uma expresso for passada todos os principais so listados) * mesmo comando possui outros nomes ,ue podem ser usados no seu lugarN listprincs, get_principals e BH getprincs) Para ser utili<ado 9 necess=ria permisso para listar $OlP% a &ase de dados) " Figura 4)H apresenta um exemplo de uso do comando) kadmin: listprincs C/(D()*+,.&,T admin/adminD()*+,.&,T ftp/servidor1.myware.netD()*+,.&,T host/kerberos.myware.netD()*+,.&,T host/cliente1.myware.netD()*+,.&,T host/servidor1.myware.netD()*+,.&,T kadmin/adminD()*+,.&,T kadmin/changepwD()*+,.&,T kadmin/historyD()*+,.&,T krbtgt/()*+,.&,TD()*+,.&,T root/adminD()*+,.&,T rootD()*+,.&,T telnet/servidor1.myware.netD()*+,.&,T .ser1D()*+,.&,T .ser2D()*+,.&,T .ser6D()*+,.&,T kadmin: 5ig"ra 281> Listando principais 28/8* O)tend in0rma%4e! de "m 6rinci6a( Para o&ter informa:es so&re determinado principal cadastrado na &ase de dados do 8er&eros 9 necess=ria a permisso de consultar a &ase de dados $OiP% e utili<ase o comando get_principal do programa kadmin) " Figura 4)I apresenta um exemplo do uso do comando) 28/8/ Rem%& de 6rinci6ai! " excluso de principais 9 feita com o comando delete_principal $ou delprinc% do programa kadmin, o ,ual re,uer a permisso de remoo $OdP% na &ase de dados) " sintaxe do comando 9 delete_principal 81force9 principal onde a opo 1force remove o principal sem solicitar confirmao) " Figura 4)J mostra a remoo de um principal) BI kadmin: (etprinc user* Erincipal< .ser6D()*+,.&,T ,Npiration date< 8never9 ?ast password change< *ed >eb /4 /2<34<33 UST 2//5 Eassword eNpiration date< >ri (ar 11 /1<34<33 UT 2//5 (aNim.m ticket life< / days 1/<//<// (aNim.m renewable life< 2 days //<//<// ?ast modified< *ed >eb /4 /2<34<33 UST 2//5 Hroot/adminD()*+,.&,TI ?ast s.ccessf.l a.thentication< 8never9 ?ast failed a.thentication< 8never9 >ailed password attempts< / &.mber of keys< 5 Cey< vno 1B Triple F,S cbc mode with M(+-/sha1B no salt Cey< vno 1B F,S cbc mode with --162B no salt Cey< vno 1B F,S cbc mode with S+1(F5B !ersion 3 Cey< vno 1B F,S cbc mode with S+1(F5B !ersion 5 1 &o ealm Cey< vno 1B F,S cbc mode with S+1(F5B +>S version 6 +ttrib.tes< Eolicy< .ser1pol kadmin: 5ig"ra 28C> Listando informa:es de um principal kadmin: delprinc user* +re yo. s.re yo. want to delete the principal '.ser6D()*+,.&,T'T Hyes/noI< yes Erincipal '.ser6D()*+,.&,T' deleted. (ake s.re that yo. have removed this principal from all +-?s before re.sing. kadmin: 5ig"ra 28.> (xcluso de um principal 28/82 A(tera%& de !enDa * administrador do 8er&eros pode alterar a sen.a de um principal ,ual,uer, o ,ue re,uer a permisso de modificao $OmP%) Caso a alterao seGa da sen.a do seu prprio principal o privil9gio de alterao de sen.a $OcP% 9 suficiente) " alterao de sen.a de principais 9 feita com o comando change_password $ou cpw% do programa kadmin, e a sintaxe do comando 9 change_password 8opQGes9 principal " Fa&ela 4)4 apresenta as op:es do comando change_password e a Figura 4)?3 um exemplo de uso do mesmo) BJ Ta)e(a 282> *p:es para o comandos change_password O6%& De!cri%& randEe6 "tri&ui um valor aleatrio M sen.a do principal) pL senha "tri&ui diretamente a cadeia de caracteres senha ao principal) kadmin: cpw user+ ,nter password for principal .ser2D()*+,.&,T< e1enter password for principal .ser2D()*+,.&,T< Eassword for .ser2D()*+,.&,T changed. kadmin: 5ig"ra 28$G> "lterao de sen.a de um principal pelo administrador 28/83 Princi6ai! 6ara m#;"ina! -uando se instalam programas do 8er&eros em um servidor de aplica:es 9 necess=rio criar um principal do tipo host na &ase de dados do 8er&eros para esse servidor e um principal para cada servio) "l9m disso, devese criar um ar,uivo local no servidor ,ue cont9m a lista de c.aves da m=,uina) (sse ar,uivo local 9 c.amado (e#tab e funciona para a autenticao do servidor no 8DC, de modo semel.ante M sen.a de um usu=rio $vide seo B)4%) " criao do ar,uivo de c.aves 9 feita com o kadmin e deve ser executado localmente na prpria m=,uina onde residir=) Caso isso no seGa poss'vel, pode ser gerado em outra m=,uina e copiado, de forma segura, para o local correto) Para criao do ar,uivo de c.aves, ou adio de um principal ao mesmo, utili<a se o comando ktadd do programa kadmin, o ,ual re,uer a permisso de consulta $OiP% na &ase de dados) " sintaxe do comando 9 ktadd 81k8eytab9 keytab9 8principal V 1glob princ_exp9 8...9 " Fa&ela 4)D apresenta as principais op:es do comando ktadd) Um exemplo de criao e listagem do conte>do do ar,uivo de c.aves pode ser visto na Figura 4)??) 43 Ta)e(a 283> *p:es do ktadd O6%& De!cri%& ESe6ta&T (e#tab Usa (e#tab como ar,uivo de c.aves) 7e no for especificado, ser= usado o ar,uivo padro $/etc/krb5.keytab%) principal ` glo& princ=e;p "diciona ao ar,uivo de c.aves o principal principal, ou todos a,ueles ,ue casam com a expresso princ=e;p) " opo glo& princ=e;p re,uer o privil9gio de listar a &ase de dados $OlP%) kadmin: ktadd host/kerberos.myware.net ,ntry for principal host/kerberos.myware.net with kvno 6B encryption type Triple F,S cbc mode with M(+-/sha1 added to keytab *>$?,</etc/krb5.keytab. kadmin: quit # # klist -k Ceytab name< /etc/krb5.keytab C!&# Erincipal 1111 111111111111111111111111111111111111111111111 6 host/kerberos.myware.netD()*+,.&,T # 5ig"ra 28$$> Criando e listando o ar,uivo de c.aves 282 O6era%4e! admini!trati<a! !)re a )a!e de dad! d Ker)er! "l9m das atividades administrativas referentes aos principais de um reino 8er&eros, o administrador tam&9m executa atividades so&re os ar,uivos ,ue comp:em a &ase de dados como um todo em um servidor 8DC) Dentre essas atividades esto a criao dos ar,uivos do 8er&eros, o bac(up e recuperao da &ase de dados) * programa kdb5_.til 9 a principal ferramenta para administrar a &ase de dados e sua sintaxe 9 kdb5_.til comando 8opQGes_kdb5_.til98opQGes_comando9 " Fa&ela 4)H mostra as principais op:es do programa) 7e utili<adas, as op:es so&rep:em ,ual,uer padro especificado nos ar,uivos de configurao) 4? Ta)e(a 281> *p:es do programa kdb5_.til O6%& De!cri%& r reino (specifica o reino da &ase de dados) d nome=ar8 (specifica o nome do ar,uivo da &ase de dados de principais) m (specifica ,ue a sen.amestra deve ser lida do terminal e no de um ar,uivo em disco) sf ar8 (specifica o ar,uivo da sen.amestra $stash file% 2828$ C6iand a )a!e de dad! 6ara "m ar;"i< Para copiar o conte>do da &ase de dados para um ar,uivo, o administrador deve utili<ar o comando d.mp do kdb5_.til, executado no servidor 8DC) " Figura 4)?2 mostra um exemplo de execuo) # kdb5_util dump -r ,-./01.213 -erbose arqdump C/(D()*+,.&,T admin/adminD()*+,.&,T ftp/servidor1.myware.netD()*+,.&,T host/kerberos.myware.netD()*+,.&,T host/cliente1.myware.netD()*+,.&,T host/servidor1.myware.netD()*+,.&,T kadmin/adminD()*+,.&,T kadmin/changepwD()*+,.&,T kadmin/historyD()*+,.&,T krbtgt/()*+,.&,TD()*+,.&,T root/adminD()*+,.&,T rootD()*+,.&,T telnet/servidor1.myware.netD()*+,.&,T .ser1D()*+,.&,T .ser2D()*+,.&,T .ser6D()*+,.&,T # 5ig"ra 28$'> Copiando a &ase de dados " opo 1verbose mostra os principais na tela, M medida ,ue so gravados no ar,uivo) * comando d.mp 9 utili<ado para efetuar cpias de segurana da &ase dados e para gerar o ar,uivo de replicao da &ase de dados para servidores 8DC escravos) Mais detal.es so&re replicao da &ase de dados do 8er&eros podem ser vistos em S1#(KK(K $233B%T e no \!uia de Cnstalao do 8er&eros @4\, do MCF SMCF $2332% $?%T) 42 2828' Re!ta"rand a )a!e de dad! de "m ar;"i< Para recuperar o conte>do da &ase de dados do 8er&eros existente em um ar,uivo, o administrador deve executar o programa kdb5_.til com o comando load no 8DC ,ue ir= ser atuali<ado) " Figura 4)?A mostra um exemplo de execuo) # kdb5_util load -update -erbose arqdump C/(D()*+,.&,T admin/adminD()*+,.&,T ftp/servidor1.myware.netD()*+,.&,T host/kerberos.myware.netD()*+,.&,T host/cliente1.myware.netD()*+,.&,T host/servidor1.myware.netD()*+,.&,T kadmin/adminD()*+,.&,T kadmin/changepwD()*+,.&,T kadmin/historyD()*+,.&,T krbtgt/()*+,.&,TD()*+,.&,T root/adminD()*+,.&,T rootD()*+,.&,T telnet/servidor1.myware.netD()*+,.&,T .ser1D()*+,.&,T .ser2D()*+,.&,T .ser6D()*+,.&,T created policy adm1pol created policy .ser1pol # 5ig"ra 28$*> #estaurando a &ase de dados " opo 1.pdate fa< com ,ue se atuali<em principais existentes na &ase de dados, al9m de adicionar novos principais contidos no ar,uivo) 7e essa opo no for utili<ada o comando ir= so&repor a &ase existente com os principais do ar,uivo lido) 2828* Cria%& d ar;"i< 6ara a !enDaIme!tra Conforme visto na seo B)A)A, ao se criar a &ase de dados do 8er&eros, podese, opcionalmente, criar um ar,uivo oculto $c.amado stash file% ,ue arma<ena, localmente e de forma criptografada, a sen.amestra do 8DC de modo ,ue este autenti,ue a si mesmo perante os programas kadmind, krb5kdc, kadmin e kdb5_.til) 7em esse ar,uivo presente para a leitura da c.ave, o servidor 4A 8er&eros ir= solicitar a sen.amestra sempre ,ue for necess=rio acessar a &ase de dados) Caso no seGa criado Gunto com os ar,uivos da &ase dados, 9 poss'vel cri=lo posteriormente com o comando stash do programa kdb5_.til, conforme mostra a Figura 4)?B) X poss'vel especificar o ar,uivo para gravao da sen.amestra, com a opo 1f arK.ivo) Caso no seGa especificado ser= usada a locali<ao existente no ar,uivo kdc.conf) # kdb5_util stash ,nter CF- database master key< # 5ig"ra 28$/> Criando o ar,uivo de sen.amestra 2828/ Cria%& e rem%& da )a!e de dad! " criao dos ar,uivos da &ase de dados do 8er&eros foi apresentada na seo B)A)A) Para remover a &ase dados utili<ase o comando destroy do kdb5_.til, conforme mostra a Figura 4)?4) "ntes de remover os ar,uivos, o comando so&rescreve os setores do disco onde esto os ar,uivos) # kdb5_util destroy Feleting CF- database stored in A/var/kerberos/krb5kdc/principalAB are yo. s.reT Htype yes to confirmIT yes #CB deleting database A/var/kerberos/krb5kdc/principalA... # 5ig"ra 28$2> #emovendo a &ase de dados 283 Admini!tra%& d (ad c(iente Como mostrado na seo B)B)?, a instalao dos programas clientes numa estao 4B inclui programas para troca de sen.a e administrao de tic(ets) Uma ve< instalados, os usu=rios devem se .a&ituar a utili<=los de modo a poder trocar a sen.a do principal do 8er&eros, al9m de o&ter, remover e verificar tic(ets) 2838$ A(tera%& de !enDa " troca de sen.a do principal do 8er&eros 9 feita com o comando kpasswd e sua utili<ao 9 semel.ante ao comando passwd do Linux) " Figura 4)?D mostra a troca de sen.a com o comando kpasswd) user1"cliente1:#$ kpasswd Eassword for .ser1D()*+,.&,T< ,nter new password< ,nter it again< Eassword changed. user1"cliente1:#$ 5ig"ra 28$3> "lterando a sen.a do principal em uso 2838' O)ten%& de tickets Para o&ter tic(ets de acesso a m=,uinas e servios 9 necess=rio ,ue se ten.a o&tido um F!F) " o&teno de um F!F se d= automaticamente no momento do loon, caso o programa de loin do 8er&eros $/.sr/sbin/login.krb5% esteGa sendo executado no lugar do programa de loin padro do Linux) Caso contr=rio, o usu=rio necessita o&ter o F!F explicitamente atrav9s do programa kinit) * programa kinit tam&9m 9 necess=rio para o&ter novos tic(ets aps sua expirao) "o c.amar o programa ser= solicitada a sen.a do 8er&eros e, caso esteGa correta, o tic(et ser= arma<enado no cache de credenciais) Fam&9m 9 poss'vel o&ter tic(ets para um principal ,ue no 9 o mesmo ,ue efetuou loon) Por exemplo, para um usu=rio comum o&ter um tic(et para seu principal de administrador, &asta executar o comando passando o principal administrativo como parWmetro) " Figura 4)?H mostra a execuo do kinit para o&ter um tic(et para um principal diferente do atualmente logado) 44 user1"cliente1:#$ kinit admin/admin Eassword for admin/adminD()*+,.&,T< user1"cliente1:#$ 5ig"ra 28$1> *&tendo um tic(et Mais detal.es so&re a o&teno de tic(ets, &em como suas propriedades, podem ser vistos no \!uia do usu=rio do 8er&eros @4\, do MCF SMCF $2332% $A%T) 2838* 9i!"a(i:a%& d! tickets Para visuali<ar os tic(ets ,ue esto em cache utili<ase o comando klist) Logo aps o loon o >nico tic(et existente 9 o F!F) "ps acessar outras m=,uinas e servios, outros tic(ets estaro em cache e podem ser visuali<ados) " Figura 4)?I mostra um exemplo de listagem de credenciais) # klist Ticket cache< >$?,</tmp/krb5cc_/ Fefa.lt principal< admin/adminD()*+,.&,T !alid starting ,Npires Service principal /2//2//5 13<32<55 /2//0//5 //<32<55 krbtgt/()*+,.&,TD()*+,.&,T # 5ig"ra 28$C> Listando o ar,uivo de credenciais 2838/ De!tr"i%& d! tickets " destruio dos tic(ets 9 importante e deve ser executada sempre ,ue o usu=rio se ausentar da m=,uina ou efetuar looff) Csso por,ue um invasor pode capturar tic(ets e se passar pelo usu=rio at9 ,ue o tic(et expire) Para destruir todos os tic(ets ,ue esto em cache utili<ase o comando kdestroy) X recomendado ,ue o comando seGa colocado no ar,uivo .logo.t dos usu=rios para ,ue seGa executado sempre ,ue um usu=rio efetuar looff) 4D Ca67t"( 3 Cn!idera%4e! 5inai! X importante frisar ,ue implementar o 8er&eros na rede no 9 garantia de total segurana) Feoricamente, o 8er&eros 9 extremamente seguro) Por9m, pelo lado pr=tico, .= diversos aspectos de segurana ,ue precisam ser considerados) "lguns cuidados de segurana devem ser tomados de modo a no comprometer a infraestrutura do 8er&eros, como dedicar servidores exclusivos para o 8DC e desativar ,ual,uer servio desnecess=rio nesses servidores) * 8er&eros prov apenas o servio de autenticao e criptografiaR ele no pode prevenir fal.as causadas por pro&lemas em soft$are de servidores e servios, administradores relapsos ,ue passam sua sen.a a outros, uma pol'tica de sen.as mal ela&orada, etc) " seguir so apresentados e discutidos diversos aspectos relativos a poss'veis fal.as de segurana e formas de ata,ue contra um sistema de autenticao 8er&eros, seguidos de poss'veis solu:es para preveno desses ata,ues) 38$ Ata;"e! B in0rae!tr"t"ra Ker)er! " primeira forma pela ,ual um invasor pode comprometer um am&iente 8er&eros 9 diretamente so&re os servidores 8er&eros) Por9m, mesmo sem o acesso f'sico ao 8DC, onde seria poss'vel, por exemplo, deslig=lo, .= uma s9rie de ata,ues eletr/nicos ,ue um invasor pode utili<ar na tentativa de comprometer o sistema 8er&erosN 4H Ace!! root a !er<idr KDC Conseguindo o acesso de root ao servidor 8DC $principal ou escravos% um crac(er o&teria controle total so&re os servios e ar,uivos instalados no servidor) "pesar do 8er&eros, por padro, no dar acesso aos &ancos de dados para o usu=rio root, toda a &ase do 8er&eros pode ser considerada comprometida caso um invasor consiga ter o acesso de root a ,ual,uer um dos servidores 8DC da rede pois ele ter= acesso ao soft$are e ar,uivos de configurao do 8er&eros podendo modific=los e danificar todo o sistema) U! de !enDa de "m 6rinci6a( admini!tradr *utra forma de ata,ue 9 com a o&teno da sen.a de um principal ,ue seGa administrador do 8er&eros) Csso daria ao invasor acesso completo M &ase de dados 8er&eros permitindo ,ue, mesmo remotamente, a,uele pudesse criar, remover ou alterar ,ual,uer principal) Um n>mero redu<ido de administradores, aliada a um conGunto de pol'ticas r'gidas para esses usu=rios, 9 a mel.or forma de minimi<ar essa possi&ilidade de ata,ue) Ace!! root a "m !er<idr Para o funcionamento da autenticao m>tua no 8er&eros, os servios devem ter um principal cadastrado) "s c.aves dos principais de servios residem no ar,uivo (e#tab no servidor) 7e um invasor consegue a sen.a do root de um servidor, todos os servios ,ue rodam nesse servidor ficam comprometidos) "l9m de comprometer os servios, o invasor pode tentar descriptografar o tr=fego entre os clientes e esse servidor) " segurana de servios OEer&eri<adosP ,ue rodam em um servidor depende da segurana individual desse servidorR portanto, todos os servidores devem ser seguros em proporo ao valor dos recursos nele arma<enados) Ace!! root a "ma m#;"ina c(iente Kesse caso, um invasor teria acesso a todos os tic(ets gravados em cache na,uela estao) Como os tic(ets possuem tempo de expirao, o invasor teria pouco tempo para tentar reutili<ar algum deles) Por9m, o invasor pode implantar um sniffer de teclado e o&ter as sen.as de usu=rios para uso 4I malicioso posterior) "ssim, uma estao comprometida compromete as sen.as de ,ual,uer usu=rio ,ue a ten.a utili<ado, devendo todos trocar a sen.a imediatamente) Cm6rmetiment da! credenciai! de "!"#ri Como mostrado acima .= duas possi&ilidades nessa situaoN o tic(et ,ue est= em cache 9 exposto ou a sen.a do usu=rio 9 o&tida) 7e um invasor consegue acesso ao tic(et este 9 v=lido apenas por um per'odo de tempo) Por outro lado, conseguindo a sen.a de um usu=rio, o invasor pode se fa<er passar por esse usu=rio at9 ,ue este efetue uma troca de sen.a) " partir da lista acima perce&ese a importWncia de manter todas as m=,uinas da rede seguras) Mesmo a instalao do 8er&eros na rede no elimina a necessidade de tomar os devidos cuidados para ,ue as m=,uinas, tanto servidores como esta:es de usu=rios, esteGam seguras contra invas:es e ata,ues) * comprometimento de ,ual,uer m=,uina da rede ter=, de alguma forma, efeitos so&re a segurana do sistema de autenticao 8er&eros) 38' Seg"ran%a d 6rtc( * 8er&eros foi proGetado para evitar ,ue informa:es de autenticao passem a&ertas pela rede e, dessa forma, no possam ser violadas mesmo ,ue capturadas) "ssim, o 8er&eros criptografa todos os dados relativos a uma autenticao ,uando esta ocorre atrav9s da rede) Ka seo anterior foram apresentadas formas de ata,ues a uma rede com 8er&eros) ",ui so apresentadas algumas formas de ata,ues so&re o protocolo 8er&eros em si) Ata;"e! de dicin#ri e 0r%aI)r"ta * ata,ue de fora&ruta num am&iente 8er&eros consiste em capturar um tic(et e tentar descriptograf=lo) 7e o invasor o&t9m a c.ave usada para criptografar a mensagem ele ter= a sen.a do usu=rio e pode se passar por este no futuro) Como no .= como descriptografar o tic(et diretamente, o 4J invasor pode usar fora&ruta so&re o F!F utili<ando um ata,ue de dicion=rio em off)line) Durante o ata,ue de dicion=rio 9 utili<ado um programa, com uma lista contendo sen.as comuns e possivelmente utili<adas por usu=rios $dicion=rio%, ,ue tenta descriptografar a mensagem utili<ando cada uma das sen.as) 7e uma coincidncia 9 encontrada o programa avisa o invasor so&re a sen.a do usu=rio) X muito prov=vel ,ue, depois da desco&erta da sen.a, o tic(et ten.a expirado seu tempo de validade) Por9m, o crac(er tem agora uma com&inao de usu=rio e sen.a v=lidos, podendo o&ter novos tic(ets v=lidos) Ata;"e! de reen<i Um ata,ue de reenvio envolve interceptar um tic(et e ento reapresent=lo na tentativa de o&ter uma autenticao) Como .= a troca de mensagens eletr/nicas entre os computadores no momento da autenticao, um invasor pode capturar mensagens e reapresent=las momentos depois) (le no necessita desco&rir sen.as ou descriptografar mensagens) X um tipo de ata,ue ativo, pois o invasor tem ,ue estar on)line, ouvindo a rede todo o tempo e com a capacidade de reenviar as falsas mensagens na rede) Ata;"e! Man-in-the-middle Fam&9m 9 um tipo de ata,ue ativo, o ,ue significa ,ue o invasor precisa ser capa< de ler todas a mensagens ,ue trafegam na rede, assim como enviar falsas mensagens) X um ata,ue ,ue afeta protocolos ,ue tentam verificar a identidade dos pontos finais de uma conexo, neste caso, o usu=rio e o servidor ,ue esse usu=rio tenta acessar) * o&Getivo do invasor 9 fa<er se passar pelo servidor, de modo ,ue o usu=rio pense ,ue est= em conexo com o servidor real ,uando, na verdade, est= trocando mensagens com o invasor) -uando intercepta e passa a controlar a sesso, o invasor passa a ser parte da comunicao, atuando como um repassador das mensagens entre o usu=rio e o servidor real, D3 podendo adicionar novos pacotes, alterar ou remover mensagens, da' o nome Man)in)the)middle) * protocolo 8er&eros possui algumas prote:es contra esse tipo de ata,ue) Como 9 feita autenticao m>tua, pela confirmao no s do cliente mas tam&9m a identificao do servidor, um invasor teria ,ue capturar e descriptografar as mensagens de am&os os lados da comunicao) Um programa cliente pode detectar se o servidor 9 confi=vel solicitando a autenticao do servidor, ,ue deve demonstrar sua identidade solicitando um tic(et ao 8DC $autenticandose no 8er&eros% e apresentando essas credenciais ao programa cliente) Caso essas credencias no seGam apresentadas, o programa cliente perce&e ,ue no 9 um servidor real e desconecta a sesso) Um invasor tam&9m pode explorar produtos desatuali<ados) * 8er&eros @4, apesar de ser um avano e corrigir diversos pro&lemas de segurana da verso B, tam&9m G= apresentou alguns pontos de fal.a para os ,uais so lanadas corre:es sempre ,ue desco&ertas) "lgumas da vulnera&ilidades G= con.ecidas podem ser encontradas no site do MCF ?3 ) "l9m disso, os programas dos diversos servios tam&9m devem estar preparados para usar 8er&eros) * uso de algum servio OnoEer&eri<adoP pode levar ao trWnsito de sen.as a&ertas na rede podendo comprometer o sistema 8er&eros) Portanto, o uso de servios ,ue no faam uso do 8er&eros no 9 aconsel.=vel) Para tais casos, 9 poss'vel o uso de outros protocolos com criptografia, tais como 775 ou 77L;FL7) 38* Ata;"e! genJric! *s seguintes ata,ues no so ata,ues diretos contra um sistema 8er&eros, mas so pro&lemas relacionados a manter seguro e dispon'vel um sistema de autenticao) (ssas t9cnicas podem ser utili<adas contra ,ual,uer sistema de autenticao) ?3 .ttpN;;Er&dev)mit)edu;rt;Ko"ut.;Er&4?)B;&ugs?)B).tml D? Nega%& de !er<i% EDenial of Service DSF (sse tipo de ata,ue consiste em inundar os servidores do 8DC com solicita:es de autenticao a ponto de tornar as respostas lentas e impedir as autentica:es por timeout ou mesmo derru&ar o servio de autenticao) * uso de fire$all e servidores 8DC adicionais podem minimi<ar esse tipo de ata,ue) Ma(e07ci! intern! Ko .= como se proteger de um administrador ,ue resolva fa<er mal uso dos seus privil9gios) Um usu=rio interno mal intencionado, ,ue possua autori<ao administrativa, poderia alterar danosamente as informa:es na &ase de dados 8er&eros) EngenDaria !cia( e e-6!i%& de !enDa! De modo igual, no .= proteo contra usu=rios ,ue resolvam divulgar sua sen.a a outros, seGa intencionalmente ou no, como num ata,ue de engen.aria social) Da' a importWncia de treinamento em segurana da informao para o usu=rio final, incluindose como manter a sen.a segura e em sigilo, no a revelando mesmo para ,uem se identifi,ue como sendo da =rea de tecnologia da empresa) *utra forma onde a sen.a pode ser capturada 9 o uso da mesma sen.a do 8er&eros em outros sistemas inseguros) 38/ S("%4e! de !eg"ran%a Fendo o con.ecimento dos aspectos relacionados Ms poss'veis vulnera&ilidades e limita:es do 8er&eros, 9 poss'vel relacionar solu:es para diversos desses pro&lemas e, assim, executar uma implementao de um sistema de autenticao o mais seguro poss'vel) Por exemplo, no se deve instalar servidores e am&ientes gr=ficos nem permitir o loon para usu=rios comuns nos servidores ,ue executaro o 8DC) *utro fator importante na segurana do servidor 8DC 9 a sua visi&ilidade na rede) X D2 fundamental ,ue servios de rede ,ue no seGam do prprio 8DC esteGam desa&ilitados) Um servidor ssh pode estar .a&ilitado para administrao remota do servidor) X de suma importWncia estar informado so&re corre:es de segurana do sistema operacional, do 8er&eros e das vers:es de aplica:es ,ue dele fa<em uso e aplic=las to logo seGa poss'vel, mantendose o am&iente sempre atuali<ado) (m suma, a proteo dos servidores 8er&eros, a manuteno do produto atuali<ado com relao Ms corre:es de segurana, aliados a uma pol'tica de segurana e sen.as so grandes aliados para uma infraestrutura 8er&eros segura, &em implementada e funcional) 382 De!<antagen! d Ker)er! "pesar do 8er&eros eliminar diversas &rec.as de segurana, sua implementao pode ser um pouco complexa) Uma dessas ra<:es 9 a migrao da &ase de dados de usu=rios existente) Ko .= ferramentas para migrar as sen.as dos ar,uivos /etc/passwd ou /etc/shadow para a &ase de dados do 8er&eros, tornando essa tarefa &astante tediosa) *utra desvantagem 9 a necessidade $ou recomendao, visto ,ue no 9 o&rigatrio% de servidores dedicados ao servio do 8er&eros) * tempo de vida do tic(et 9 um outro ponto ,ue pode ser considerado como pro&lem=tico) Um tempo de vida muito longo pode dar mais tempo a um invasor caso um tic(et seGa capturado ou uma estao comprometida) Um tempo muito pe,ueno imp:e ao usu=rio a necessidade de redigitar a sen.a aps a expirao) Fam&9m 9 necess=rio um suporte especial para processos ,ue executam por longos per'odos) Finalmente, o 8er&eros pode ser considerado como uma soluo do tipo Otudo ounadaP) Para ter segurana com o 8er&eros 9 necess=rio utili<ar vers:es OEer&eri<adasP de todas as aplica:es cliente;servidor ,ue utili<am autenticao ou no se ter= &enef'cios com o 8er&eros) "s aplica:es precisam estar ade,uadas para utili<ar o 8er&eros, ou seGa, pode ser necess=rio modificar seu cdigo para utili<ar as DA c.amadas Ms &i&liotecas do 8er&eros) Dependendo da aplicao, tais altera:es podem ser &astante complexas) 383 9antagen! d Ker)er! Para a,ueles ,ue no o con.ecem totalmente, os &enef'cios de implantao do 8er&eros em uma rede podem no ser muito claros) Por9m, o 8er&eros foi proGetado para solucionar diversos pro&lemas, como captura de informa:es atrav9s de escuta da rede, rou&o de sen.as e ar,uivos de autenticao, trWnsito de sen.as a&ertas na rede e a dificultosa tarefa administrativa de manuteno de m>ltiplas &ases de dados de autenticao) Uma infraestrutura 8er&eros &em implementada ir=, certamente, auxiliar na resoluo desses pro&lemas, tornando a rede da empresa mais segura) * uso do 8er&eros previne ,ue sen.as a&ertas seGam transmitidas pela rede e permite centrali<ar as informa:es de usu=rios e suas sen.as simplificando a administrao) * 8er&eros tam&9m previne o arma<enamento local de sen.as, redu<indo as possi&ilidades de danos M rede caso uma m=,uina em particular seGa comprometida de alguma forma) "l9m dos &enef'cios de um sistema de autenticao mais seguro, o 8er&eros oferece outras caracter'sticas vantaGosas, como a possi&ilidade de criptografar todo o tr=fego ,ue vai pela rede, redu<indo as c.ances de captura de informa:es por invasores) * 8er&eros tam&9m permite o uso de uma >nica sen.a para acesso aos servios OEer&eri<adosP, permitindo ,ue, uma ve< autenticado, o usu=rio possa fa<er diversas conex:es a diversos servidores sem ter ,ue redigitar sua sen.a) (m suma, para grandes empresas, os &enef'cios do 8er&eros se tradu<em em reduo dos custos administrativos, simplificao dos processos de gerenciamento de usu=rios e sen.as, aliados ao aumento da segurana da rede) (m am&ientes menores, a implantao de uma infraestrutura de autenticao escal=vel e uma rede com maior n'vel de segurana so vantagens claras) DB 381 Pr6!ta! 6ara 0"t"r! tra)a(D! Um implantao completa do protocolo 8er&eros numa rede Linux envolve outras a:es e vo al9m do propsito deste documento) 7eguem algumas sugest:es ,ue podem ser utili<adas para desenvolvimento de outros tra&al.osN configurao de servidores 8DC escravos e replicao da &ase de dadosR autenticao entre reinosR servios de rede com 8er&eros $V(1, 7MFP, P*P etc)%R Uso de P"M, K77 e LD"P com 8er&erosR Cntegrao com outros sistemas operacionais $VindoLs, Mac, Unix%) D4 DD Re0erKncia! Bi)(igr#0ica! S1#(KK(K $233B%T 1#(KK(K, @) ") Ker)er! In0ra!tr"ct"re ?OLTO8 233B) Dispon'vel emN c.ttpN;;LLL)linux)com;.oLtos;8er&erosCnfrastructure 5*VF*;index)s.tmld) "cesso emN 2I fev) 2334) SF(#!U7*KR 7C5K(C(# $233A%T F(#!U7*K, K)R 7C5K(C(#, 1) Practica( CrM6tgra6DM8 (U"N Vile6, 233A) BA2 p) SF(##(C#" $233A%T F(##(C#", #) () LINUX N +"ia d Admini!tradr d Si!tema8 7o PauloN Kovatec, 233A) 4?2 p) S!UL1#"KD7(KR @CUC(R (7C1*@ $2333%T !UL1#"KD7(K, ")R @CUC(, P)R (7C1*@, L) A DNS RR 0r !6eci0Ming tDe (catin 0 !er<ice! EDNS SR9F) Cnternet (ngineering FasE Force $C(FF%, Fevereiro 2333) $#e,uest for CommentsN 2HI2%) Dispon'vel emN c.ttpN;;LLL)ietf)org;rfc;rfc2HI2)txtd) "cesso emN 3A mar) 2334) S5*#K7F(CK $2333%T 5*#K7F(CK, 8) Ker)er! 5AOP <'8G8 2333) Dispon'vel emN c.ttpN;;LLL)fa,s)org;fa,s;Eer&erosfa,;generald) "cesso emN 32 mar) 2334) S8*5LR K(UM"K $?JJA%T 8*5L, +)R K(UM"K, C) TDe Ker)er! Net@rA A"tDenticatin Ser<ice E92F8 Cnternet (ngineering FasE Force $C(FF%, 7etem&ro ?JJA) $#e,uest for CommentsN ?4?3%) Dispon'vel emN c.ttpN;;LLL)ietf)org;rfc;rfc?4?3)txtd) "cesso emN 3A mar) 2334) SL(CP*LD $?JJJ%T L(CP*LD, Cosimo) Ker)er!8 Lin"- J"rna(8 +an?JJJ) Dispon'vel emN c.ttpN;;LLL)linuxGournal)com;article;AA2Jd) "cesso emN 3? mar) 2334) SMCLL7 $?JJ2%T MCLL7, D) L) Net@rA Time Prtc( E9er!in *F N S6eci0icatinP Im6(ementatin and Ana(M!i!8 Cnternet (ngineering FasE Force $C(FF%, Maro ?JJ2) $#e,uest for CommentsN ?A34%) Dispon'vel emN c.ttpN;;LLL)ietf)org;rfc;rfc?A34)txtd) "cesso emN 3A mar) 2334) DH SMCF $2332% $?%T Massac.usetts Cnstitute of Fec.nolog6 0 MCF) Ker)er! 92 In!ta((atin +"ide I Ker)er! 2 Re(ea!e $8/8 ?JI42332) Dispon'vel emN c.ttpN;;Le&)mit)edu;Eer&eros;LLL;Er&4?)B;Er&4?)B;doc;Er&4install).tmld) "cesso emN 2I fev) 2334) SMCF $2332% $2%T Massac.usetts Cnstitute of Fec.nolog6 0 MCF) Ker)er! 92 SM!tem Admini!tratrQ! +"ide I Ker)er! 2 Re(ea!e $8/8 ?JI42332) Dispon'vel emN c.ttpN;;Le&)mit)edu;Eer&eros;LLL;Er&4?)B;Er&4 ?)B;doc;Er&4admin).tmld) "cesso emN 2I fev) 2334) SMCF $2332% $A%T Massac.usetts Cnstitute of Fec.nolog6 0 MCF) Ker)er! 92 U!erQ! +"ide I Ker)er! 2 Re(ea!e $8/8 ?JI42332 Dispon'vel emN c.ttpN;;Le&)mit)edu;Eer&eros;LLL;Er&4?)B;Er&4?)B;doc;Er&4user).tmld) "cesso emN 2I fev) 2334) SM*C8"P(F#C7 $?JIH% $?%T M*C8"P(F#C7, P) Dmain Name! N Cnce6t! and 5aci(itie!8 Cnternet (ngineering FasE Force $C(FF%, Kovem&ro ?JIH) $#e,uest for CommentsN ?3AB%) Dispon'vel emN c.ttpN;;LLL)ietf)org;rfc;rfc?3AB)txtd) "cesso emN 3A mar) 2334) SM*C8"P(F#C7 $?JIH% $2%T M*C8"P(F#C7, P) Dmain Name! N Im6(ementatin and S6eci0icatin8 Cnternet (ngineering FasE Force $C(FF%, Kovem&ro ?JIH) $#e,uest for CommentsN ?3A4%) Dispon'vel emN c.ttpN;;LLL)ietf)org;rfc;rfc?3A4)txtd) "cesso emN 3A mar) 2334) SKC7" $2332%T Universit6 of Cllinois Kational Center for 7upercomputing "pplications $KC7"%) NCSA Ker)er! In0rmatin8 233B) Dispon'vel emN c.ttpN;;LLL)ncsa)uiuc)edu;UserCnfo;#esources;7oftLare;Eer&eros;index).tml d) "cesso emN 32 mar) 2334) S#ed 5at $233A%T #ed 5at, Cnc) Red ?at Lin"- . I Red ?at Lin"- Re0erence +"ide I CDa6ter $1> Ker)er!8 233A) Dispon'vel emN c.ttpN;;LLL)red.at)com;docs;manuals;linux;#5LJManual;refguide;c. Eer&eros).tmld) "cesso emN 3? mar) 2334) S7F"K!(#R L"K( $2332%T 7F"K!(#, +)R L"K(, P) F) Rede Seg"ra Lin"-8 #io de +aneiroN "lta 1ooEs, 2332) D3H p) SFUK! $?JJD%T FUK!, 1) TDe MrnQ! +"ide t Ker)er!8 ?JJD) Dispon'vel emN c.ttpN;;LLL)isi)edu;gost;&rian;securit6;Eer&eros).tmld) "cesso emN 3? mar) 2334) DI