Como proteger e endurecer o servidor OpenSsh

Como proteger e endurecer o servidor OpenSsh

Quando se trata de acessar dispositivos remotos, como servidores, roteadores e interruptores, o protocolo SSH é altamente recomendado, dada a sua capacidade de criptografar o tráfego e afastar qualquer um que possa tentar escutar suas conexões.

Seja como for, as configurações padrão de Ssh não são infalíveis e ajustes adicionais são necessários para tornar o protocolo mais seguro. Neste guia, exploramos diferentes maneiras que você pode usar para proteger e endurecer a instalação do OpenSsh no servidor.

1. Configure a autenticação sem senha SSH

Por padrão, Ssh exige que os usuários forneçam suas senhas ao fazer login. Mas eis a coisa: os hackers podem adivinhar senhas ou até executar um ataque de força bruta usando ferramentas especiais de hackers e obter acesso ao seu sistema. Para estar do lado seguro, o uso da autenticação sem senha SSH é altamente encorajada.

O primeiro passo é gerar um par de chaves ssh que consiste em um chave pública e a chave privada. O chave privada reside em seu sistema host enquanto o chave pública é então copiado para o servidor remoto.

Uma vez o chave pública é copiado com êxito, agora você pode fazer o SSH no servidor remoto sem problemas sem precisar fornecer uma senha.

A próxima etapa é desativar a autenticação de senha, para conseguir isso, você precisa modificar o arquivo de configuração SSH.

$ sudo vim/etc/ssh/sshd_config 

Dentro do arquivo de configuração, role e localize a seguinte diretiva. Descomment e mudar a opção 'sim' para 'não'

PasswordAuthentication no 
Desativar a autenticação de senha SSH

Em seguida, reinicie o daemon ssh.

# sudo systemctl reiniciar sshd 

Neste ponto, você só terá acesso ao servidor remoto usando a autenticação de chave SSH.

2. Desative solicitações de conexão sem senha do usuário SSH

Outra maneira recomendada de fortalecer a segurança do seu servidor é desativar os logins SSH de usuários sem senhas. Isso parece um pouco estranho, mas às vezes os administradores do sistema podem criar contas de usuário e esquecer de atribuir senhas - o que é uma ideia muito ruim.

Para rejeitar solicitações de usuários sem uma senha, novamente, acesse o arquivo de configuração em /etc/ssh/sshd_config e verifique se você tem a diretiva abaixo:

PermitEmptyPasswords no 
Desative Logins sem senha do usuário SSH

Em seguida, reinicie o serviço SSH para que a mudança seja efetuada.

$ sudo systemctl reiniciar sshd 

3. Desativar logins de raiz SSH

É um acéfalo, o que pode acontecer se um hacker conseguir forçar sua senha raiz. Permitir que o login de raiz remoto seja invariavelmente uma má idéia que pode comprometer a segurança do seu sistema.

Por esse motivo, é sempre recomendável que você desative o login de raiz remoto SSH e, em vez disso. Mais uma vez, vá até o arquivo de configuração e modifique esta linha como mostrado.

Permitrootlogina no 
Desativar logins de raiz SSH

Depois de terminar, reinicie o serviço SSH para que a mudança seja efetuada.

$ sudo systemctl reiniciar sshd 

A partir de agora, o login de raiz remoto será desativado.

4. Use o protocolo SSH 2

SSH vem em duas versões: SSH Protocolo 1 e Protocolo 2. Ssh Protocolo 2 foi introduzido em 2006 e é mais seguro do que Protocolo 1 Graças a seus fortes cheques criptográficos, criptografia em massa e algoritmos robustos.

Por padrão, o SSH usa Protocolo 1. Para mudar isso para o mais seguro Protocolo 2, Adicione a linha abaixo ao arquivo de configuração:

Protocolo 2 
Use o protocolo SSH 2

Como sempre, reinicie o SSH para que as mudanças entrem em vigor.

$ sudo systemctl reiniciar sshd 

No futuro, SSH usará Protocolo 2 por padrão.

Para testar se SSH Protocolo 1 é mais suportado, execute o comando:

$ ssh -1 [email protegido] 

Você receberá um erro que diz “Protocolo SSH v.1 não é mais suportado”.

Nesse caso, o comando era:

$ ssh -1 [email protegido] 
Verifique o protocolo SSH

Além disso, você pode simplesmente especificar o -2 tag apenas para ter certeza disso Protocolo 2 é o protocolo padrão em uso.

$ ssh -2 [email protegido] 
Use o protocolo SSH 2

5. Definir Timeout de conexão SSH Valor ocioso

Deixar seu PC sem vigilância por longos períodos de tempo com uma conexão ssh ociosa pode representar um risco de segurança. Alguém pode simplesmente passar e assumir sua sessão ssh e fazer o que quiser. Para resolver a questão, é prudente, portanto, definir um limite de tempo limite ocioso que, quando excedido, a sessão do SSH será fechada.

Mais uma vez, abra seu arquivo de configuração SSH e localize a diretiva “ClientiveInterval”. Atribuir um valor razoável, por exemplo, eu defini o limite para 180 segundos.

ClientiveInterval 180 

Isso implica que a sessão SSH será retirada se nenhuma atividade for registrada após 3 minutos, o que equivale a 180 segundos.

Definir o valor do tempo limite da conexão SSH

Em seguida, reinicie o daemon ssh para efetuar as alterações feitas.

$ sudo systemctl reiniciar sshd 

6. Limitar o acesso SSH a determinados usuários

Para uma camada de segurança adicional, você pode definir os usuários que precisam de protocolo SSH para fazer login e executar tarefas remotas no sistema. Isso mantém os outros usuários que podem tentar entrar no seu sistema sem a sua aprovação.

Como sempre, abra o arquivo de configuração e anexa a diretiva “Permissores”Seguido pelos nomes dos usuários que você deseja conceder. No exemplo abaixo, eu permiti os usuários 'Tecmint' e 'James'Ter acesso remoto ao sistema via SSH. Qualquer outro usuário que tentar obter acesso remoto será bloqueado.

Permissores Tecmint James 
Limite os logins de usuários SSH

Depois disso, reinicie o SSH para as mudanças persistem.

$ sudo systemctl reiniciar sshd 

7. Configure um limite para tentativas de senha

Outra maneira de adicionar uma camada de segurança é limitar o número de tentativas de login do SSH, de modo que, após várias tentativas fracassadas, a conexão cai. Então, mais uma vez, vá até o arquivo de configuração e localize o “Maxauthtries”Diretiva e defina um valor para o número máximo de tentativas.

Neste exemplo, o limite foi definido como 3 tentativas como mostrado.

Maxauthtries 3 
Limitar as tentativas de senha SSH

E, finalmente, reinicie o serviço SSH como nos cenários anteriores.

Você também pode achar os seguintes artigos relacionados ao SSH úteis:

  • Como instalar o OpenSsh 8.0 servidor da fonte no Linux
  • Como instalar Fail2ban para proteger o SSH no CentOS/Rhel 8
  • Como alterar a porta SSH no Linux
  • Como criar tunelamento SSH ou encaminhamento de porta no Linux
  • 4 maneiras de acelerar as conexões SSH no Linux
  • Como encontrar todas as tentativas de login SSH falhadas no Linux
  • Como desconectar conexões SSH inativas ou inativas
Conclusão

Isso foi um resumo de algumas das medidas que você pode tomar para garantir suas conexões remotas SSH. É importante acrescentar que você deve sempre atribuir senhas fortes aos usuários com acesso remoto a ataques de força bruta. É nossa esperança que você achou este guia perspicaz. Seu feedback é muito bem -vindo.