ssh

Como proteger o servidor SSH no Ubuntu 20.04 do básico ao avançado

Como proteger o servidor SSH no Ubuntu 20.04 do básico ao avançado
Assim como todos os outros servidores, o servidor SSH também está sujeito a tentativas de acesso não autorizado. Portanto, sempre que desejar usar um servidor SSH, você deve ter considerado protegê-lo primeiro para se salvar de qualquer situação indesejada a longo prazo. Geralmente, o termo "proteger um servidor" também é conhecido como "proteger um servidor."Isso pode ser feito tomando várias medidas. Essas medidas dependem do nível de segurança que você precisa.

As medidas de proteção do servidor SSH variam de básicas a avançadas e, como dissemos anteriormente, você pode selecioná-las de acordo com o nível de segurança de que precisa. Você pode pular qualquer uma das medidas prescritas se tiver conhecimento suficiente sobre as consequências e se estiver em uma boa posição para enfrentá-las. Além disso, nunca podemos dizer que uma única etapa irá garantir 100% de segurança, ou uma determinada etapa é melhor do que a outra.

Tudo depende do tipo de segurança de que realmente precisamos. Portanto, hoje pretendemos dar a você uma visão muito profunda das etapas básicas e avançadas para proteger um servidor SSH no Ubuntu 20.04. Além desses métodos, também compartilharemos com você algumas dicas adicionais para proteger seu servidor SSH como um bônus. Então, vamos começar com a discussão interessante de hoje.

Método de proteção do servidor SSH no Ubuntu 20.04:

Todas as configurações SSH são armazenadas em seu arquivo / etc / ssh / sshd_config. Este arquivo é considerado muito importante para o funcionamento normal do seu servidor SSH. Portanto, antes de fazer qualquer alteração neste arquivo, é altamente recomendável que você crie um backup deste arquivo executando o seguinte comando em seu terminal:

sudo cp / etc / ssh / sshd_config / etc / ssh / sshd_config.Bak


Se este comando for executado com sucesso, você não verá nenhuma saída, conforme mostrado na imagem abaixo:

Depois de criar um backup deste arquivo, este passo é opcional e é executado se você deseja verificar todas as opções que estão atualmente habilitadas neste arquivo de configuração. Você pode verificar executando o seguinte comando em seu terminal:

sudo sshd -T


As opções atualmente ativadas do arquivo de configuração SSH são mostradas na imagem abaixo. Você pode rolar para baixo nesta lista para ver todas as opções.

Agora você pode começar a proteger seu servidor SSH enquanto passa das etapas básicas para as etapas avançadas no Ubuntu 20.04.

Passos básicos para proteger o servidor SSH no Ubuntu 20.04:

As etapas básicas para proteger um servidor SSH no Ubuntu 20.04 são os seguintes:

Etapa # 1: abrindo o arquivo de configuração SSH:

Você pode abrir o arquivo de configuração SSH executando o comando indicado abaixo em seu terminal:

sudo nano / etc / ssh / sshd_config


O arquivo de configuração SSH é mostrado na seguinte imagem:

Etapa 2: Desativando a autenticação baseada em senha:

Em vez de usar senhas para autenticação, as chaves SSH são consideradas mais seguras. Portanto, se você gerou as chaves SSH para autenticação, deve desativar a autenticação baseada em senha. Para isso, você precisa localizar a variável “PasswordAuthentication”, descomente-a e definir seu valor como “não”, conforme destacado na imagem a seguir:

Etapa nº 3: rejeitando / negando senhas vazias:

Às vezes, os usuários acham extremamente conveniente criar senhas vazias para evitar a memorização de senhas complexas. Esta prática pode ser prejudicial para a segurança do seu servidor SSH. Portanto, você precisa rejeitar todas as tentativas de autenticação com senhas vazias. Para isso, você precisa localizar a variável “PermitEmptyPasswords” e apenas descomentar, pois seu valor já está definido como “não” por padrão, conforme destacado na imagem a seguir:

Etapa 4: Proibindo o login do Root:

