Differences

This shows you the differences between two versions of the page.

Link to this comparison view

servidor_kerberos_master_slave_debian_squeeze_pt_br [2019/08/08 15:23] (current)
Line 1: Line 1:
 +====== Servidor Kerberos Master/Slave + Debian Squeeze ======
  
 +  - Nome servidor master: kdc1.douglasqsantos.com.br
 +  - IP servidor master: 10.0.0.25
 +  - Domínio: douglasqsantos.com.br
 +  - Realm: DOUGLASQSANTOS.COM.BR
 +  - Nome servidor slave: kdc2.douglasqsantos.com.br
 +  - IP servidor slave: 10.0.0.26
 +  - Domínio: douglasqsantos.com.br
 +  - Realm: DOUGLASQSANTOS.COM.BR
 +  - Nome cliente: cliente.douglasqsantos.com.br
 +  - IP cliente: 10.0.0.27
 +  - Domínio: douglasqsantos.com.br
 +  - Realm: DOUGLASQSANTOS.COM.BR
 +
 +Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialsqueeze_en para que não falte nenhum pacote ou configuração.
 +
 +
 +Vamos preparar o ambiente primeiro 
 +
 +Vamos acertar o /etc/hosts do servidor master
 +<sxh bash>
 +
 +vim /etc/hosts
 +127.0.0.1       localhost
 +10.0.0.25       kdc1.douglasqsantos.com.br       kdc1
 +10.0.0.26       kdc2.douglasqsantos.com.br       kdc2
 +10.0.0.27       cliente.douglasqsantos.com.br    cliente
 +</sxh>
 +
 +Vamos ajustar o nome do servidor master em /etc/hostname 
 +<sxh bash>
 +
 +vim /etc/hostname
 +kdc1
 +</sxh>
 +
 +Vamos acertar o /etc/hosts do servidor slave 
 +<sxh bash>
 +
 +vim /etc/hosts
 +127.0.0.1       localhost
 +10.0.0.25       kdc1.douglasqsantos.com.br       kdc1
 +10.0.0.26       kdc2.douglasqsantos.com.br       kdc2
 +10.0.0.27       cliente.douglasqsantos.com.br    cliente
 +</sxh>
 +
 +Vamos ajustar o nome do servidor slave em /etc/hostname 
 +<sxh bash>
 +
 +vim /etc/hostname
 +kdc2
 +</sxh>
 +
 +Vamos desabilitar o IPV6 nos dois servidores 
 +<sxh bash>
 +
 +echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
 +</sxh>
 +
 +Agora vamos reiniciar os dois servidores 
 +<sxh bash>
 +
 +reboot
 +</sxh>
 +Agora vamos instalar as dependências para podermos trabalhar com o kerberos
 +<sxh bash>
 +
 +aptitude update && aptitude dist-upgrade -y && apt-get install ssh ntp ntpdate xinetd nmap -y
 +</sxh>
 +
 +Agora vamos instalar os serviços do servidor kerberos
 +<sxh bash>
 +
 +apt-get install krb5-{admin-server,user} libpam-krb5 -y
 +</sxh>
 +
 +Responda as perguntas da seguinte forma somente mudando o domínio de acordo com a necessidade 
 +  - DOUGLASQSANTOS.COM.BR
 +  - kdc1.douglasqsantos.com.br
 +  - kdc1.douglasqsantos.com.br
 +
 +Agora vamos acertar o Xinetd para ele fazer a propagação da base do kerberos
 +<sxh bash>
 +
 +vim /etc/xinetd.d/krb_prop
 +service krb_prop
 +{
 +        disable         = no
 +        socket_type     = stream
 +        protocol        = tcp
 +        user            = root
 +        wait            = no
 +        server          = /usr/sbin/kpropd
 +}
 +</sxh>
 +
 +Agora vamos reiniciar ele
 +<sxh bash>
 +
 +/etc/init.d/xinetd restart
 +</sxh>
 +
 +Agora vamos criar o nosso domínio com o comando krb5_newrealm 
 +<sxh bash>
 +
 +krb5_newrealm
 +This script should be run on the master KDC/admin server to initialize
 +a Kerberos realm.  It will ask you to type in a master key password.
 +This password will be used to generate a key that is stored in
 +/etc/krb5kdc/stash.  You should try to remember this password, but it
 +is much more important that it be a strong password than that it be
 +remembered.  However, if you lose the password and /etc/krb5kdc/stash,
 +you cannot decrypt your Kerberos database.
 +Loading random data
 +Initializing database '/var/lib/krb5kdc/principal' for realm 'DOUGLASQSANTOS.COM.BR',
 +master key name 'K/M@DOUGLASQSANTOS.COM.BR'
 +You will be prompted for the database Master Password.
 +It is important that you NOT FORGET this password.
 +Enter KDC database master key: #informe a senha
 +Re-enter KDC database master key to verify: #confirme a senha
 +
 +
 +Now that your realm is set up you may wish to create an administrative
 +principal using the addprinc subcommand of the kadmin.local program.
 +Then, this principal can be added to /etc/krb5kdc/kadm5.acl so that
 +you can use the kadmin program on other computers.  Kerberos admin
 +principals usually belong to a single user and end in /admin.  For
 +example, if jruser is a Kerberos administrator, then in addition to
 +the normal jruser principal, a jruser/admin principal should be
 +created.
 +
 +Don't forget to set up DNS information so your clients can find your
 +KDC and admin servers.  Doing so is documented in the administration
 +guide.
 +</sxh>
 +
 +Agora vamos acertar as acls do kerberos
 +<sxh bash>
 +
 +vim /etc/krb5kdc/kadm5.acl
 +[...]
 +*/admin *
 +admin *
 +</sxh>
 +
 +Agora vamos acertar o arquivo de configuração krb5.conf
 +
 +Vamos fazer um backup do arquivo
 +<sxh bash>
 +
 +cp /etc/krb5.conf{,.bkp}
 +</sxh>
 +
 +Agora deixe ele como abaixo
 +<sxh bash>
 +
 +vim /etc/krb5.conf
 +[libdefaults]
 +        default_realm = DOUGLASQSANTOS.COM.BR
 +        forwardable = true
 +        proxiable = true
 +
 +[realms]
 +        DOUGLASQSANTOS.COM.BR = {
 +                kdc = kdc1.douglasqsantos.com.br
 +                admin_server = kdc1.douglasqsantos.com.br
 +        }
 +
 +[domain_realm]
 +        .douglasqsantos.com.br = DOUGLASQSANTOS.COM.BR
 +        douglasqsantos.com.br = DOUGLASQSANTOS.COM.BR
 +
 +[logging]
 +        kdc = FILE:/var/log/krb5/kdc.log
 +        admin_server = FILE:/var/log/krb5/kadmin.log
 +        default = FILE:/var/log/krb5/klib.log
 +</sxh>
 +
 +Agora vamos criar o diretório que vai armazenar os logs
 +<sxh bash>
 +
 +mkdir /var/log/krb5
 +</sxh>
 +
 +Agora vamos configurar o logrotate para fazer rotação dos logs do kerberos
 +<sxh bash>
 +
 +vim /etc/logrotate.d/krb5
 +/var/log/krb5/kadmin.log /var/log/krb5/kdc.log /var/log/krb5/klib.log {
 +        daily
 +        missingok
 +        rotate 7
 +        compress
 +        delaycompress
 +        notifempty
 +}
 +</sxh>
 +
 +
 +Agora vamos mudar o tempo de vida do ticket 
 +<sxh bash>
 +
 +kadmin.local
 +Authenticating as principal root/admin@DOUGLASQSANTOS.COM.BR with password.
 +#Vamos mudar o tempo de vida do ticket
 +kadmin.local:  modprinc -maxlife "1 day" -maxrenewlife "90 day" krbtgt/DOUGLASQSANTOS.COM.BR
 +Principal "krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR" modified.
 +kadmin.local:  q
 +</sxh>
 +
 +Agora vamos acertar o kdc.conf com o novo tempo de vida máximo do ticket
 +<sxh bash>
 +
 +vim /etc/krb5kdc/kdc.conf
 +[...]
 +max_life = 1d 0h 0m 0s
 +max_renewable_life = 90d 0h 0m 0s
 +</sxh>
 +
 +Agora vamos reiniciar os serviços
 +<sxh bash>
 +
 +/etc/init.d/krb5-admin-server restart ; /etc/init.d/krb5-kdc restart
 +</sxh>
 +
 +Agora vamos criar o nosso admin 
 +<sxh bash>
 +
 +kadmin.local
 +Authenticating as principal root/admin@DOUGLASQSANTOS.COM.BR with password.
 +#Vamos criar o admin
 +kadmin.local:  addprinc admin
 +WARNING: no policy specified for admin@DOUGLASQSANTOS.COM.BR; defaulting to no policy
 +Enter password for principal "admin@DOUGLASQSANTOS.COM.BR": #informe a senha
 +Re-enter password for principal "admin@DOUGLASQSANTOS.COM.BR": #informe a senha
 +Principal "admin@DOUGLASQSANTOS.COM.BR" created.
 +kadmin.local:  q
 +</sxh>
 +
 +Agora vamos criar a nossa keytab e adicionar o nosso host 
 +<sxh bash>
 +
 +kadmin -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR: #informe a senha do admin
 +#Agora vamos criar um host no kerberos
 +kadmin:  addprinc -randkey host/kdc1.douglasqsantos.com.br
 +WARNING: no policy specified for host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR; defaulting to no policy
 +Principal "host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR" created.
 +#Agora vamos adicionar o host ao keytab
 +kadmin:  ktadd host/kdc1.douglasqsantos.com.br
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
 +kadmin:  q
 +</sxh>
 +
 +Agora vamos aos testes, vamos criar um ticket para o nosso admin
 +<sxh bash>
 +
 +kinit admin
 +Password for admin@DOUGLASQSANTOS.COM.BR: #informe a senha
 +</sxh>
 +
 +Agora vamos confirmar se o nosso ticket foi criado
 +<sxh bash>
 +
 +klist
 +Ticket cache: FILE:/tmp/krb5cc_0
 +Default principal: admin@DOUGLASQSANTOS.COM.BR
 +
 +Valid starting     Expires            Service principal
 +10/10/11 11:43:59  10/11/11 11:43:58  krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Agora vamos destruir o nosso ticket
 +<sxh bash>
 +
 +kdestroy
 +</sxh>
 +
 +Agora vamos listar novamente para confirmar que destruímos o ticket
 +<sxh bash>
 +
 +klist
 +klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)
 +</sxh>
 +
 +Como pode ser notado não temos mais o ticket
 +
 +Agora vamos a algumas operações do kerberos
 +
 +Vamos listar a base de dados do nosso kerberos
 +<sxh bash>
 +
 +kadmin -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR: #senha
 +#Vamos listar a base do kerberos
 +kadmin:  listprincs
 +K/M@DOUGLASQSANTOS.COM.BR
 +admin@DOUGLASQSANTOS.COM.BR
 +host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +kadmin/admin@DOUGLASQSANTOS.COM.BR
 +kadmin/changepw@DOUGLASQSANTOS.COM.BR
 +kadmin/history@DOUGLASQSANTOS.COM.BR
 +kadmin/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Agora vamos obter os possíveis comandos que podemos utilizar no console do Kerberos
 +<sxh bash>
 +
 +#Vamos listar os possíveis comandos
 +kadmin:  ?
 +Available kadmin requests:
 +
 +add_principal, addprinc, ank
 +                         Add principal
 +delete_principal, delprinc
 +                         Delete principal
 +modify_principal, modprinc
 +                         Modify principal
 +change_password, cpw     Change password
 +get_principal, getprinc  Get principal
 +list_principals, listprincs, get_principals, getprincs
 +                         List principals
 +add_policy, addpol       Add policy
 +modify_policy, modpol    Modify policy
 +delete_policy, delpol    Delete policy
 +get_policy, getpol       Get policy
 +list_policies, listpols, get_policies, getpols
 +                         List policies
 +get_privs, getprivs      Get privileges
 +ktadd, xst               Add entry(s) to a keytab
 +ktremove, ktrem          Remove entry(s) from a keytab
 +lock                     Lock database exclusively (use with extreme caution)
 +unlock                   Release exclusive database lock
 +list_requests, lr, ?     List available requests.
 +quit, exit, q            Exit program.
 +kadmin:  q
 +</sxh>
 +
 +
 +Agora vamos mudar a senha do admin 
 +<sxh bash>
 +
 +#Comando para alterar a senha do admin
 +kadmin:  cpw admin
 +Enter password for principal "admin@DOUGLASQSANTOS.COM.BR": #informe a senha
 +Re-enter password for principal "admin@DOUGLASQSANTOS.COM.BR": #confirme a senha
 +Password for "admin@DOUGLASQSANTOS.COM.BR" changed.
 +</sxh>
 +
 +Agora vamos obter informações a respeito de um determinado usuário
 +<sxh bash>
 +
 +#Comando para obter informações 
 +kadmin:  getprinc admin
 +Principal: admin@DOUGLASQSANTOS.COM.BR
 +Expiration date: [never]
 +Last password change: Mon Oct 10 11:41:09 BRT 2011
 +Password expiration date: [none]
 +Maximum ticket life: 1 day 00:00:00
 +Maximum renewable life: 90 days 00:00:00
 +Last modified: Mon Oct 10 11:41:09 BRT 2011 (root/admin@DOUGLASQSANTOS.COM.BR)
 +Last successful authentication: Mon Oct 10 11:52:11 BRT 2011
 +Last failed authentication: [never]
 +Failed password attempts: 0
 +Number of keys: 8
 +Key: vno 1, AES-256 CTS mode with 96-bit SHA-1 HMAC, no salt
 +Key: vno 1, ArcFour with HMAC/md5, no salt
 +Key: vno 1, Triple DES cbc mode with HMAC/sha1, no salt
 +Key: vno 1, DES cbc mode with CRC-32, no salt
 +Key: vno 1, DES cbc mode with RSA-MD5, Version 4
 +Key: vno 1, DES cbc mode with RSA-MD5, Version 5 - No Realm
 +Key: vno 1, DES cbc mode with RSA-MD5, Version 5 - Realm Only
 +Key: vno 1, DES cbc mode with RSA-MD5, AFS version 3
 +MKey: vno 1
 +Attributes: REQUIRES_PRE_AUTH
 +Policy: [none]
 +</sxh>
 +
 +Vamos ver como deletamos um host
 +<sxh bash>
 +
 +#Comando que deleta um host
 +kadmin:  delprinc host/kdc1.douglasqsantos.com.br
 +Are you sure you want to delete the principal "host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR"? (yes/no): yes
 +Principal "host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR" deleted.
 +Make sure that you have removed this principal from all ACLs before reusing.
 +</sxh>
 +
 +Vamos adicionar o nosso host novamente 
 +<sxh bash>
 +
 +kadmin -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR: #informe a senha do admin
 +#Agora vamos criar um host no kerberos
 +kadmin:  addprinc -randkey host/kdc1.douglasqsantos.com.br
 +WARNING: no policy specified for host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR; defaulting to no policy
 +Principal "host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR" created.
 +#Agora vamos adicionar o host ao keytab
 +kadmin:  ktadd host/kdc1.douglasqsantos.com.br
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
 +kadmin:  q
 +</sxh>
 +
 +Vamos listar a base do kerberos para verificar a exclusão
 +<sxh bash>
 +
 +kadmin:  listprincs
 +K/M@DOUGLASQSANTOS.COM.BR
 +admin@DOUGLASQSANTOS.COM.BR
 +kadmin/admin@DOUGLASQSANTOS.COM.BR
 +kadmin/changepw@DOUGLASQSANTOS.COM.BR
 +kadmin/history@DOUGLASQSANTOS.COM.BR
 +kadmin/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Agora vamos verificar como adicionamos mais um usuário na base
 +<sxh bash>
 +
 +kadmin:  addprinc douglas
 +WARNING: no policy specified for douglas@DOUGLASQSANTOS.COM.BR; defaulting to no policy
 +Enter password for principal "douglas@DOUGLASQSANTOS.COM.BR":  #informe a senha
 +Re-enter password for principal "douglas@DOUGLASQSANTOS.COM.BR": #informe a senha
 +Principal "douglas@DOUGLASQSANTOS.COM.BR" created.
 +</sxh>
 +
 +Vamos listar a base novamente para verificar a criação do novo usuário
 +<sxh bash>
 +
 +kadmin: listprincs
 +K/M@DOUGLASQSANTOS.COM.BR
 +admin@DOUGLASQSANTOS.COM.BR
 +douglas@DOUGLASQSANTOS.COM.BR
 +host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +kadmin/admin@DOUGLASQSANTOS.COM.BR
 +kadmin/changepw@DOUGLASQSANTOS.COM.BR
 +kadmin/history@DOUGLASQSANTOS.COM.BR
 +kadmin/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Vamos mudar o tempo de vida padrão de um ticket 
 +<sxh bash>
 +
 +kadmin:  modprinc -maxlife "100 day" douglas
 +Principal "douglas@DOUGLASQSANTOS.COM.BR" modified.
 +</sxh>
 +
 +Vamos vamos listar o ticket
 +<sxh bash>
 +
 +kadmin:  getprinc douglas
 +Principal: douglas@DOUGLASQSANTOS.COM.BR
 +Expiration date: [never]
 +Last password change: Wed Sep 28 11:57:30 BRT 2011
 +Password expiration date: [none]
 +Maximum ticket life: 100 days 00:00:00
 +Maximum renewable life: 90 days 00:00:00
 +Last modified: Wed Sep 28 12:00:30 BRT 2011 (admin@DOUGLASQSANTOS.COM.BR)
 +Last successful authentication: [never]
 +Last failed authentication: [never]
 +Failed password attempts: 0
 +Number of keys: 8
 +Key: vno 1, AES-256 CTS mode with 96-bit SHA-1 HMAC, no salt
 +Key: vno 1, ArcFour with HMAC/md5, no salt
 +Key: vno 1, Triple DES cbc mode with HMAC/sha1, no salt
 +Key: vno 1, DES cbc mode with CRC-32, no salt
 +Key: vno 1, DES cbc mode with RSA-MD5, Version 4
 +Key: vno 1, DES cbc mode with RSA-MD5, Version 5 - No Realm
 +Key: vno 1, DES cbc mode with RSA-MD5, Version 5 - Realm Only
 +Key: vno 1, DES cbc mode with RSA-MD5, AFS version 3
 +MKey: vno 1
 +Attributes: REQUIRES_PRE_AUTH
 +Policy: [none]
 +</sxh>
 +
 +Remover uma maquina do keytab 
 +<sxh bash>
 +
 +kadmin:  ktrem host/kdc1.douglasqsantos.com.br
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 3 removed from keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 3 removed from keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 3 removed from keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 3 removed from keytab WRFILE:/etc/krb5.keytab.
 +</sxh>
 +
 +Agora adicione ele novamente no keytab
 +<sxh bash>
 +
 +#Agora vamos adicionar o host ao keytab
 +kadmin:  ktadd host/kdc1.douglasqsantos.com.br
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc1.douglasqsantos.com.br with kvno 2, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
 +</sxh>
 +
 +Agora vamos testar o kerberos com ssh vamos adicionar o root no kerberos 
 +<sxh bash>
 +
 +kadmin -p admin
 +kadmin:  addprinc root
 +WARNING: no policy specified for root@DOUGLASQSANTOS.COM.BR; defaulting to no policy
 +Enter password for principal "root@DOUGLASQSANTOS.COM.BR":
 +Re-enter password for principal "root@DOUGLASQSANTOS.COM.BR":
 +Principal "root@DOUGLASQSANTOS.COM.BR" created.
 +kadmin:
 +</sxh>
 +
 +**OBS:** Para utilizar o ssh o cliente tem que estar cadastrado tanto no domínio kerberos quanto na maquina Linux para castrar um cliente na maquina Linux podemos utilizar o comando useradd -m usuario e setar a senha dele com o comando passwd usuario, porém a senha utilizada vai ser a do kerberos para inicializar o ticket.
 +
 +Vamos acertar o ssh 
 +<sxh apache>
 +
 +vim /etc/ssh/sshd_config
 +[...]
 +#A opção abaixo deve estar habilitada para que a troca de senhas via ssh
 +# ocorra adequadamente.
 +ChallengeResponseAuthentication yes
 +# Opções para autenticação via Kerberos:
 +KerberosAuthentication yes
 +KerberosOrLocalPasswd yes
 +KerberosTicketCleanup yes
 +# Opções para aunteticação via GSSAPI:
 +GSSAPIAuthentication yes
 +GSSAPICleanupCredentials yes
 +</sxh>
 +
 +Vamos reiniciar o ssh
 +<sxh bash>
 +
 +/etc/init.d/ssh restart
 +</sxh>
 +
 +Vamos acertar o cliente
 +<sxh apache>
 +
 +vim /etc/ssh/ssh_config
 +[...]
 +StrictHostKeyChecking no
 +GSSAPIAuthentication yes
 +GSSAPIDelegateCredentials yes
 +</sxh>
 +
 +Agora temos que iniciar o ticket do root 
 +<sxh bash>
 +
 +kinit root
 +Password for root@DOUGLASQSANTOS.COM.BR: #informe a senha setada no kerberos
 +</sxh>
 +
 +Vamos vamos ver se temos o ticket 
 +
 +<sxh bash>
 +
 +klist
 +Ticket cache: FILE:/tmp/krb5cc_0
 +Default principal: root@DOUGLASQSANTOS.COM.BR
 +
 +Valid starting     Expires            Service principal
 +10/10/11 12:08:29  10/11/11 12:08:28  krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Agora vamos logar note que temos que informar o nome da maquina que esta cadastrada no kerberos que é kdc1.douglasqsantos.com.br 
 +
 +<sxh bash>
 +
 +ssh kdc1.douglasqsantos.com.br
 +Warning: Permanently added 'kdc1.douglasqsantos.com.br,10.0.0.25' (RSA) to the list of known hosts.
 +Linux kdc1 2.6.32-5-amd64 #1 SMP Mon Oct 3 03:59:20 UTC 2011 x86_64
 +
 +The programs included with the Debian GNU/Linux system are free software;
 +the exact distribution terms for each program are described in the
 +individual files in /usr/share/doc/*/copyright.
 +
 +Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 +permitted by applicable law.
 +Last login: Mon Oct 10 11:23:05 2011 from 10.0.0.20
 +[12:09:20] root@kdc1 [~] # 
 +</sxh>
 +
 +Vamos listar o nosso ticket
 +<sxh bash>
 +
 +klist
 +Ticket cache: FILE:/tmp/krb5cc_0_LuZDtg1890
 +Default principal: root@DOUGLASQSANTOS.COM.BR
 +
 +Valid starting     Expires            Service principal
 +10/10/11 12:09:20  10/11/11 12:08:28  krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Como pode ser notado não foi preciso informar a senha pois o ssh foi validado com o ticket do kerberos, então para logar em outros clientes que estão no domínio vamos utilizar o mesmo ticket que foi criado com o kinit não precisando informar a senha novamente até que o prazo de validade do ticket acabe.
 +
 +
 +**Agora vamos a configuração de um cliente para o domínio kerberos**
 +
 +Desabilitando o ipv6
 +<sxh bash>
 +
 +echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
 +</sxh>
 +
 +Acertando o nome da maquina
 +<sxh bash>
 +
 +vim /etc/hostname
 +cliente
 +</sxh>
 +
 +Vamos acertar o /etc/hosts
 +<sxh bash>
 +
 +vim /etc/hosts
 +127.0.0.1       localhost
 +10.0.0.25       kdc1.douglasqsantos.com.br kdc1
 +10.0.0.26       kdc2.douglasqsantos.com.br kdc2
 +10.0.0.27       cliente.douglasqsantos.com.br cliente
 +</sxh>
 +
 +Reiniciar o cliente
 +<sxh bash>
 +
 +reboot
 +</sxh>
 +
 +Agora vamos instalar alguns pacotes
 +<sxh bash>
 +
 +aptitude update && aptitude dist-upgrade -y && aptitude install ssh ntp ntpdate xinetd nmap -y
 +</sxh>
 +
 +Agora vamos instalar os pacotes para o cliente Kerberos 
 +<sxh bash>
 +
 +apt-get install krb5-{config,user} libpam-krb5 -y
 +</sxh>
 +
 +Responder da seguinte forma 
 +  - DOUGLASQSANTOS.COM.BR
 +  - kdc1.douglasqsantos.com.br kdc2.douglasqsantos.com.br
 +  - kdc1.douglasqsantos.com.br
 +
 +
 +Agora ao arquivo de configuração krb5.conf
 +
 +Vamos fazer backup do arquivo
 +<sxh bash>
 +
 +cp /etc/krb5.conf{,.bkp}
 +</sxh>
 +
 +Agora vamos acertar o arquivo deixe ele como abaixo
 +<sxh bash>
 +
 +vim /etc/krb5.conf
 +[libdefaults]
 +        default_realm = DOUGLASQSANTOS.COM.BR
 +        forwardable = true
 +        proxiable = true
 +
 +[realms]
 +        DOUGLASQSANTOS.COM.BR = {
 +                kdc = kdc1.douglasqsantos.com.br
 +                kdc = kdc2.douglasqsantos.com.br
 +                admin_server = kdc1.douglasqsantos.com.br
 +        }
 +
 +[domain_realm]
 +        .douglasqsantos.com.br = DOUGLASQSANTOS.COM.BR
 +        douglasqsantos.com.br = DOUGLASQSANTOS.COM.BR
 +
 +[logging]
 +        kdc = FILE:/var/log/krb5/kdc.log
 +        admin_server = FILE:/var/log/krb5/kadmin.log
 +        default = FILE:/var/log/krb5/klib.log
 +</sxh>
 +
 +Vamos criar o diretório para armazenar os logs 
 +<sxh bash>
 +
 +mkdir /var/log/krb5
 +</sxh>
 +
 +Agora vamos configurar o logrotate para o kerberos
 +<sxh bash>
 +
 +vim /etc/logrotate.d/krb5
 +/var/log/krb5/kadmin.log /var/log/krb5/kdc.log /var/log/krb5/klib.log {
 +        daily
 +        missingok
 +        rotate 7
 +        compress
 +        delaycompress
 +        notifempty
 +}
 +</sxh>
 +
 +Agora vamos cadastrar a maquina cliente no servidor kerberos. 
 +
 +No servidor kerberos
 +
 +<sxh bash>
 +
 +kadmin -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR: #Senha admin
 +kadmin:  addprinc -randkey host/cliente.douglasqsantos.com.br
 +WARNING: no policy specified for host/cliente.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR; defaulting to no policy
 +Principal "host/cliente.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR" created.
 +kadmin:  ktadd host/cliente.douglasqsantos.com.br
 +Entry for principal host/cliente.douglasqsantos.com.br with kvno 2, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/cliente.douglasqsantos.com.br with kvno 2, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/cliente.douglasqsantos.com.br with kvno 2, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/cliente.douglasqsantos.com.br with kvno 2, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
 +kadmin:  q
 +</sxh>
 +
 +Agora no cliente vamos adicionar a maquina no keytab
 +<sxh bash>
 +
 +kadmin -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR: 
 +kadmin:  ktadd host/cliente.douglasqsantos.com.br
 +Entry for principal host/cliente.douglasqsantos.com.br with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/cliente.douglasqsantos.com.br with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/cliente.douglasqsantos.com.br with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/cliente.douglasqsantos.com.br with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
 +kadmin:  q
 +</sxh>
 +
 +Vamos listar as maquinas que estão no keytab do cliente
 +<sxh bash>
 +
 +klist -ke
 +Keytab name: WRFILE:/etc/krb5.keytab
 +KVNO Principal
 +---- --------------------------------------------------------------------------
 +   3 host/cliente.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR (AES-256 CTS mode with 96-bit SHA-1 HMAC) 
 +   3 host/cliente.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR (ArcFour with HMAC/md5) 
 +   3 host/cliente.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR (Triple DES cbc mode with HMAC/sha1) 
 +   3 host/cliente.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR (DES cbc mode with CRC-32) 
 +</sxh>
 +
 +Vamos acertar o ssh 
 +<sxh apache>
 +
 +vim /etc/ssh/sshd_config
 +[...]
 +#A opção abaixo deve estar habilitada para que a troca de senhas via ssh
 +# ocorra adequadamente.
 +ChallengeResponseAuthentication yes
 +# Opções para autenticação via Kerberos:
 +KerberosAuthentication yes
 +KerberosOrLocalPasswd yes
 +KerberosTicketCleanup yes
 +# Opções para aunteticação via GSSAPI:
 +GSSAPIAuthentication yes
 +GSSAPICleanupCredentials yes
 +</sxh>
 +
 +Vamos reiniciar o ssh
 +<sxh bash>
 +
 +/etc/init.d/ssh restart
 +</sxh>
 +
 +Vamos acertar o cliente
 +<sxh apache>
 +
 +vim /etc/ssh/ssh_config
 +[...]
 +StrictHostKeyChecking no
 +GSSAPIAuthentication yes
 +GSSAPIDelegateCredentials yes
 +</sxh>
 +
 +Vamos testar agora
 +
 +Vamos criar um ticket para o root na maquina cliente
 +<sxh bash>
 +
 +kinit root
 +Password for root@DOUGLASQSANTOS.COM.BR: #senha do root do kerberos
 +</sxh>
 +
 +Vamos listar o nosso ticket
 +<sxh bash>
 +
 +klist 
 +Ticket cache: FILE:/tmp/krb5cc_0
 +Default principal: root@DOUGLASQSANTOS.COM.BR
 +
 +Valid starting     Expires            Service principal
 +11/07/11 16:40:46  11/08/11 16:40:44  krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Agora vamos conectar via ssh no servidor, no cliente então
 +<sxh bash>
 +
 +ssh kdc1.douglasqsantos.com.br
 +Warning: Permanently added 'kdc1.douglasqsantos.com.br,10.0.0.25' (RSA) to the list of known hosts.
 +Linux kdc1 2.6.32-5-amd64 #1 SMP Thu Nov 3 03:41:26 UTC 2011 x86_64
 +
 +The programs included with the Debian GNU/Linux system are free software;
 +the exact distribution terms for each program are described in the
 +individual files in /usr/share/doc/*/copyright.
 +
 +Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 +permitted by applicable law.
 +Last login: Mon Nov  7 16:26:27 2011 from kdc1.douglasqsantos.com.br
 +[16:41:27] root@kdc1 [~] # 
 +</sxh>
 +
 +Como pode ser notado conexão do cliente para o servidor esta ok
 +
 +Agora vamos testar a conexão do servidor para o cliente
 +
 +<sxh bash>
 +
 +ssh cliente.douglasqsantos.com.br
 +Warning: Permanently added 'cliente.douglasqsantos.com.br,10.0.0.27' (RSA) to the list of known hosts.
 +Linux cliente 2.6.32-5-amd64 #1 SMP Thu Nov 3 03:41:26 UTC 2011 x86_64
 +
 +The programs included with the Debian GNU/Linux system are free software;
 +the exact distribution terms for each program are described in the
 +individual files in /usr/share/doc/*/copyright.
 +
 +Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 +permitted by applicable law.
 +Last login: Mon Nov  7 16:31:46 2011 from 10.0.0.20
 +[16:42:39] root@cliente [~] # 
 +</sxh>
 +
 +Conexão ok do servidor para o cliente também
 +
 +**OBS:** Por definições da biblioteca de autenticação pam_krb5 o uid minimo para a conexão utilizando Kerberos é o 1000 ou seja usuários comuns cadastrados manualmente, pois os usuário de serviço do sistema tem o uid menor que 1000, pois caso tenhamos alguma pane na rede ficariamos sem conseguir autenticação caso todos os usuários fossem autenticados no Kerberos. 
 +
 +Agora vamos fazer mais um teste, vamos cadastrar um novo usuário no Linux e no Kerberos
 +
 +Tem que cadastrar o usuário tanto no Linux do servidor quanto do cliente
 +<sxh bash>
 +
 +useradd -m -s /bin/bash douglas
 +</sxh>
 +
 +Agora vamos setar a senha para o novo usuário no kerberos
 +<sxh bash>
 +
 +kadmin -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR:
 +kadmin:  addprinc douglas
 +WARNING: no policy specified for douglas@DOUGLASQSANTOS.COM.BR; defaulting to no policy
 +Enter password for principal "douglas@DOUGLASQSANTOS.COM.BR":
 +Re-enter password for principal "douglas@DOUGLASQSANTOS.COM.BR":
 +Principal "douglas@DOUGLASQSANTOS.COM.BR" created.
 +kadmin:  q
 +</sxh>
 +
 +Agora no cliente vamos efetuar uma conexão via ssh para o servidor sem criar um ticket antes
 +
 +Vamos destruir os tickets ativos caso tenhamos algum
 +<sxh bash>
 +
 +kdestroy
 +</sxh>
 +
 +Vamos verificar agora
 +<sxh bash>
 +
 +klist
 +klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)
 +</sxh>
 +
 +No servidor vamos fazer o mesmo procedimento 
 +<sxh bash>
 +
 +kdestroy
 +</sxh>
 +
 +Vamos verificar
 +<sxh bash>
 +
 +klist
 +klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)
 +</sxh>
 +
 +Agora no cliente vamos efetuar um acesso via ssh para o servidor kerberos
 +<sxh bash>
 +
 +ssh kdc1.douglasqsantos.com.br -l douglas
 +Password: 
 +Linux kdc1 2.6.32-5-amd64 #1 SMP Thu Nov 3 03:41:26 UTC 2011 x86_64
 +
 +The programs included with the Debian GNU/Linux system are free software;
 +the exact distribution terms for each program are described in the
 +individual files in /usr/share/doc/*/copyright.
 +
 +Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 +permitted by applicable law.
 +You have new mail.
 +douglas@kdc1:~$ 
 +</sxh>
 +
 +Agora vamos listar os tickets
 +<sxh bash>
 +
 +klist 
 +Ticket cache: FILE:/tmp/krb5cc_1000_NI1970
 +Default principal: douglas@DOUGLASQSANTOS.COM.BR
 +
 +Valid starting     Expires            Service principal
 +11/07/11 16:52:42  11/08/11 16:52:42  krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Vamos verificar agora no servidor como que foi efetuada a conexão
 +<sxh bash>
 +
 +tail -f /var/log/auth.log 
 +Nov  7 16:52:01 kdc1 sshd[1941]: pam_krb5(sshd:auth): user douglas authenticated as douglas@DOUGLASQSANTOS.COM.BR
 +Nov  7 16:52:01 kdc1 sshd[1939]: Accepted keyboard-interactive/pam for douglas from 10.0.0.27 port 37507 ssh2
 +Nov  7 16:52:01 kdc1 sshd[1939]: pam_unix(sshd:session): session opened for user douglas by (uid=0)
 +Nov  7 16:52:24 kdc1 sshd[1943]: Received disconnect from 10.0.0.27: 11: disconnected by user
 +Nov  7 16:52:24 kdc1 sshd[1939]: pam_unix(sshd:session): session closed for user douglas
 +Nov  7 16:52:42 kdc1 sshd[1972]: pam_krb5(sshd:auth): user douglas authenticated as douglas@DOUGLASQSANTOS.COM.BR
 +Nov  7 16:52:42 kdc1 sshd[1970]: Accepted keyboard-interactive/pam for douglas from 10.0.0.27 port 37508 ssh2
 +Nov  7 16:52:42 kdc1 sshd[1970]: pam_unix(sshd:session): session opened for user douglas by (uid=0)
 +Nov  7 16:53:09 kdc1 sshd[1973]: Received disconnect from 10.0.0.27: 11: disconnected by user
 +Nov  7 16:53:09 kdc1 sshd[1970]: pam_unix(sshd:session): session closed for user douglas
 +</sxh>
 +
 +Como o uid do usuário douglas é maior que 1000 foi utilizado o kerberos para a autentição, nós já tinhamos cadastrado o usuário tanto no sistema como no kerberos o login foi efetuado corretamente
 +
 +Agora vamos a configuração do servidor slave 
 +
 +Vamos instalar alguns pacotes necessários 
 +<sxh bash>
 +
 +apt-get install ssh ntp ntpdate xinetd nmap -y
 +</sxh>
 +
 +Agora vamos ver se estamos conseguindo vizualizar o servidor master 
 +<sxh bash>
 +
 +nmap -sT -p T:749,754 kdc1.douglasqsantos.com.br
 +
 +Starting Nmap 5.00 ( http://nmap.org ) at 2011-11-07 16:55 BRST
 +Interesting ports on kdc1.douglasqsantos.com.br (10.0.0.25):
 +PORT    STATE SERVICE
 +749/tcp open  kerberos-adm
 +754/tcp open  krb_prop
 +MAC Address: 08:00:27:C5:C8:32 (Cadmus Computer Systems)
 +
 +Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds
 +</sxh>
 +
 +
 +Agora vamos instalar o pacote para a configuração do cliente  
 +<sxh bash>
 +
 +apt-get install krb5-user -y
 +#Responda da seguinte forma
 +1) DOUGLASQSANTOS.COM.BR
 +2) kdc1.douglasqsantos.com.br kdc2.douglasqsantos.com.br
 +3) kdc1.douglasqsantos.com.br
 +</sxh>
 +
 +Vamos agora acertar o krb5 
 +<sxh bash>
 +
 +vim /etc/krb5.conf
 +[libdefaults]
 +        default_realm = DOUGLASQSANTOS.COM.BR
 +        forwardable = true
 +        proxiable = true
 +
 +[realms]
 +        DOUGLASQSANTOS.COM.BR = {
 +                kdc = kdc1.douglasqsantos.com.br
 +                kdc = kdc2.douglasqsantos.com.br
 +                admin_server = kdc1.douglasqsantos.com.br
 +        }
 +
 +[domain_realm]
 +        .douglasqsantos.com.br = DOUGLASQSANTOS.COM.BR
 +        douglasqsantos.com.br = DOUGLASQSANTOS.COM.BR
 +
 +[logging]
 +        kdc = FILE:/var/log/krb5/kdc.log
 +        admin_server = FILE:/var/log/krb5/kadmin.log
 +        default = FILE:/var/log/krb5/klib.log
 +
 +</sxh>
 +
 +Agora vamos acertar o diretorio de logs 
 +<sxh bash>
 +
 +mkdir /var/log/krb5
 +</sxh>
 +
 +Agora vamos acertar o logrotate 
 +<sxh bash>
 +
 +vim /etc/logrotate.d/krb5
 +/var/log/krb5/kadmin.log /var/log/krb5/kdc.log /var/log/krb5/klib.log {
 +        daily
 +        missingok
 +        rotate 7
 +        compress
 +        delaycompress
 +        notifempty
 +}
 +</sxh>
 +
 +Agora vamos cadastrar o nosso host na base kerberos no servidor master 
 +<sxh bash>
 +
 +kadmin -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR:
 +kadmin:  addprinc -randkey host/kdc2.douglasqsantos.com.br
 +WARNING: no policy specified for host/kdc2.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR; defaulting to no policy
 +Principal "host/kdc2.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR" created.
 +kadmin:  ktadd host/kdc2.douglasqsantos.com.br
 +Entry for principal host/kdc2.douglasqsantos.com.br with kvno 2, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc2.douglasqsantos.com.br with kvno 2, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc2.douglasqsantos.com.br with kvno 2, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc2.douglasqsantos.com.br with kvno 2, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
 +kadmin:  q
 +</sxh>
 +
 +Agora adicionar o host kdc2 no keytab do servidor slave 
 +<sxh bash>
 +
 +kadmin  -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR: 
 +kadmin:  ktadd host/kdc2.douglasqsantos.com.br
 +Entry for principal host/kdc2.douglasqsantos.com.br with kvno 3, encryption type AES-256 CTS mode with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc2.douglasqsantos.com.br with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc2.douglasqsantos.com.br with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab.
 +Entry for principal host/kdc2.douglasqsantos.com.br with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
 +kadmin:  q
 +</sxh>
 +
 +Podemos listar as chaves em nosso keytab no servidor master com o seguinte comando 
 +<sxh bash>
 +
 +klist -ke
 +Keytab name: WRFILE:/etc/krb5.keytab
 +KVNO Principal
 +---- --------------------------------------------------------------------------
 +   3 host/kdc2.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR (AES-256 CTS mode with 96-bit SHA-1 HMAC) 
 +   3 host/kdc2.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR (ArcFour with HMAC/md5) 
 +   3 host/kdc2.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR (Triple DES cbc mode with HMAC/sha1) 
 +   3 host/kdc2.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR (DES cbc mode with CRC-32) 
 +</sxh>
 +
 +Agora vamos instalar o kdc no servidor slave 
 +<sxh bash>
 +
 +apt-get install krb5-kdc -y
 +</sxh>
 +
 +Agora vamos acertar o xinetd para podermos propagar a base 
 +<sxh bash>
 +
 +vim /etc/xinetd.d/krb_prop
 +service krb_prop
 +{
 +        disable         = no
 +        socket_type     = stream
 +        protocol        = tcp
 +        user            = root
 +        wait            = no
 +        server          = /usr/sbin/kpropd
 +}
 +</sxh>
 +
 +Agora vamos reiniciar o serviço do kerberos 
 +<sxh bash>
 +
 +/etc/init.d/xinetd restart
 +</sxh>
 +
 +Agora vamos ver se o serviço esta respondendo 
 +<sxh bash>
 +
 +nmap -sT -p T:754 localhost
 +
 +Starting Nmap 5.00 ( http://nmap.org ) at 2011-11-07 17:05 BRST
 +Interesting ports on localhost (127.0.0.1):
 +PORT    STATE SERVICE
 +754/tcp open  krb_prop
 +
 +Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
 +</sxh>
 +
 +Agora temos que acertar as acls nos dois servidores kerberos 
 +<sxh bash>
 +
 +vim /etc/krb5kdc/kpropd.acl
 +host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +host/kdc2.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +</sxh>
 +
 +Agora vamos acertar a propagação da base primeiro vamos acertar o tempo de vida dos tickets 
 +<sxh bash>
 +
 +vim /etc/krb5kdc/kdc.conf
 +[...]
 +max_life = 1d 0h 0m 0s
 +max_renewable_life = 90d 0h 0m 0s
 +</sxh>
 +
 +Agora no servidor kdc1 vamos fazer um dump da base
 +<sxh bash>
 +
 +kdb5_util dump /var/lib/krb5kdc/slave_datatrans
 +</sxh>
 +
 +Agora no servidor master vamos propagar a base 
 +<sxh bash>
 +
 +kprop kdc2.douglasqsantos.com.br
 +Database propagation to kdc2.douglasqsantos.com.br: SUCCEEDED
 +</sxh>
 +
 +Agora vamos voltar ao servidor kdc2 e vamos criar o stash
 +<sxh bash>
 +
 +kdb5_util stash
 +kdb5_util: Can not fetch master key (error: No such file or directory). while reading master key
 +kdb5_util: Warning: proceeding without master key
 +Enter KDC database master key: #senha do master
 +</sxh>
 +
 +Agora vamos iniciar o servidor kerberos kdc no slave 
 +<sxh bash>
 +
 +/etc/init.d/krb5-kdc start
 +</sxh>
 +
 +Agora vamos ver se as portas estão escutando 
 +<sxh bash>
 +
 +nmap -sU -sT -p U:88,464,750,T:464,749,754 localhost
 +
 +Starting Nmap 5.00 ( http://nmap.org ) at 2011-11-07 17:11 BRST
 +Interesting ports on localhost (127.0.0.1):
 +PORT    STATE         SERVICE
 +464/tcp closed        kpasswd5
 +749/tcp closed        kerberos-adm
 +754/tcp open          krb_prop
 +88/udp  open|filtered kerberos-sec
 +464/udp closed        kpasswd5
 +750/udp open|filtered kerberos
 +
 +Nmap done: 1 IP address (1 host up) scanned in 1.24 seconds
 +</sxh>
 +
 +Como pode ser notado o kpasswd5 e o kerberos-admin não estão habilitados nese servidor, por que o kerberos admin não esta instalado nesse servidor então a base do kerberos no servidor slave é somente leitura 
 +
 +Agora vamos criar um arquivo de replicação da base no servidor master 
 +
 +<sxh bash>
 +
 +vim /etc/cron.hourly/krb5-prop
 +#!/bin/sh
 +
 +slave="kdc2.douglasqsantos.com.br"
 +
 +/usr/sbin/kdb5_util dump /var/lib/krb5kdc/slave_datatrans
 +erro=$?
 +
 +if [ $erro -ne 0 ]; then
 +
 +        echo "O dump da base Kerberos falhou"
 +        echo "com o codigo de erro: $error."
 +        exit 1
 +else
 +        echo "O dump da base Kerberos foi efetuado com exito"
 +fi
 +
 +for kdc in $slave; do
 +
 +        /usr/sbin/kprop $kdc > /dev/null
 +        erro=$?
 +
 +        if [ $erro -ne 0 ]; then
 +
 +                echo "Propagando a base para o host: $kdc"
 +                echo "Falhou codigo de erro: $error."
 +        else
 +                echo "A propagação da base para o host: $kdc"
 +                echo "foi efetuada com sucesso"
 +        fi
 +
 +done
 +
 +exit 0
 +</sxh>
 +
 +Agora vamos acertar as permissões do nosso script
 +<sxh bash>
 +
 +chmod 755 /etc/cron.hourly/krb5-prop
 +</sxh>
 +
 +Vamos testar a replicação 
 +<sxh bash>
 +
 +/etc/cron.hourly/krb5-prop
 +O dump da base Kerberos foi efetuado com exito
 +A propagação da base para o host: kdc2.douglasqsantos.com.br
 +foi efetuada com sucesso
 +</sxh>
 +
 +Caso haja necessidade de habilitar o kerberos admin no servidor slave deve ser efetuado da seguinte forma 
 +
 +No servidor master vamos parar o serviço  
 +<sxh bash>
 +
 +/etc/init.d/krb5-admin-server stop
 +</sxh>
 +
 +Agora vamos desabilitar a proparação da base para o slave 
 +<sxh bash>
 +
 +mv /etc/cron.hourly/krb5-prop ~/
 +</sxh>
 +
 +Vamos executar a última replicação 
 +<sxh bash>
 +
 + ~/krb5-prop
 +</sxh>
 +
 +Agora vamos instalar o kerberos admin no servidor slave 
 +<sxh bash>
 +
 +apt-get install krb5-admin-server -y
 +</sxh>
 +
 +Agora vamos vamos acertar as acls no slave 
 +<sxh bash>
 +
 +vim /etc/krb5kdc/kadm5.acl
 +[...]
 +*/admin *
 +admin *
 +</sxh>
 +
 +Agora vamos criar um arquivo de replicação da base no servidor master 
 +
 +<sxh bash>
 +
 +vim /etc/cron.hourly/krb5-prop
 +#!/bin/sh
 +
 +slave="kdc1.douglasqsantos.com.br"
 +
 +/usr/sbin/kdb5_util dump /var/lib/krb5kdc/slave_datatrans
 +erro=$?
 +
 +if [ $erro -ne 0 ]; then
 +
 +        echo "O dump da base Kerberos falhou"
 +        echo "com o codigo de erro: $error."
 +        exit 1
 +else
 +        echo "O dump da base Kerberos foi efetuado com exito"
 +fi
 +
 +for kdc in $slave; do
 +
 +        /usr/sbin/kprop $kdc > /dev/null
 +        erro=$?
 +
 +        if [ $erro -ne 0 ]; then
 +
 +                echo "Propagando a base para o host: $kdc"
 +                echo "Falhou codigo de erro: $error."
 +        else
 +                echo "A propagação da base para o host: $kdc"
 +                echo "foi efetuada com sucesso"
 +        fi
 +
 +done
 +
 +exit 0
 +</sxh>
 +
 +Agora vamos acertar as permissões do nosso script
 +<sxh bash>
 +
 +chmod 755 /etc/cron.hourly/krb5-prop
 +</sxh>
 +
 +Vamos testar a propagação 
 +<sxh bash>
 +
 +/etc/cron.hourly/krb5-prop 
 +O dump da base Kerberos foi efetuado com exito
 +A propagação da base para o host: kdc1.douglasqsantos.com.br
 +foi efetuada com sucesso
 +</sxh>
 +
 +Agora podemos mudar o /etc/krb5.conf dos clientes como abaixo 
 +<sxh bash>
 +
 +vim /etc/krb5.conf
 +[libdefaults]
 +        default_realm = DOUGLASQSANTOS.COM.BR
 +        forwardable = true
 +        proxiable = true
 +
 +[realms]
 +        DOUGLASQSANTOS.COM.BR = {
 +                kdc = kdc1.douglasqsantos.com.br
 +                kdc = kdc2.douglasqsantos.com.br
 +                admin_server = kdc2.douglasqsantos.com.br
 +        }
 +
 +[domain_realm]
 +        .douglasqsantos.com.br = DOUGLASQSANTOS.COM.BR
 +        douglasqsantos.com.br = DOUGLASQSANTOS.COM.BR
 +
 +[logging]
 +        kdc = FILE:/var/log/krb5/kdc.log
 +        admin_server = FILE:/var/log/krb5/kadmin.log
 +        default = FILE:/var/log/krb5/klib.log
 +</sxh>
 +
 +Agora vamos reiniciar os serviços 
 +<sxh bash>
 +
 +/etc/init.d/krb5-admin-server restart
 +/etc/init.d/krb5-kdc restart
 +</sxh>
 +
 +
 +Vamos fazer um teste de conexão com o novo server-admin 
 +<sxh bash>
 +
 +kadmin -p admin
 +Authenticating as principal admin with password.
 +Password for admin@DOUGLASQSANTOS.COM.BR:
 +kadmin:  listprincs
 +K/M@DOUGLASQSANTOS.COM.BR
 +admin@DOUGLASQSANTOS.COM.BR
 +douglas@DOUGLASQSANTOS.COM.BR
 +host/cliente.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +host/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +host/kdc2.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +kadmin/admin@DOUGLASQSANTOS.COM.BR
 +kadmin/changepw@DOUGLASQSANTOS.COM.BR
 +kadmin/history@DOUGLASQSANTOS.COM.BR
 +kadmin/kdc1.douglasqsantos.com.br@DOUGLASQSANTOS.COM.BR
 +krbtgt/DOUGLASQSANTOS.COM.BR@DOUGLASQSANTOS.COM.BR
 +root@DOUGLASQSANTOS.COM.BR
 +kadmin: q
 +</sxh>
 +
 +
 +====== Referências ======
 +
 +  - http://www.rjsystems.nl/en/2100-d6-kerberos-client.php
 +  - http://www.vivaolinux.com.br/artigo/O-Kerberos-nao-e-um-cachorro-de-3-cabecas?pagina=1
 +  - http://web.mit.edu/kerberos/
 +  - http://web.mit.edu/kerberos/www/krb5-1.4/krb5-1.4.1/doc/krb5-install/index.html
 +  - http://web.mit.edu/kerberos/www/krb5-1.4/krb5-1.4.1/doc/krb5-user/index.html
 +  - http://web.mit.edu/kerberos/www/krb5-1.4/krb5-1.4.1/doc/krb5-admin/index.html
 +  - http://conectiva.com/doc/livros/online/9.0/servidor/cap-seguranca.html#AEN9065
 +  - http://pt.wikipedia.org/wiki/Kerberos
 +  - http://en.wikipedia.org/wiki/Kerberos_%28protocol%29
 +  - http://learn-networking.com/network-security/how-kerberos-authentication-works
 +  - http://datatracker.ietf.org/wg/krb-wg/charter/
 +  - http://www.kerberos.org/
 +  - http://www.eyrie.org/~eagle/software/pam-krb5/pam-krb5.html
 +  - http://www.kerberos.org/software/adminkerberos.pdf
 +  - http://www.kerberos.org/software/tutorial.html
Print/export
QR Code
QR Code servidor_kerberos_master_slave_debian_squeeze_pt_br (generated for current page)