Introdução
Neste passo a passo, iremos aumentar a segurança do servidor Linux, configurando-o a utilizar a autenticação por chaves de criptografia (chave pública/privada), e evitando a utilização de senhas para acessá-lo.
Também desabilitaremos o acesso à conta do usuário root através do ssh.
Como aumentar a segurança do SSH
Criando um par de chaves de criptografia na máquina cliente
Primeiramente, precisamos gerar um par de chaves em sua máquina de acesso ao servidor. Utilize o seguinte comando em um terminal (Linux o Mac), ou utilize o puttygen (gerando chaves no Windows)
ssh-keygen -t rsa
Utilize os parâmetros padrões e opcionalmente crie uma passphrase (senha) para acesso a sua chave privada.
Copie o conteúdo da chave pública para a área de transferência, selecionando o texto exibido pelo seguinte comando, e utilizando as teclas de atalho para copiar (CTRL+c ou Command+c):
cat ~/.ssh/id_rsa.pub
Como usuário root, execute o comando para alternar de usuário (criado anteriormente no post “como criar um servidor web em 10 minutos“):
su -usuarioex
Agora que está no diretório home do seu usuário (/home/usuarioex/), crie um diretório chamado “.ssh” com permissões restritas:
mkdir .ssh
chmod 700 .ssh
Adicione a chave pública utilizando o editor de texto no servidor:
nano .ssh/authorized_keys (cole a chave utilizando CTRL+v ou Command+v)
Salve o arquivo utilizando (CTRL-X, então Y, e depois ENTER).
Altere as permissões de acesso:
chmod 600 .ssh/authorized_keys
Digite o seguinte comando para retornar para o usuário root:
exit
Configurando o SSH Daemon
Vamos configurar o programa que nos permite fazer login remoto para desabilitar o acesso para a conta de usuário root.
nano /etc/ssh/sshd_config
Procure por um linha como esta:
PermitRootLogin yes
Altere para:
PermitRootLogin no
Desta forma, o usuário root não poderá realizar login remoto através do SSH.
Essa é geralmente uma maneira mais segura, já que podemos acessar o servidor através de um usuário normal e escalar os privilégios quando necessário.
Ainda nesse arquivo de configuração, desabilite a autenticação por senha, o que impede que ataques que tentam advinhar a senha por tentativa e erro tenham sucesso.
Seu servidor será acessível apenas através do conjunto de chave pública e privada.
Procure por:
#PasswordAuthentication yes
Altere para:
PasswordAuthentication no
Salve o arquivo utilizando (CTRL-X, então Y, e depois ENTER).
Reinicie o serviço de ssh:
service ssh restart
Agora, abra outra janela de terminal e faça o login novamente, trocando o usuário root pelo usuário novo e utilizando a chave ssh para conexão:
ssh [email protected]ENDERECO_IP_SERVIDOR -i "caminho/para/sua/chave/primaria"