Pedro Sodre Postado Outubro 29, 2014 Compartilhar Postado Outubro 29, 2014 Aumente a segurança do seu servidor com o Two-Factor Authentication 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 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: [email protected] Username: root Cellphone: (+55) 319xxxyyyy Email: [email protected] 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 Site oficial: https://code.google.com/p/google-authenticator/ 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/[email protected]%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. 1 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
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.