O SSH é um protocolo amplamente utilizado para acessar servidores Linux com segurança. A maioria dos usuários usa conexões SSH com configurações padrão para se conectar a um servidor remoto. No entanto, as configurações padrão não seguras também apresentam vários riscos de segurança.

A conta root de um servidor com acesso SSH aberto pode estar em risco. E especialmente se você estiver usando um endereço IP público, é muito mais fácil hackear a senha do root. Portanto, é necessário ter conhecimento sobre segurança SSH.

Veja como você pode proteger suas conexões de servidor SSH no Linux.

1. Desabilitar logins de usuários root

Para isso, primeiro desabilite o acesso SSH do usuário root e crie um novo usuário com privilégios de root. Desativar o acesso ao servidor para o usuário root é uma estratégia de defesa que impede que invasores atinjam seu objetivo de invadir o sistema. Por exemplo, você pode criar um usuário chamado exemploraiz do seguinte modo:

useradd -m exampleroot
passwd exampleroot
usermod -aG sudo exampleroot
instagram viewer

Aqui está uma breve explicação dos comandos acima mencionados:

  • usuário adicionar cria um novo usuário e o -m parâmetro cria uma pasta sob o casa diretório para o usuário que você criou.
  • o senha comando é para atribuir uma senha ao novo usuário. Lembre-se de que as senhas que você atribui aos usuários devem ser complexas e difíceis de adivinhar.
  • usermod -aG sudo adiciona o usuário recém-criado ao grupo admin.

Após o processo de criação do usuário, é necessário fazer algumas alterações no sshd_config Arquivo. Você pode encontrar este arquivo em /etc/ssh/sshd_config. Abra o arquivo com qualquer editor de texto e faça as seguintes alterações:

# Autenticação: 
#LoginGraceTime 2m
PermitRootLogin no
AllowUsers exampleroot

PermitRootLogin linha impedirá que o usuário root obtenha acesso remoto usando SSH. Incluindo exemploraiz no Permitir usuários list concede as permissões necessárias ao usuário.

Por fim, reinicie o serviço SSH usando o seguinte comando:

sudo systemctl reiniciar ssh

Se isso falhar e você receber uma mensagem de erro, tente o comando abaixo. Isso pode diferir com base na distribuição Linux que você usa.

sudo systemctl reiniciar sshd

2. Alterando a porta padrão

A porta de conexão SSH padrão é 22. Obviamente, todos os invasores sabem disso e, portanto, é necessário alterar o número da porta padrão para garantir a segurança do SSH. Embora um invasor possa encontrar facilmente o novo número da porta com uma varredura Nmap, o objetivo aqui é dificultar o trabalho do invasor.

Para alterar o número da porta, abra /etc/ssh/sshd_config e faça as seguintes alterações no arquivo:

Incluir /etc/ssh/sshd_config.d/*.conf
Porta 5922

Após esta etapa, reinicie o serviço SSH novamente com sudo systemctl reiniciar ssh. Agora você pode acessar seu servidor usando a porta que acabou de definir. Se você estiver usando um firewall, também deverá fazer as alterações de regra necessárias. Ao executar o netstat -tlpn comando, você pode ver que seu número de porta para SSH foi alterado.

3. Bloquear acesso para usuários com senhas em branco

Pode haver usuários sem senhas em seu sistema que você possa ter criado acidentalmente. Para impedir que esses usuários acessem os servidores, você pode definir o Permitir senhas vazias valor da linha no sshd_config arquivo para não.

PermitEmptyPasswords não

4. Limitar tentativas de login/acesso

Por padrão, você pode acessar o servidor fazendo quantas tentativas de senha desejar. No entanto, os invasores podem usar essa vulnerabilidade para forçar o servidor com força bruta. Você pode encerrar automaticamente a conexão SSH após um certo número de tentativas, especificando o número de tentativas de senha permitidas.

Para isso, altere o MaxAuthTries valor no sshd_config Arquivo.

MaxAuthTries 3

5. Usando SSH Versão 2

A segunda versão do SSH foi lançada por causa das muitas vulnerabilidades na primeira versão. Por padrão, você pode habilitar o servidor para usar a segunda versão adicionando o Protocolo parâmetro para o seu sshd_config Arquivo. Dessa forma, todas as suas conexões futuras usarão a segunda versão do SSH.

Incluir /etc/ssh/sshd_config.d/*.conf 
Protocolo 2

6. Desativando o encaminhamento de porta TCP e o encaminhamento X11

Os invasores podem tentar obter acesso aos seus outros sistemas por meio do encaminhamento de porta por meio de conexões SSH. Para evitar isso, você pode desligar o AllowTcpForwarding e X11 Encaminhamento características no sshd_config Arquivo.

X11Encaminhando não 
AllowTcpForwarding não

7. Conectando com uma chave SSH

Uma das maneiras mais seguras de se conectar ao seu servidor é usar uma chave SSH. Ao usar uma chave SSH, você pode acessar o servidor sem uma senha. Além disso, você pode desativar completamente o acesso por senha ao servidor alterando os parâmetros relacionados à senha no sshd_config Arquivo.

Quando você cria uma chave SSH, há duas chaves: Público e Privado. A chave pública é carregada no servidor ao qual você deseja se conectar e a chave privada é armazenada no computador com o qual você estabelecerá a conexão.

Crie uma chave SSH com o ssh-keygen comando em seu computador. Não deixe o Senha campo em branco e lembre-se da senha que você digitou aqui. Se você deixar em branco, só poderá acessá-lo com o arquivo de chave SSH. No entanto, se você definir uma senha, poderá impedir que um invasor com o arquivo de chave o acesse. Como exemplo, você pode criar uma chave SSH com o seguinte comando:

ssh-keygen

8. Restrições de IP para conexões SSH

Na maioria das vezes, o firewall bloqueia o acesso utilizando frameworks de seus próprios padrões e tem como objetivo proteger o servidor. No entanto, isso nem sempre é suficiente e você precisa aumentar esse potencial de segurança.

Para isso, abra o /etc/hosts.allow Arquivo. Com as adições feitas a este arquivo, você pode restringir a permissão SSH, permitir um bloqueio de IP específico ou inserir um único IP e bloquear todos os endereços IP restantes com o comando deny.

Abaixo você verá algumas configurações de exemplo. Depois de fazer isso, reinicie o serviço SSH normalmente para salvar as alterações.

A importância da segurança do servidor Linux

Os dados e questões de segurança de dados são bastante detalhados e devem ser considerados por todos os administradores de servidor. A segurança do servidor é uma questão muito sensível, pois o foco principal dos ataques são os servidores da Web, e eles contêm quase todas as informações sobre um sistema. Como a maioria dos servidores roda na infraestrutura Linux, é muito importante estar familiarizado com o sistema Linux e com a administração do servidor.

A segurança SSH é apenas uma das maneiras de proteger os servidores. É possível minimizar o dano que você recebe parando, bloqueando ou retardando um ataque. Além de fornecer segurança SSH, existem muitos métodos diferentes que você pode implementar para proteger seus servidores Linux.