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.