Como aumentar a segurança do SSH

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"
2019-10-12T08:02:23-03:00
Ir ao Topo