Você deve proibir estritamente os logins de root para proteger qualquer intruso de obter acesso de nível de root ao seu servidor. Você pode fazer isso localizando a variável “PermitRootLogin”, descomente-a e defina seu valor como “não”, conforme destacado na imagem mostrada abaixo:

Etapa 5: Usando o protocolo SSH 2:

O servidor SSH pode operar em dois protocolos diferentes, i.e., Protocolo 1 e Protocolo 2. O protocolo 2 implementa recursos de segurança mais avançados, por isso é preferível ao protocolo 1. No entanto, o protocolo 1 é o protocolo padrão do SSH e não é mencionado explicitamente no arquivo de configuração SSH. Portanto, se você deseja trabalhar com o Protocolo 2 em vez do Protocolo 1, é necessário adicionar explicitamente a linha “Protocolo 2” ao seu arquivo de configuração SSH, conforme destacado na imagem a seguir:

Etapa 6: Definir um tempo limite de sessão:

Às vezes, os usuários deixam seus computadores sem supervisão por muito tempo. Enquanto isso, qualquer intruso pode chegar e obter acesso ao seu sistema, violando sua segurança. É aqui que o conceito de tempo limite de sessão entra em jogo. Este recurso é usado para desconectar um usuário se ele permanecer inativo por um longo tempo para que nenhum outro usuário possa obter acesso ao seu sistema.

Este tempo limite pode ser definido localizando a variável “ClientAliveInterval”, descomente e atribua a ela qualquer valor (em segundos) de sua escolha. Em nosso caso, atribuímos a ele o valor de “300 segundos” ou “5 minutos”. Isso significa que se o usuário ficar longe do servidor SSH por “300 segundos”, ele será desconectado automaticamente conforme destacado na imagem abaixo:

Etapa # 7: Permitindo que usuários específicos acessem o servidor SSH:

O servidor SSH não é um servidor cujo acesso é exigido por todos os outros usuários. Portanto, seu acesso deve ser restrito apenas aos usuários que realmente precisam dele. Para permitir que usuários específicos acessem o servidor SSH, você precisa adicionar uma variável chamada “AllowUsers” ao arquivo de configuração SSH e, em seguida, escrever os nomes de todos os usuários aos quais deseja permitir acesso ao servidor SSH separados por um espaço. No nosso caso, queríamos permitir que apenas um usuário acesse o servidor SSH. É por isso que adicionamos apenas seu nome conforme destacado na imagem a seguir:

Etapa # 8: Limitando o número de tentativas de autenticação:

Sempre que um usuário tenta acessar um servidor e não consegue se autenticar pela primeira vez, ele tenta fazer isso novamente. O usuário continua fazendo essas tentativas até e a menos que ele seja capaz de se autenticar com sucesso, obtendo acesso ao servidor SSH. Isso é considerado uma prática altamente insegura, pois um hacker pode lançar um ataque de força bruta (um ataque que tenta repetidamente adivinhar uma senha até que a correspondência correta seja encontrada). Consequentemente, ele será capaz de obter acesso ao seu servidor SSH.

É por isso que é altamente recomendável limitar o número de tentativas de autenticação para evitar ataques de adivinhação de senha. O valor padrão das tentativas de autenticação para o servidor SSH é definido como “6”. No entanto, você pode alterá-lo dependendo do nível de segurança que você precisa. Para isso, você precisa localizar as variáveis ​​“MaxAuthTries”, descomente e definir seu valor para qualquer número desejado. Queríamos limitar as tentativas de autenticação a “3”, conforme destacado na imagem mostrada abaixo:

Etapa # 9: Executando o Servidor SSH em Modo de Teste:

Até agora, já tomamos todas as etapas básicas para proteger nosso servidor SSH no Ubuntu 20.04. No entanto, ainda precisamos ter certeza de que as opções que acabamos de configurar estão funcionando corretamente. Para isso, primeiro salvaremos e fecharemos nosso arquivo de configuração. Depois de fazer isso, tentaremos executar nosso servidor SSH no modo de teste. Se for executado com sucesso no modo de teste, isso implicará que não há erros em seu arquivo de configuração. Você pode executar seu servidor SSH no modo de teste, executando o seguinte comando em seu terminal:

