Como proteger o servidor SSH no Ubuntu Top 10.Top 10 do básico ao avançado

Como proteger o servidor SSH no Ubuntu Top 10.Top 10 do básico ao avançado
Assim como todos os outros servidores, o servidor SSH também é propenso a tentativas de acesso não autorizadas. Portanto, sempre que você deseja usar um servidor SSH, você deve ter considerado protegê -lo primeiro para salvar -se de qualquer situação indesejada em um longo período. Geralmente, o termo "proteger um servidor" também é conhecido como "endurecer 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 proteger o servidor SSH variam de básico ao avançado e, como dissemos anteriormente, você pode buscá -los de acordo com o nível de segurança que você 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 garantirá 100% de segurança, ou uma certa etapa é melhor que a outra.

Tudo depende de que tipo de segurança realmente precisamos. Portanto, hoje pretendemos fornecer uma visão muito profunda das etapas básicas e avançadas para garantir um servidor SSH no Ubuntu 20.04. Além desses métodos, também estaremos compartilhando 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 proteger o 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 crucial para o funcionamento normal do seu servidor SSH. Portanto, antes de fazer alterações nesse arquivo, é altamente recomendável que você crie um backup desse 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 receberá nenhuma saída, conforme mostrado na imagem abaixo:

Depois de criar um backup desse arquivo, esta etapa é opcional e é executada se você deseja verificar todas as opções que estão atualmente ativadas neste arquivo de configuração. Você pode conferir 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 visualizar todas as opções.

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

Etapas básicas 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 declarado abaixo no seu terminal:

sudo nano/etc/ssh/sshd_config


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

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", descomentar -se e definir seu valor como "não", conforme destacado na imagem mostrada abaixo:

Etapa 3: Rejeitando/ negando senhas vazias:

Às vezes, os usuários acham extremamente conveniente criar senhas vazias para salvar -se de memorizar senhas complexas. Esta prática pode ser prejudicial à 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 descomentá -la, já que seu valor já está definido como "não" por padrão, conforme destacado na imagem a seguir:

Etapa 4: Proibindo o login da raiz:

Você deve proibir estritamente os logins de raiz por proteger qualquer intruso de obter acesso no nível da raiz ao seu servidor. Você pode fazer isso localizando a variável "Permitrootlogina", descommentando -a e definir 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, eu.e., Protocolo 1 e Protocolo 2. Protocolo 2 implementa recursos de segurança mais avançados, e é por isso que é preferido sobre o 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, precisa adicionar explicitamente a linha "Protocolo 2" ao seu arquivo de configuração SSH, conforme destacado na imagem a seguir:

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

Às vezes, os usuários deixam seus computadores sem vigilância por muito tempo. Enquanto isso, qualquer intruso pode vir e obter acesso ao seu sistema enquanto viola sua segurança. É aqui que o conceito de tempo limite da sessão entra em jogo. Esse recurso é usado para fazer logout um usuário se ele permanecer inativo por um longo tempo, para que nenhum outro usuário possa obter acesso ao seu sistema.

Esse tempo limite pode ser definido localizando a variável "ClientiveInterval", descommentando -a e atribui a ele qualquer valor (em segundos) de sua escolha. No nosso caso, atribuímos 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á automaticamente conectado conforme destacado na imagem mostrada 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. Para permitir que usuários específicos acessem o servidor SSH, você precisa adicionar uma variável chamada "Alowusers" ao arquivo de configuração SSH e depois escrever os nomes de todos os usuários que deseja permitir o acesso ao servidor SSH separado por um espaço. No nosso caso, queríamos apenas permitir que um usuário acesse o servidor SSH. É por isso que apenas adicionamos o nome dele, 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 ele não consegue se autenticar pela primeira vez, ele tenta fazer isso de novo. 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 certa seja encontrada). Resultantemente, ele poderá 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 está 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", descompor -se e definir seu valor para qualquer número desejado. Queríamos limitar as tentativas de autenticação de "3", conforme destacado na imagem mostrada abaixo:

Etapa 9: executando o servidor SSH no modo de teste:

Até agora, tomamos todas as medidas básicas para proteger nosso servidor SSH no Ubuntu 20.04. No entanto, ainda precisamos garantir 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 executar com sucesso no modo de teste, isso implicará que não haverá erros no 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 for executado com sucesso, ele não exibirá nenhuma saída no terminal, como mostrado na imagem abaixo. No entanto, se houver algum erro no seu arquivo de configuração, a execução deste comando renderizará esses erros no terminal. Você então deve corrigir esses erros. Só então você será capaz de prosseguir.

Etapa 10: Recarregar 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 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 Recar


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

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

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

