SSH e Kerberos
Post date: 31/07/2015 11:15:03
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.
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/admin@KERBEROS.COM 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 root@KERBEROS.COM: cliente # ssh root@ssh.com
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