sudo sshd -t


Quando este comando é executado com sucesso, ele não exibirá nenhuma saída no terminal, conforme mostrado na imagem abaixo. No entanto, se houver algum erro em seu arquivo de configuração, a execução deste comando renderizará esses erros no terminal. Você deverá, então, consertar esses erros. Só então você poderá prosseguir.

Etapa # 10: Recarregando o servidor SSH com novas configurações:

Agora, quando o servidor SSH foi executado com sucesso no modo de teste, precisamos recarregá-lo para que ele possa ler o novo arquivo de configuração, i.e., as mudanças que fizemos no arquivo de configuração SSH nas etapas mostradas acima. Para recarregar o servidor SSH com novas configurações, você precisa executar o seguinte comando em seu terminal:

sudo service sshd reload


Se o seu servidor SSH for reiniciado com sucesso, o terminal não exibirá nenhuma saída, conforme mostrado na imagem abaixo:

Etapas avançadas para proteger o servidor SSH no Ubuntu 20.04:

Depois de realizar todas as etapas básicas para proteger o servidor SSH no Ubuntu 20.04, você pode finalmente seguir para as etapas avançadas. Este é apenas um passo em frente para proteger seu servidor SSH. No entanto, se você pretende atingir apenas um nível moderado de segurança, as etapas descritas acima serão suficientes. Mas se você quiser ir um pouco mais longe, siga as etapas explicadas abaixo:

Etapa # 1: abrindo o ~ /.Arquivo ssh / authorized_keys:

As etapas básicas de proteção do servidor SSH são implementadas no arquivo de configuração SSH. Isso significa que essas políticas serão válidas para todos os usuários que tentarem acessar o servidor SSH. Também implica que as etapas básicas representam um método genérico de proteção do servidor SSH. No entanto, se tentarmos considerar o princípio de "Defesa em Profundidade", perceberemos que precisamos proteger cada chave SSH individual separadamente. Isso pode ser feito definindo parâmetros de segurança explícitos para cada chave individual. As chaves SSH são armazenadas no ~ /.arquivo ssh / authorized_keys, então primeiro acessaremos este arquivo para modificar os parâmetros de segurança. Vamos executar o seguinte comando no terminal para acessar o ~ /.arquivo ssh / authorized_keys:

sudo nano ~ /.ssh / authorized_keys

Executar este comando irá abrir o arquivo especificado com o editor nano. No entanto, você também pode usar qualquer outro editor de texto de sua escolha para abrir este arquivo. Este arquivo conterá todas as chaves SSH que você gerou até agora.

Etapa 2: Definindo configurações específicas para chaves particulares:

Para atingir um nível avançado de segurança, as cinco opções a seguir estão disponíveis:

Estas opções podem ser escritas antes de qualquer chave SSH de sua escolha para torná-las disponíveis para aquela chave particular. Mesmo mais de uma opção também pode ser configurada para uma única chave SSH. Por exemplo, se você deseja desativar o encaminhamento de porta para qualquer chave específica ou, em outras palavras, deseja implementar o não encaminhamento de porta para uma chave específica, a sintaxe será a seguinte:

no-port-forwarding DesiredSSHKey

Aqui, em vez de DesiredSSHKey, você terá uma chave SSH real em seu ~ /.arquivo ssh / authorized_keys. Depois de aplicar essas opções para as chaves SSH desejadas, você precisará salvar o ~ /.arquivo ssh / authorized_keys e fechá-lo. Uma coisa boa sobre este método avançado é que ele não exigirá que você recarregue seu servidor SSH após fazer essas modificações. Em vez disso, essas mudanças serão lidas por seu servidor SSH automaticamente.

Desta forma, você será capaz de proteger cada chave SSH em profundidade, aplicando os mecanismos de segurança avançados.

