13 maneiras de proteger as conexões do servidor SSH no Linux

Por Xerife Tech, 21.04.2023 às 15:04 237

[ad_1]

O SSH é amplamente usado 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 representam 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 conhecer a segurança do SSH.

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

1. Desativar logins de usuário raiz

Para isso, primeiro desative 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 raiz de exemplo do seguinte modo:

useradd -m exampleroot
passwd exampleroot
usermod -aG sudo exampleroot

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

  • adicionar usuário cria um novo usuário e o -m parâmetro cria uma pasta sob o lar diretório para o usuário que você criou.
  • O senha O comando serve 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:

# Authentication: 

#LoginGraceTime 2m
PermitRootLogin no
AllowUsers exampleroot

edit-sshd-config-file-for-ssh-security

O PermitRootLogin A linha impedirá que o usuário root obtenha acesso remoto usando SSH. Incluindo raiz de exemplo 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 restart ssh

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

sudo systemctl restart sshd

2. Alteração da porta SSH 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 de porta com uma varredura do Nmap, o objetivo aqui é tornar o trabalho do invasor mais difícil.

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

Include /etc/ssh/sshd_config.d/*.conf

Port 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 o número da porta para SSH mudou.

3. Bloquear o acesso de usuários com senhas em branco

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

PermitEmptyPasswords no

4. Limite as tentativas de login/acesso

Por padrão, você pode acessar o servidor fazendo quantas tentativas de senha quiser. 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 determinado 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 devido às muitas vulnerabilidades da 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.

Include /etc/ssh/sshd_config.d/*.conf

Protocol 2

alterar-ssh-versão-com-protocolo

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

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

X11Forwarding no 
AllowTcpForwarding no

7. Conexão 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 digitada 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 padrões e visa proteger o servidor. No entanto, isso nem sempre é suficiente e você precisa aumentar esse potencial de segurança.

Para fazer isso, abra o /etc/hosts.allow arquivo. Com as adições feitas a esse 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á alguns exemplos de configurações. Depois de fazer isso, reinicie o serviço SSH como de costume para salvar as alterações.

IP-Restrição-para-SSH-Connection-1

9. Permitir acesso seletivamente a usuários e grupos

Você pode configurar o arquivo de configuração sshd para permitir ou proibir seletivamente usuários e grupos de SSH-ing em seu servidor. Por padrão, todos os usuários e grupos têm acesso permitido. Este é um risco de segurança quando você está gerenciando um servidor de produção que não deve ser acessado por ninguém, exceto aqueles com autorização adequada.

Aqui estão as linhas que você precisa adicionar para permitir/proibir o acesso SSH a usuários e grupos:

AllowUsers: username sshuser@ip:port
AllowGroups: groupname
DenyUsers: username1 username2 sshuser@ip:port
DenyGroups: groupname

10. Defina o intervalo de tempo limite ocioso

Se um usuário confiável deixar sua área de trabalho autônoma com ele conectado ao seu servidor, um adversário com acesso ao seu computador pode tirar proveito disso e executar ações maliciosas em seu servidor.

A maneira mais simples de combater isso é definir um período de intervalo de tempo limite ocioso. Após um período definido de inatividade, o servidor encerrará a conexão SSH com o usuário para impedir o acesso não solicitado na ausência ou inatividade do usuário confiável.

Aqui estão as linhas que você precisa adicionar à sua configuração sshd para ativar essa configuração:

ClientAliveInterval 120

De acordo com o comando emitido no arquivo de configuração, após 120 segundos de inatividade, a conexão será encerrada. Você pode alterar o número para corresponder ao seu gosto.

11. Adicione um Banner de Aviso

Embora essa não seja uma medida de segurança ativa, adicionar um banner de aviso pode ser uma tática psicológica útil para afastar convidados indesejados e enviar o adversário para trás quando eles tentarem se conectar ao seu servidor com intenção maliciosa.

Para adicionar um banner de aviso personalizado, primeiro prepare cuidadosamente o texto do banner ou pegue um dos genéricos da internet e salve-o em um arquivo de texto. Em seguida, adicione esta linha ao seu arquivo de configuração:

Banner /path/to/banner/banner.txt

12. Aplicar algoritmos MAC fortes

MAC, no contexto do SSH, significa Message Authentication Code. MAC é um algoritmo criptográfico usado para verificar e validar as transmissões de dados entre cliente e servidor.

É importante que você defina algoritmos MAC fortes para garantir a integridade e a confidencialidade de seus dados, que são dois pilares principais da segurança cibernética. Aqui está a linha que você precisa adicionar à sua configuração:

MACs hmac-sha1,hmac-sha2-256,hmac-sha2-512

13. Defina LogLevel para monitorar a atividade SSH

Você pode monitorar a atividade SSH em vários níveis de verbosidade. Por padrão, esse recurso pode estar desativado. É recomendável ativar esse recurso e configurá-lo para o nível de registro básico—INFORMAÇÕES que registrará apenas erros, mensagens, autenticação de chave, login e atividade de logoff dos usuários.

Você certamente pode alterá-lo para um nível mais detalhado como VERBOSE ou DEPURAR se você preferir assim. Aqui está a linha que você precisa adicionar ao seu arquivo de configuração sshd:

LogLevel INFO

Agora, seu servidor SSH gerará os dados básicos de registro que você pode ler navegando e lendo o /var/log/auth.log* arquivo em máquinas baseadas em Debian/Ubuntu e /var/log/seguro arquivo no RHEL/CentOS/Fedora.

Você pode visualizar todo o arquivo de log e navegar para as partes com sshd ou usar o comando grep para filtrar o conteúdo e ler apenas os logs do sshd.

A importância da segurança do servidor Linux

Dados e questões de segurança de dados são bastante detalhados e devem ser considerados por todos os administradores de servidores. A segurança do servidor é uma questão muito delicada, 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 é executada na infraestrutura Linux, é muito importante estar familiarizado com o sistema Linux e 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.

Comentários 0