Ir para conteúdo
  • Cadastre-se

Aumente a segurança do seu servidor com o Two-Factor Authentication


Posts Recomendados

Aumente a segurança do seu servidor com o Two-Factor Authentication

 

proxy-1.png

 

 
1. O que é "Two-Factor Authentication"?
 
O Two-Factor Authentication ou Autenticação de 2 fatores é um processo que envolve duas etapas, sequentes e dependentes entre si para verificar a identidade de uma pessoa ou entidade que está tentando acessar serviços relacionados a tecnologia da informação no geral. 
 
Um excelente exemplo é o Facebook. O usuário que desejar pode ativar o Two-Factor gratuitamente em seu Facebook, e, ao ativá-lo, será solicitado um código após sua senha para concluir o login. O código pode ser obtido via aplicativo de celular (devidamente cadastrado) ou SMS.
 
Algumas aplicações aceitam ainda a utilização de uma autenticação de 2 fatores "terceirizada", como utilizar o Google Authenticator em sua conta da Amazon EC2, por exemplo.
 
 
2. Onde utilizar o Two-Factor Authentication?
 
A autenticação de 2 fatores pode ser utilizada para vários propositos e em vários "locais", desde uma rede social e um serviço de armazenamento na nuvem até em senha de servidores e contas bancárias. Abaixo temos uma pequena lista de serviços o qual já é possível utilizar com o two-factor, seja ele tercerizado ou não:
  • Serviços da Google no geral (Youtube, Gmail, Google Plus, dentre outros)
  • Amazon Web Services
  • Facebook
  • Paypal
  • Twitter
  • Wordpress
  • Dropbox
  • eBay
  • Battle.net
  • Apple ID
  • E várias outras..
 
3. Porque utilizar a autenticação de 2 fatores em um servidor?
 
Atualmente vivemos em um cenário em que a segurança é essencial para qualquer aplicação voltada para a Internet, seja ela um site ou um sistema extremamente restrito. Mesmo que utilizar chaves SSH criptografadas para o acesso seja relativamente seguro - considerando que a chave é passível de quebra, mesmo que a estimativa de tempo para quebrar uma criptografia seja alta - investir em segurança nunca é demais. 
 
A autenticação de 2 fatores unida a outras dicas de segurança - como alterar frequentemente sua senha/chave SSH e utilizar acesso liberado apenas para IPs permitidos - torna seu servidor praticamente impossível de ser invadido via SSH.
 
4. Authy: uma opção de Two-Factor Authentication para seu servidor Linux
 
authy.png
 
Site oficial: https://www.authy.com/
 
O Authy é uma excelente solução para integrar a autenticação de 2 fatores a uma aplicação ou servidor. Disponível gratuitamente para até 5 aplicações, o Authy conta com uma interface fácil e agradável, além de uma ampla base de conhecimento e painel de controle avançado com diversas opções configuráveis. Para instalar o Authy em seu servidor basta seguir o passo-a-passo abaixo. 
 
Vale lembrar que é possível configurar a mesma "chave" de 2 fatores para vários servidores ou uma chave independente por servidor.
 
4.1. Cadastre-se no Authy em https://www.authy.com/signup.
 
4.2. Acesse seu painel em https://dashboard.authy.com/signin.
 
4.3. Dentro do dashboard, no menu Applications, clique em New Application e insira o nome da aplicação, indentificando onde será utilizado a autenticação, por exemplo: Infra-01
 