Algumas dicas adicionais para proteger o servidor SSH no Ubuntu 20.04:

Além de todos os passos básicos e avançados que tomamos acima, também existem algumas dicas adicionais que podem ser muito boas para proteger o servidor SSH no Ubuntu 20.04. Essas dicas adicionais foram discutidas abaixo:

Mantenha seus dados criptografados:

Os dados que residem em seu servidor SSH, bem como aqueles que permanecem em trânsito, devem ser criptografados e também, com um algoritmo de criptografia forte. Isso não apenas protegerá a integridade e confidencialidade dos seus dados, mas também impedirá que a segurança de todo o seu servidor SSH seja comprometida.

Mantenha seu software atualizado:

O software executado em seu servidor SSH deve estar atualizado. Isso é feito para garantir que nenhum bug de segurança em seu software permaneça sem supervisão. Em vez disso, eles devem ser corrigidos bem a tempo. Isso o salvará de quaisquer danos potenciais a longo prazo e também impedirá que seu servidor caia ou fique indisponível devido a problemas de segurança.

Certifique-se de que o SELinux está ativado:

SELinux é o mecanismo que estabelece a pedra fundamental da segurança nos sistemas baseados em Linux. Funciona implementando o Controle de Acesso Obrigatório (MAC). Ele implementa este modelo de controle de acesso, definindo regras de acesso em sua política de segurança. Este mecanismo é habilitado por padrão. No entanto, os usuários têm permissão para alterar essa configuração a qualquer momento. Isso significa que eles podem desativar o SELinux sempre que quiserem. No entanto, é altamente recomendável que você sempre mantenha o SELinux habilitado para que ele possa prevenir o seu servidor SSH de todos os danos potenciais.

Use políticas restritas de senha:

Se você protegeu seu servidor SSH com senhas, deve criar políticas de senha fortes. Idealmente, as senhas devem ter mais de 8 caracteres. Eles devem ser trocados após um determinado período de tempo, digamos, a cada 2 meses. Eles não devem conter palavras do dicionário; em vez disso, eles devem ser uma combinação de alfabetos, números e caracteres especiais. Da mesma forma, você pode definir algumas outras medidas extra estritas para suas políticas de senha para garantir que sejam fortes o suficiente.

Monitore e mantenha os registros de auditoria de seu servidor SSH:

Se algo der errado com seu servidor SSH, seu primeiro ajudante pode ser os registros de auditoria. Portanto, você deve manter esses registros para que possa rastrear a causa raiz do problema. Além disso, se você continuar monitorando a integridade e o funcionamento de seu servidor SSH continuamente, isso também impedirá que problemas graves ocorram.

Mantenha backups regulares de seus dados:

Por último, mas não menos importante, você deve sempre manter um backup de todo o seu servidor SSH. Fazer isso não apenas evitará que seus dados sejam corrompidos ou totalmente perdidos; em vez disso, você também pode usar este servidor de backup sempre que seu servidor principal cair. Isso também limitará o tempo de inatividade do servidor e garantirá sua disponibilidade.

Conclusão:

Ao cuidar de todas as medidas que foram prescritas neste artigo, você pode proteger ou proteger facilmente seu servidor SSH no Ubuntu 20.04. No entanto, se você tem experiência em Segurança da Informação, deve estar bem ciente desse fato de que não há nada como 100% de segurança. Tudo o que podemos obter é a promessa de melhor esforço, e esse melhor esforço só estará seguro até o momento em que também será violado. É por isso que mesmo depois de tomar todas essas medidas, você não pode dizer que seu servidor SSH é 100% seguro; em vez disso, ainda pode ter tais vulnerabilidades que você nunca poderia ter pensado. Essas vulnerabilidades só podem ser resolvidas se ficarmos atentos ao nosso servidor SSH e continuarmos a atualizá-lo sempre que necessário.

Como capturar e transmitir sua sessão de jogo no Linux
No passado, jogar era considerado apenas um hobby, mas com o tempo a indústria de jogos viu um grande crescimento em termos de tecnologia e número de ...
Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...
Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...