Etapa 1: Abrindo o ~/.arquivo ssh/autorizado_keys:

As etapas básicas de proteger o servidor SSH são implementadas no arquivo de configuração SSH. Isso significa que essas políticas se manterão bem para todos os usuários que tentarão acessar o servidor SSH. Isso também implica que as etapas básicas representam um método genérico de proteger o servidor SSH. No entanto, se tentarmos considerar o princípio da "defesa em profundidade", então 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 teclas SSH são armazenadas no ~//.Arquivo SSH/Authorized_Keys, para primeiro acessar este arquivo para modificar os parâmetros de segurança. Executaremos o seguinte comando no terminal para acessar o ~//.arquivo ssh/autorizado_keys:

sudo nano ~//.ssh/autorizado_keys

A execução deste comando abrirá o arquivo especificado com o editor Nano. No entanto, você pode usar qualquer outro editor de texto de sua escolha também para abrir este arquivo. Este arquivo conterá todas as teclas SSH que você gerou até agora.

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

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

  • não-agente
  • não-port-forwarding
  • não-pty
  • não-user-rc
  • No-X11-Awarding

Essas opções podem ser escritas antes de qualquer chave SSH de sua escolha para disponibilizá -las para essa chave específica. Ainda mais de uma opção também pode ser configurada para uma única chave SSH. Por exemplo, você deseja desativar o encaminhamento de portas para qualquer chave específica ou, em outras palavras, deseja implementar não-porta-forwarding para uma chave específica, então a sintaxe será a seguinte:

não-porta-forwarding desejadonshkey

Aqui, em vez do desejado, você estará tendo uma chave SSH real dentro do seu ~//.arquivo ssh/autorizado_keys. Depois de aplicar essas opções para as chaves SSH desejadas, você precisará salvar o ~///.arquivo ssh/autorizado_keys e feche -o. Um bom sobre esse método avançado é que ele não exigirá que você recarregue seu servidor SSH depois de fazer essas modificações. Em vez disso, essas mudanças serão lidas pelo seu servidor SSH automaticamente.

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

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

Além de todas as etapas básicas e avançadas que tomamos acima, também existem algumas dicas adicionais que podem ser muito boas para garantir o servidor SSH no Ubuntu 20.04. Essas dicas adicionais foram discutidas abaixo:

Mantenha seus dados criptografados:

Os dados que residem no seu servidor SSH, bem como os que permanecem em trânsito, devem ser criptografados e isso também, com um forte algoritmo de criptografia. Isso não apenas protegerá a integridade e a confidencialidade de 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 erro de segurança em seu software permaneça sem vigilância. Em vez disso, eles devem ser bem corrigidos no tempo. Isso o salvará de qualquer dano em potencial a longo prazo e também impedirá que seu servidor caia ou não esteja disponível devido a problemas de segurança.

Verifique se o Selinux está ativado:

Selinux é o mecanismo que coloca a pedra fundamental da segurança nos sistemas baseados em Linux. Funciona implementando o controle de acesso obrigatório (MAC). Ele implementa esse modelo de controle de acesso definindo regras de acesso em sua política de segurança. Este mecanismo é ativado por padrão. No entanto, os usuários têm permissão para alterar esta configuração a qualquer momento. Isso significa que eles podem desativar o Selinux sempre que quiserem. No entanto, é fortemente recomendado que você sempre mantenha o Selinux ativado para que possa impedir que seu servidor SSH de todos os possíveis danos.

Use políticas rigorosas 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 alterados após um tempo especificado, digamos, após a cada 2 meses. Eles não devem conter palavras de dicionário; Em vez disso, eles devem ser uma combinação de alfabetos, números e caracteres especiais. Da mesma forma, você pode definir outras medidas extras rigorosas para suas políticas de senha para garantir que elas sejam fortes o suficiente.

Monitore e mantenha os logs de auditoria do seu servidor SSH:

Se algo der errado com seu servidor SSH, seu primeiro ajudante pode ser os registros de auditoria. Portanto, você deve continuar mantendo esses troncos para poder rastrear a causa raiz do problema. Além disso, se você continuar monitorando a saúde e o funcionamento do seu servidor SSH continuamente, isso também impedirá que quaisquer problemas principais ocorram em primeiro lugar.

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 salvará seus dados de serem corrompidos ou totalmente perdidos; Em vez disso, você também pode usar este servidor de backup sempre que seu servidor principal diminui. 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 endurecer facilmente seu servidor SSH no Ubuntu 20.04. No entanto, se você é de um histórico de 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 melhor promessa de 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. Tais vulnerabilidades só podem ser cuidadas se ficarmos atentos ao nosso servidor SSH e continuará atualizando -o sempre que for necessário.