4.4. Faça o Download do Authy em seu servidor a partir do GitHub (https://github.com/authy/authy-ssh) com o comando abaixo:
cd /root
wget https://github.com/authy/authy-ssh/archive/master.zip
unzip master.zip
cd authy-ssh-master
 
4.5. Instale e habilite o Authy em seu servidor:
 
4.5.1. Para instalar, utilize o comando abaixo:
sudo bash authy-ssh install /usr/local/bin

Ao rodar o comando, será solicitado uma API Key, que foi gerada na etapa 4.3, ao criar a aplicação dentro do Dashboard. Abaixo o texto que será exibido solicitando a key.

Copying authy-ssh to /usr/local/bin/authy-ssh...
Setting up permissions...
Enter the Authy API key:  
Após isso, o Authy irá perguntar o que fazer quando o servidor não conseguir se conectar com a API do Authy:
Default action when api.authy.com cannot be contacted:

  1. Disable two factor authentication until api.authy.com is back
  2. Don't allow logins until api.authy.com is back

type 1 or 2 to select the option:  

Nesse caso, digite 1 para desabilitar temporariamente a autenticação de 2 fatores enquanto o servidor não conseguir se conectar com a API do Authy ou digite 2 para não aceitar login caso não haja conexão entre servidor e API.

 
Lembre-se de não remover a pasta /usr/local/bin/authy-ssh. Ela é fundamental para o funcionamento do Authy.
 
4.5.2. Após isso, habilite o Authy utilizando o comando abaixo:
sudo /usr/local/bin/authy-ssh enable `whoami`

Ao rodar o comando acima, o Authy solicitará uma série dados para efetuar o cadastro de um usuário para envio do código para acesso via SMS ou ligação telefônica. Vale lembrar que o Authy sincroniza automaticamente todas aplicações em seu aplicativo para Android e iOS.

Your country code: 55
Your cellphone: 319xxxyyyy
Your email: contato@empresa.com

    Username:   root
    Cellphone:  (+55) 319xxxyyyy
    Email:      contato@empresa.com

Do you want to enable this user? (y/n) y
User was registered
O código do país é 55. Não se esqueça de inserir o DDD para o usuário. Essa configuração lhe permite obter o código do Authy sem ter o aplicativo instalado em seu celular. 
 
4.5.3. Depois, teste se o Authy está instalado e funcionando corretamente:
authy-ssh test
O comando solicitará o código gerado pelo Authy, basta inserir o código corretamente que o Authy retornará uma mensagem de sucesso caso esteja tudo pronto. 
Authy Token (type 'sms' to request a SMS token): 7070027
Good job! You've securely logged in with Authy.
4.5.4. Por fim, reinicie seu SSH.
sudo service sshd restart
 
5. Google Authenticator: uma opção de Two-Factor Authentication para seu servidor Linux 
 
 
Semelhante ao Authy, o Google Authenticator é responsável por gerar um código, como uma segunda senha, para permitir acesso ao SSH do seu servidor.
 
Atenção: Caso você instale o Google Authenticator em um usuário normal, não será mais possível fazer login utilizando o usuário root diretamente, será necessário logar com o usuário normal e alterar para o root com o comando su.
 
Observação: É necessário ter uma conta no Google para utilizar esse serviço. O Google Authenticator é gratuito.
 
5.1. Faça download do aplicativo Google Authenticator em seu dispositivo móvel. Caso não esteja disponível para seu sistema operacional, opte pelo Authy.
 
5.2. Instale as dependências do Google Authenticator PAM module:
 
Ubuntu:
sudo apt-get install libpam-google-authenticator
 
Centos:
sudo yum install libpam-google-authenticator

Caso não tenha sucesso com o comando acima, instale-o manualmente:

yum install make gcc pam-devel
cd /tmp
wget http://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2
bunzip2 libpam-google-authenticator-1.0-source.tar.bz2
tar xf libpam-google-authenticator-1.0-source.tar
cd libpam-google-authenticator-1.0
make
make install
5.3. Habilite o Google Authenticator editando os dois arquivos abaixo:
nano /etc/pam.d/sshd
No arquivo /etc/pam.d/sshd insira na primeira linha:
auth required pam_google_authenticator.so
nano /etc/ssh/sshd_config 
No arquivo /etc/ssh/sshd_config e modique/adicione as seguintes variáveis:
ChallengeResponseAuthentication yes
UsePAM yes 

5.4. Configure o Google Authenticator:

 
Rode o comando abaixo para iniciar a configuração de um usuário.
google-authenticator 

Será necessário responder algumas perguntas com yes utilizando a letra y.

Do you want authentication tokens to be time-based? (y/n) y
Do you want me to update your "/home/USERNAME/.google_authenticator" file? (y/n) y

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@tutorial.portaldohost.com.br%3Fsecret%3DKT2KNDEYZWXPACVK
Your new secret key is: KT2KNDEYZWXPACVK
Your verification code is 156770
Your emergency scratch codes are:
  86116188
  84918716
  73014568
  93297127
  66808978
Guarde com cuidado os códigos de emergência. Serão necessarios caso precise acessar o servidor e esteja sem seu celular por perto.
 
Continue o processo de configuração:
Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

Nessa parte o Authenticator pergunta se gostaria de desabilitar múltiplos usuários para o mesmo token de autenticação. Caso queira desabilitar - para cada usuário será necessário repetir todo o passo 5.3 se desabilitado -, digite y. Caso contrário, digite n. Prossiga na configuração.

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) n
Por padrão, cada código funcionará por 30 segundos, sendo compensado em até 90 segundos. Caso tenha medo de haver algum problema de sincronização de tempo, digite y para aumentar o tempo de compensasão para 4 minutos. Caso contrário digite n. Prossiga.
If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y
Digite y para ativar uma proteção contra brute-force. 3 tentativas a cada 30 segundos serão permitidas.
 
Lembre-se de desabilitar o SELinux para que o Google Authenticator funcione.
 
Conclua a configuração reiniciando o SSH:
sudo service sshd restart
5.5. Finalize a configuração abrindo o aplicativo do Google Authenticator e inserindo sua key.
 
6. Conclusão
 
Utilizar o Two-Factor Authentication pode ser considerado como opcional como quesito de segurança, mas é extremamente útil e incrementa em muitas vezes seu poder de defesa, considerando que é uma senha secundária e dinâmica, alterada em curtos intervalos de tempo em tempo.
 
Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?