Uma boa medida para aumentar a segurança de seu VPS é deixar de acessar o SSH via login e passar a utilizar chaves privadas/públicas para se logar usando o PuTTY. Com isso é possível desabilitar o acesso via login e dessa forma ataques brute-force não funcionarão mais. Esse guia é destinado a quem pretende acessar seu VPS através de SSH a partir de um sistema Windows, e é baseado no tutorial encontrado na HowtoForge.
Atenção: prossiga apenas se tiver certeza do que está fazendo, não nos responsabilizamos por qualquer eventualidade.
1 – Baixe PuTTY e PuTTYgen
Primeiramente é preciso baixar o PuTTY e PuTTYgen para seu sistema Windows. Salve os executáveis onde preferir e eles já estarão prontos para rodar, já que são aplicações portáveis e não necessitam de instalação.
Você pode encontrar os executáveis na página de download do PuTTY, ou clicar diretamente nos links abaixo:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
2 – Crie um perfil no PuTTY para o acesso ao seu servidor
No PuTTY é possível salvar os dados de conexão ao seu servidor em perfis, para que não seja necessário digitar os mesmos dados toda vez que você for se conectar.
Abra o PuTTY, na categoria Session, preencha o campo Host name (or ip address) com o ip principal do seu servidor (no exemplo colocaremos o IP fictício 192.168.0.100) para o campo Port, coloque 22, que é o padrão para conexões SSH:
Então clique na categoria Connection e vá até a subseção Data; preencha o username com root:
Volte para Session, escolha um nome para o perfil dessa conexão, o preencha em Saved Session e clique em Save:
Agora você pode sempre se conectar ao seu servidor ao clicar em Open.
3 – Conecte-se ao seu SSH
Se for a primeira vez que você se conecta ao seu servidor, um aviso de segurança aparecerá. Como o PuTTY não sabe ainda a chave do servidor, é seguro clicar em yes.
Como o usuário root já foi preenchido no perfil, não será necessário digitá-lo no ato do login. Só a senha precisará ser digitada:
Essa é a forma comum de se logar ao seu servidor via SSH, usando login e senha. Dessa forma, se a senha for fácil e o servidor sofrer um ataque de força bruta para descobrir a senha, isso pode ser perigoso. Vamos resolver isso a partir daqui.
4 – Crie o par de chaves pública e privada
Para gerar o par de chaves pública e privada, o PuTTYgen é necessário. Abra o executável e selecione SSH-2 RSA como tipo de chave a ser gerada e preencha o campo Number of bits in a generated key com o valor 1024. Clique em Generate:
Mexa o cursor do mouse da forma mais aleatória possível dentro da área em branco da janela, para ajudar na entropia:
Após o par de chaves pública e privada ter sido gerado, você poderá adicionar um comentário no campo Key comment. Especifique uma frase de segurança e digite-a novamente no campo Confirm passphrase. Essa frase será necessária para se logar via SSH com a sua nova chave. Após isso clique em Save publick key e salve-a em um local seguro do seu computador. Você pode escolher qualquer nome de arquivo e extensão, apenas certifique-se de que o nome o lembrará para que serve aquela chave:
Então clique em Save private key. Você pode salvar no mesmo local que a chave pública (um local que só você tenha acesso e que não a perca, pois se perder as chaves, não poderá mais se logar). Dessa vez você também poderá escolher qualquer nome de arquivo, mas a extensão deverá ser .ppk:
5 – Salve a chave pública no seu servidor
Logue-se no seu SSH (se tiver fechado sua sessão anterior), ainda com o usuário e senha, e cole a chave pública no arquivo ~/.ssh/authorized_keys2 (em uma linha única) assim:
mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys2
ssh-rsa AAAAB3NzaC1yc2[…]oOcyCqKVdXkOlm9E= [email protected]
O arquivo deve poder ser lido/escrito apenas por seu usuário, então use o comando:
chmod 600 ~/.ssh/authorized_keys2
6 – Salve a chave privada no perfil de seu servidor no PuTTY
Abra o PuTTY novamente e carregue o perfil salvo do seu servidor. Vá para a categoria Connection -> SSH -> Auth and click on Browse:
Localize o arquivo da sua chave privada e clique em abrir:
Volte para Session e clique em Save. E agora a chave privada está associada ao perfil do servidor.
7 – Desabilite os logins por usuário e senha
Dessa forma, você pode agora logar tanto com seu par de chaves privada/pública quanto com o usuário/senha. Então se alguém não tiver a chave privada, o servidor vai pedir pelo usuário e senha. Para aumentar a segurança, precisamos desabilitar os logins por usuário/senha (mas só faça isso depois que se certificar de que o login por chaves está funcionando, pois se você não tiver outra forma de se logar, então você terá problemas).
Para desabilitar o login por usuário/senha, é preciso modificar o arquivo de configuração sshd. Em sistemas Debian/Ubuntu, é /etc/ssh/sshd_config. Mude o Protocol para 2 (1 não deve ser usado pois não é seguro), PasswordAuthentication para no, e UsePAM para no (ou comente a linha UsePAM), por exemplo:
vi /etc/ssh/sshd_config
[…]
Protocol 2
PasswordAuthentication no
UsePAM no
[…]
Então reinicie o sshd. No Debian/Ubuntu, você pode fazer assim:
/etc/init.d/ssh restart
Agora se você iniciar uma conexão PuTTY sem uma chave privada, você não conseguirá mais se logar.