Nightz 22 Postado Maio 18, 2015 Share Postado Maio 18, 2015 Boa noite pessoal! Trago hoje um tutorial de como aumentar a segurança do seu servidor utilizando a autenticação de 2 fatores. Existem várias empresas que oferecem esse serviço, inclusive a Google, mas neste tutorial estou recomendando o Authy (que é o que uso) pela segurança, facilidade e por ser gratuito. Vamos lá? 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. 2. 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 torna seu servidor praticamente impossível de ser invadido via SSH. Authy: uma opção de Two-Factor Authentication para seu servidor Linux 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. 1. Cadastre-se no Authy em https://www.authy.com/signup. 2. Acesse seu painel em https://dashboard.authy.com/signin. 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. 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 5. Instale e habilite o Authy em seu servidor: 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. 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 (Android, iOS, etc). 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. 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. 5.4. Por fim, reinicie seu SSH. sudo service sshd restart Pronto! O Authy foi instalado e configurado com sucesso! 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. Em caso de qualquer dúvida, basta comentar no tópico Link para o comentário Compartilhar em outros sites More sharing options...
OtservME 19 Postado Maio 18, 2015 Share Postado Maio 18, 2015 Concordo, excelente dica! Dicas adicionais, fail2ban (se errar 3x = ban ip) trocar porta ssh Link para o comentário Compartilhar em outros sites More sharing options...
Nightz 22 Postado Maio 18, 2015 Autor Share Postado Maio 18, 2015 (editado) Concordo, excelente dica! Dicas adicionais, fail2ban (se errar 3x = ban ip) trocar porta ssh Eu fiz um outro tópico sobre dicas relacionadas ao SSH, onde incluí a troca da porta do SSH. Fail2ban é uma ótima dica, talvez eu escreva sobre. Mas com o Authy fica bem difícil a pessoa se conectar. Por mais que ela consiga a senha root, o código gerado pelo Two-Factor é alterado de x em x segundos, bem complicado um brute force dar certo. Editado Maio 18, 2015 por Nightz Link para o comentário Compartilhar em outros sites More sharing options...
OtservME 19 Postado Maio 19, 2015 Share Postado Maio 19, 2015 Boa rapaz! To curtindo sua ajuda pra comunidade =) Acho que é isso ai Link para o comentário Compartilhar em outros sites More sharing options...
Krono 128 Postado Maio 19, 2015 Share Postado Maio 19, 2015 Seus tutoriais, estão muito bons. Parabens e continue nos ajudando, pois isso faz muita diferença. Link para o comentário Compartilhar em outros sites More sharing options...
Nightz 22 Postado Maio 22, 2015 Autor Share Postado Maio 22, 2015 Boa rapaz! To curtindo sua ajuda pra comunidade =) Acho que é isso ai Seus tutoriais, estão muito bons. Parabens e continue nos ajudando, pois isso faz muita diferença. Obrigado pessoal Link para o comentário Compartilhar em outros sites More sharing options...
Mudrock 326 Postado Maio 22, 2015 Share Postado Maio 22, 2015 Curti muito, vou dar uma lida com tempo assim que chegar em rsrs abraçooos Link para o comentário Compartilhar em outros sites More sharing options...
Nightz 22 Postado Maio 27, 2015 Autor Share Postado Maio 27, 2015 Curti muito, vou dar uma lida com tempo assim que chegar em rsrs abraçooos Valeu! Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados