Segurança é algo essencial quando falamos de servidores, independente do sistema operacional utilizado, manter politicas de senhas adequadas, com certo nível de complexidade é essencial para qualquer sistema de dados sensíveis.

Root (super usuário) ou super utilizador é uma conta de usuário especial usada para a administração de sistemas baseados no Unix. (Wikipedia)

Não recomendo a utilização do usuário “root” regularmente, configure uma conta de super usuário alternativa para executar tarefas regulares.

Podemos concordar que lidar com senhas complexas e diferentes para cada serviço, aplicação ou no caso deste post, servidores, se torna confuso e por vezes cansativos.

Se tratando de Linux, a autenticação baseada em SSH com chave de criptografia, torna toda gestão mais simples e segura, pois permite você acessar um ou mais servidores sem a necessidade de ficar digitando senhas complexas ou diferentes para cada servidor.

Veremos agora, como tornar seu acesso SSH muito mais seguro e descomplicado. Mostrarei também algumas configurações adicionais, aplicando camadas extras de segurança em sua autenticação SSH.

CONTINUE APÓS PUBLICIDADE


1. Criar um usuário com privilégio Sudo

Para configurar um novo usuário, você precisa ter acesso ao terminal do seu servidor, se você utiliza DigitalOcean, Vultr ou qualquer outro provedor, poderá acessar através do próprio painel de controle.

Adicionar novo usuário:

$ adduser novousuario

Você será solicitado a informar uma senha e algumas informações de contato, basta preencher e pressionar OK para cada opção.

Conceder privilégios de super usuário

$ usermod -aG sudo novousuario

Agora podemos sair do terminal e retornar ao Windows

$ logout

2. Baixe e instale o PuTTY

Para facilitar, utilizaremos o PuTTY como nosso cliente SSH, o download pode ser realizado em https://www.putty.org/. A instalação já incluí o utilitário PuTTYgen, responsável por gerar as chaves SSH (Formato “.ppk”).

3. Gerar chaves SSH com o PuTTYgen

Em seu Windows, localize e execute o utilitário “PuTTYgen”…
Após executar, bastar clicar em “Generate” e movimentar aleatoriamente o ponteiro do mouse dentro da janela Key. Mantenha as opções padrões da aplicação.

Gerar Chave SSH PuTTYgen - Vitor Faustino

Copie e salve em um local seguro toda chave RSA extensa gerada acima, essa é a chave publica e utilizaremos ela no terminal mais adiante.

Adicione um comentário “Key Comment“, que pode ser o nome do seu usuário.

Opcionalmente, crie uma senha “Key passphrase“. A senha protege sua chave para o caso dela cair em mãos erradas, garantindo uma camada extra de segurança contra uso indevido, ela funciona como uma senha Mestre e será a mesma para qualquer servidor que utilize essa chave SSH, apesar de opcional eu recomendo fortemente seu uso.

Clique em “Save public key” e “Save private key” para salvar suas chaves, escolha um local seguro para elas. Utilizaremos a “private key” no PuTTY mais adiante.

CONTINUE APÓS PUBLICIDADE


4. Instalar Chave SSH no servidor LINUX

Precisaremos colar a chave publica gerada acima em nosso arquivo “authorized_keys”. Faça login novamente em seu servidor através do SSH utilizando a nova conta com privilégios sudo que criamos no inicio deste post.

Crie um novo diretório .ssh

$ sudo mkdir ~/.ssh

Observe que  ~/ é uma abreviação para o diretório inicial do usuário atualmente conectado, geralmente em /home/username/

Restringir Permissões

$ sudo chmod 700 ~/.ssh

Criar um novo arquivo chamado “authorized_keys” na pasta “.ssh”

$ sudo nano ~/.ssh/authorized_keys

O comando nano irá abrir um arquivo em branco. Certifique-se de ter sua chave pública, copiamos ela na etapa 3.

Cole a chave pública clicando com o botão direito do mouse uma vez em qualquer lugar do arquivo em branco.

Uma vez que a chave for colada, você poderá usar a seta para a esquerda no teclado, movendo o cursor até o final para ter certeza de que colou a chave inteira.

Salvar e fechar (pressione CTRL+ X, depois pressione ENTER para confirmar e salvar)

Restringindo permissões do arquivo “authorized_keys”

$ sudo chmod 600 ~/.ssh/authorized_keys

Definir recursivamente o proprietário “$(whoami)”

Variável retorna o usuário atualmente conectado.

$ sudo chown -R $(whoami):$(whoami) ~/.ssh/

Concluímos aqui o processo de configuração da Chave SSH para um novo usuário com privilégios sudo.

$ logout

Se você quiser adicionar novas chaves para outros usuários, simplesmente faça o login com o usuário desejado e repita os passos 3 e 4.

Ou, se você for um usuário com privilégios sudo, simplesmente substitua o “~/” com o diretório pessoal do usuário, exemplo /home/nomedeusuario e substitua “$(whoami)” por seu nome de usuário.

Exemplo prático de substituição (Siga etapas 3 e 4):

$ sudo nano /home/vitorfaustino/.ssh/authorized_keys
$ sudo chown -R vitorfaustino:vitorfaustino /home/vitorfaustino/.ssh/

5. Configurar PuTTY com Chave SSH

Em seu Windows, localize e execute o utilitário “PuTTY

No menu lateral esquerdo, clique em “Connection” para expandir, em seguida clique em “Data“.

Em “Auto-login username” preencha com seu usuário de conexão automática. (Neste exemplo, o usuário que criamos no passo 1)

Ainda no menu lateral “Connection” agora clique em “SSH” para expandir, em seguida clique em “Auth” e localize em seu computador a chave privada que salvamos no passo 3.

Ainda no menu lateral , clique sob a primeira opção “Session“, digite o IP do seu servidor, um nome para identificação do seu servidor e clique em salvar.

Para finalizar, clique em “Open” para iniciar a conexão com seu servidor.

Se você salvou sua chave SSH com uma senha (Passo 3), será necessário informa-la a cada novo acesso SSH.

Configurar PuTTY SSH - Vitor Faustino

Se você ver “Authenticating with public key” você configurou a autenticação baseada em chave com sucesso! Parabéns.

CONTINUE APÓS PUBLICIDADE


Recomendações de Segurança adicionais

6. Desativar a autenticação SSH através de senha

Agora que já temos usuários configurados com acesso SSH através de chaves, podemos desativar o acesso por senha, dessa forma, seu servidor aceitará apenas conexões SSH que estejam utilizando Chaves autorizadas.

Acesse seu terminal SSH como “root” ou algum usuário com privilégios sudo.

Abra o arquivo de configuração do SSH

$ sudo nano /etc/ssh/sshd_config

Localize a linha iniciada por “PasswordAuthentication” ela pode estar comentada com um “#” antes, remova este comentário e defina o valor como “no” ao final da linha. Exemplo:

PasswordAuthentication no

Salvar e fechar (pressione CTRL+ X, depois pressione ENTER para confirmar e salvar)

Para que as alterações sejam aplicas, será necessário reiniciar o serviço

$ sudo service ssh restart

Desta forma, desativamos o login SSH através de senhas.