Como proteger sua conexão SSH no CentOS 7

SSH é o protocolo principal usado para conectar e administrar servidores Linux. Por causa disso, ele é uma das portas mais frequentemente atacadas quando atores nefastos tentam obter acesso ao seu servidor. Neste artigo, vamos discutir alguns métodos que você pode usar para tornar sua conexão SSH mais segura.

Nota: Dependendo do produto que você tem com OVHcloud, alguns destes passos podem já ter sido tomados. Se este for o caso, simplesmente prossiga para o próximo passo. Adicionalmente, os passos neste artigo assumem que você se autentica ao seu servidor usando chaves SSH. Se você usar uma senha, certos passos neste artigo não funcionarão.

Prerequisites

  • Como usar chaves SSH
  • Server Running CentOS 7

Topics

  • Criar um novo usuário Sudo
  • Alterar o Daemon SSH Configuração

Criar um novo usuário Sudo

É sempre melhor prática proibir a autenticação root sobre SSH, uma vez que este é o nome de usuário que as pessoas vão tentar invadir mais. Assim, a primeira coisa que queremos fazer para proteger nosso servidor é criar um novo usuário sudo para o SSH. Para isso, digite o seguinte comando, substituindo o nome de usuário vermelho pelo nome de usuário de sua escolha:

# adduser username

Próximo, vamos definir uma senha para o usuário:

# passwd username

Seguir o prompt para criar e confirmar a senha. Agora, queremos dar privilégios ao nosso novo usuário sudo para que possamos nos tornar root e executar comandos que precisam de privilégios administrativos. Nós podemos fazer isso digitando o seguinte comando.

# usermod -aG wheel username

Próximo, queremos habilitar nosso novo usuário para autenticar usando a chave pública SSH que já fornecemos para o usuário root. Podemos usar um simples comando rsync para copiar a chave pública para o arquivo authorized_keys do nosso novo usuário.

# rsync --archive --chown=username:username ~/.ssh /home/username

Antes de prosseguir para o próximo passo, faça logout e certifique-se de que você seja capaz de se autenticar no servidor como o novo usuário usando SSH. Se você não conseguir entrar como seu novo usuário, você ainda será capaz de entrar como root; confirme que todos os comandos foram inseridos corretamente e tente entrar como seu novo usuário novamente.

Mudando a Configuração do Daemon SSH

Desde que estamos usando chaves SSH e um novo usuário para se autenticar no nosso servidor, nunca queremos que ninguém se autentique usando uma senha ou o nome de usuário root. Para isso, queremos primeiro navegar para o arquivo de configuração do daemon OpenSSH. Para fazer isso, abra o arquivo em um editor de texto de sua escolha usando o seguinte comando:

$ sudo vi /etc/ssh/sshd_config

Há três alterações que queremos fazer neste arquivo. Primeiro, queremos alterar a porta na qual o OpenSSH ouve os pedidos.

Aviso: Se você tiver qualquer firewalls ativos, você precisará permitir o tráfego através da porta que você escolher ou você vai se bloquear fora do seu servidor. Se você se bloquear fora do seu servidor, você pode recuperar o acesso através de IPMI ou KVM. Para saber mais, por favor verifique nosso Getting Started with IPMI article.

No topo do arquivo, você verá uma seção que se parece com isto por padrão:

#Port 22#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

Uncomente a seção “Port” e escolha qualquer número de porta válido como no exemplo a seguir. No nosso exemplo, estamos a usar a porta 12345.

Port 12345#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

Próximo rolo até à porção # Authentication: do ficheiro. Você verá cinco opções que aparecerão por padrão:

#LoginGraceTime 2m#PermitRootLogin yes
PermitRootLogin yes#StrictModes#MaxAuthTries 6#MaxSessions 10

Aqui queremos mudar o “sim” ao lado de “PermitRootLogin” para “não”. Ele aparecerá da seguinte forma:

#LoginGraceTime 2m
#PermitRootLogin yesPermitRootLogin no#StrictModes#MaxAuthTries 6#MaxSessions 10

Agora queremos rolar um pouco mais o arquivo sshd_config para fazer nossa alteração final – desabilitando a autenticação da senha. Você verá uma seção que se parece com isto por padrão:

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication yes

Queremos mudar o “sim” ao lado de “PasswordAuthentication” para um “não”. Ela aparecerá da seguinte forma:

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication no

Guardar e sair do ficheiro. Finalmente, precisamos reiniciar o OpenSSH para que as mudanças tenham efeito. Faça isso digitando o seguinte comando:

$ sudo systemctl restart sshd.service

Passemos um segundo para rever o que fizemos aqui. Nós alteramos o número da porta que usamos para ouvir os pedidos SSH. Então, desabilitamos o acesso SSH para o usuário root ou qualquer usuário tentando se autenticar com uma senha. Se fizemos isso corretamente, o seguinte comando não funcionará mais para entrar no servidor.

$ ssh [email protected]

Para entrar agora, vamos ter que especificar o número da porta que estamos usando para ouvir pedidos SSH. Isso significa que a partir de agora vamos precisar usar o seguinte comando, substituindo o número ao lado de “-p” pelo número da porta que escolhemos anteriormente:

$ ssh -p 12345 [email protected]

Certifique-se de que este comando funciona e que o anterior não funciona. Se funcionar, você está pronto para acessar seu servidor com segurança através do SSH.

Conclusion

Com tantos atores ruins usando a internet, nunca foi tão importante proteger qualquer ponto de entrada potencial para o seu servidor. Ao seguir este guia, você ajudou a segurança do ponto de entrada mais comum em servidores Linux.

Deixe uma resposta

O seu endereço de email não será publicado.