Tutoriais‎ > ‎Servidores Linux‎ > ‎

SSH e Kerberos

postado em 31 de jul. de 2015 04:15 por Prof. Rodrigo Costa   [ 18 de ago. de 2015 07:43 atualizado‎(s)‎ ]
Neste tutorial iremos demonstrar como configurar o servidor kerberos para ser um servidor de autenticação de um provedor de serviço de terminal seguro (SSH). 

Para isto, precisamos de três maquinas virtuais. Neste tutorial, foram usadas três maquinas virtuais lubuntu 14.10 e está organizado em 5 seções.

. Configuração inicial das máquinas

Antes de começar a configurar o Kerberos, provedor de serviço e cliente, é necessário fazer algumas alterações nos arquivos de configuração de todas as máquinas para que elas sejam capazes de se comunicarem através do nome. Neste teste, cada uma das máquinas será configurada com os seguintes nomes e ips descritos na tabela a seguir.
 Máquina   /etc/hostname  ip     
 Provedor de Serviço  ssh.com 192.168.235.137 
 Kerberos kerberos.com  192.168.235.138 
 Cliente      cliente.com 192.168.235.139 

Deve-se alterar o arquivo /etc/hosts e /etc/hostname. 

kerberos $ sudo su
kerberos # echo "<NOME_DA_MAQUINA>" > /etc/hostname
kerberos # echo "127.0.0.1 <NOME_DA_MAQUINA>" >> /etc/hosts
kerberos # echo "192.168.235.137  ssh.com ssh" >> /etc/hosts
kerberos # echo "192.168.235.138  kerberos.com  kerberos" >> /etc/hosts
kerberos # echo "192.168.235.139  cliente.com cliente " >> /etc/hosts

Depois dessas alterações, a conectividade entre elas deve ser testada através de um ping.
kerberos # ping kerberos.com 
kerberos # ping cliente.com 
kerberos # ping ssh.com
OBS: Essas configurações devem ser feitas em todas as máquinas.
OBS2: Depois dessas alterações, deve-se reiniciar a máquina.

2. Configurando o Servidor Kerberos

Após a configuração inicial das máquinas, inicia-se a configuração do servidor de autenticação (Kerberos). Primeiramente, instala-se o servidor kerberos através do apt-get.
kerberos $ sudo su
kerberos # apt-get install krb5-admin-server krb5-kdc

Durante a instalação é solicitado a inserção do domínio padrão (DEFAULT REALM). Deve-se inserir as informações do seu novo domínio KERBEROS.COM, conforme mostrado a seguir.


Depois disso, deve-se configurar o arquivo /etc/krb5.conf para as configurações do KERBEROS.COM

kerberos # nano /etc/krb5.conf

O arquivo krb5.conf deve ficar semelhante ao arquivo a imagem a seguir


Após esta alteração, deve-se iniciar o servidor kerberos através do comando krb5_newrealm. 
kerberos # krb5_newrealm

Após este comando, deve-se inserir as credenciais (senhas) do usuário administrador do domínio (REALM).

Perceba que os serviços agora estão ativos e o servidor está pronto para o uso. É necessário criar os usuários para poder prover o serviço de autenticação.
kerberos # kadmin.local
Authenticating as principal root/[email protected]
kadmin.local: addprinc root
<COLOCAR A SENHA>
kadmin.local: addprinc root/admin
<COLOCAR A SENHA>
kadmin.local: q


Para finalizar a configuração do servidor deve-se também alterar a lista de controle de acesso /etc/krb5kdc/kadm.acl, descomentando sua última linha

kerberos # nano /etc/krb5kdc/kadm.acl

Pronto, o servidor já está configurado, para testá-lo usa-se o kinit, klist.

kerberos # kinit root
<INSERIR A SENHA>
kerberos # klist -l

Para adiantar a autorização da máquina ssh.com, deve-se utilizar o utilitário kadmin.local e criar as credenciais para a máquina.

kerberos # kadmin.local
kadmin.local: addprinc -randkey host/ssh.com
kadmin.local: ktadd -k /tmp/ssh.com.keytab host/ssh.com
kadmin.local: quit

kerberos # cp /tmp/ssh.com.keytab /etc/krb5.keytab

Pronto, agora temos o servidor de autenticação kerberos configurado e já criamos as credenciais da estação do provedor do serviço. Agora podemos iniciar as configurações do provedor de serviço.

3. Configurando o Provedor de Serviço

No provedor do serviço, deve-se instalar o pacote krb5-config juntamente com o servidor SSH através do comando
ssh # apt-get install krb5-config openssh-server

Similarmente ao servidor Kerberos, deve-se inserir as mesmas configurações de domínio e alterar o arquivo krb5.conf . Após a instalação, deve-se alterar as configurações do servidor ssh, editando o arquivo /etc/ssh/sshd_config

ssh # nano /etc/ssh/sshd_config

Deve-se remover os comentários nas entradas relacionadas a autenticação GSSAPI

Após salvar as alterações, deve-se reiniciar o serviço ssh no servidor
ssh # service ssh restart

Para finalizar a configuração, deve-se copiar o arquivo keytab criado no servidor Kerberos para o servidor ssh. 

kerberos # scp /tmp/ssh.com.keytab <seu_usuario>@ssh.com:~/krb5.keytab

E no servidor ssh, deve-se colocar o arquivo no diretório etc. 

ssh # chown root.root krb5.keytab
ssh # chmod 400 krb5.keytab
ssh # cp krb5.keytab /etc/krb5.keytab

4. Configurando o Cliente

Para permitir o recebimento de Tickets de autenticação do Kerberos deve-se instalar o pacote krb5-user e repetir as configurações do domínio e alterar também o arquivo krb5.conf, similarmente ao realizado nas outras máquinas.
cliente # apt-get install krb5-user

Deve-se também alterar o arquivo de configuração do cliente ssh para utilizar a autenticação GSSAPI
cliente # nano /etc/ssh_config

Altere as configurações ao final de arquivo para yes em ambas as opções da GSSAPI, conforme mostrado na figura a seguir


Para se conectar ao servidor ssh.com sem digitar a senha, basta fazer a autenticação no servidor KERBEROS.COM através do KINIT e depois disso, acessar o serviço através do ssh, conforme mostrado a seguir:
cliente # kinit root
Password for [email protected]:
cliente # ssh [email protected]

Pronto, o servidor está configurado, conforme mostrado na figura a seguir:

Para finalizar, dê o comando kdestroy e tente novamente se conectar para você perceber que o servidor irá solicitar o login e a senha.

Ainda não consegiu? Assita o vídeo a seguir disponível em meu canal do youtube.com/rodccosta

Comments