Como personalizar as configurações de SSH para segurança máxima

Cum se personalizează setările SSH pentru securitate maximă
⏱️ 7 min read

O arquivo de configuração SSH em seu sistema Unix controla como o shell seguro opera. Ele pode ser usado para tornar o comando ssh mais fácil de usar, configurar funções específicas desejadas pelo usuário ou fortalecer a segurança contra ataques em potencial. Embora ações relativamente simples, como alterar a porta ssh em seus dispositivos, possam geralmente eliminar um grande número de “chamadas frias” de ssh em sua máquina, o arquivo de configuração ssh pode fazer muito mais do que isso.

Onde está o arquivo de configuração SSH?

Em sistemas Linux, você pode encontrar o arquivo de configuração ssh de todo o sistema em “/ etc / ssh / ssh_config”.

Em sistemas macOS, o mesmo arquivo é encontrado em “/ private / etc / ssh / ssh_config,” que está vinculado a “/ etc / ssh / ssh_config” para compatibilidade.

Um segundo arquivo ssh_config específico do usuário pode ser localizado em “~ / .ssh / ssh_config” (o símbolo “~” representa o diretório inicial). Este arquivo substitui o arquivo de configuração de todo o sistema, permitindo que você defina opções específicas do usuário sem alterar a configuração do sistema. Os sistemas nem sempre vêm com um arquivo “~ / .ssh / ssh_config”, mas ele pode ser criado facilmente.

No futuro, vamos nos referir a esse arquivo de configuração como “ssh_config” para maior clareza e simplicidade.

Editando o arquivo ssh_config

Para editar o arquivo ssh_config, abra uma janela do Terminal e edite o arquivo com seu editor de texto preferido. Usaremos o nano neste demo, mas vi ou emacs podem ser usados ​​em seu lugar.

Isso abrirá um arquivo com dezenas de linhas comentadas explicando o que o arquivo faz, mas não é uma explicação completa.

edit-ssh-config-file-edit-ssh-config-in-terminal

O que é o arquivo ssh_config e o que o ssh_config faz?

O arquivo ssh_config é usado para controlar o quão seguro é o shell, mais conhecido como ssh comando do terminal, opera em seu sistema. O arquivo ssh_config é organizado por hosts. Cada host contém configurações específicas para aquele host. Caracteres curinga como * pode ser usado para combinar vários nomes de host com uma única declaração.

As opções são declaradas usando um par chave / definição. Existem muitas chaves disponíveis. Uma explicação detalhada da funcionalidade de cada tecla pode ser encontrada no Página man do ssh_config.

Endurecendo sua configuração SSH

Bloqueando os arquivos: antes de editar o arquivo, certifique-se de que os arquivos ssh_config e sshd_config tenham o proprietário e o usuário definidos como root. Na maioria dos casos, você também desejará proibir as permissões para qualquer pessoa, exceto root.

Confirme o protocolo SSH 2

Certifique-se de usar o Protocolo 2 mais recente e moderno em vez do Protocolo 1. O protocolo mais antigo funciona com uma verificação de integridade mais fraca e geralmente é menos seguro.

Para definir explicitamente o protocolo, use o seguinte em seu ssh_config:

Você também pode definir implicitamente seu protocolo usando Cifras, que definirá automaticamente o Protocolo como 2 para usar Cifras modernas.

Proibir senha vazia

Certifique-se de que cada conta SSH usa uma senha ao fazer login, bloqueando senhas vazias.

Proibir login de root

O root raramente deve ser usado para a maioria dos usos do Linux. Impedir o login de root permitirá que você bloqueie contas especificamente para o que é necessário e não permitirá o uso em todo o sistema. Essa também é uma conta que é alvo de ataques. As opções para PermitRootLogin incluem “sim”, “sem senha”, “apenas comandos forçados” ou “não”. O padrão é “sim”. Para interromper completamente o login de root, use a linha abaixo.

Mude o número da porta

Você pode alterar o número da porta de 22 (o padrão) como uma forma de limitar os acessos diretos ao seu servidor nessa porta. Isso limitará a maioria das pessoas que estão utilizando um script que vai para essa porta ou que estão atacando essa porta manualmente. No entanto, isso não limitará aqueles que procuram portas abertas e atacam o que quer que esteja aberto. Além disso, você precisará garantir que qualquer pessoa que acessar por meio dessa porta esteja ciente do novo número e que esse novo número de porta seja utilizado por qualquer cliente ou software.

Para ajustar a porta, edite o daemon ssh principal em “/ etc / ssh / sshd_config”. Você deseja adicionar uma nova linha especificando a porta seguindo a sintaxe Port XXXXX.

edit-ssh-config-file-change-ssh-port

Acesso restrito

Se você tiver várias pessoas que acessam seu servidor, pode restringir o uso de ssh por completo. Para essas instâncias, você pode permitir e negar usuários e grupos. Para isso, você deve usar uma das seguintes chaves, seguida dos valores que deseja permitir ou negar: DenyUsers, AllowUsers, DenyGroups e AllowGroups. Isso é concluído nesta ordem, portanto, mesmo se você permitir um usuário se ele estiver na seção “denyusers”, ele será negado.

Atualize o LoginGraceTime

Por padrão, a quantidade de tempo que uma pessoa tem para ficar parada sem fazer login é de dois minutos. Limitar isso ajudará a prevenir conexões não autorizadas. Uma sugestão típica é de um minuto ou menos. Defina a hora usando LoginGraceTime.

Personalização de configurações SSH

Criação de aliases

As opções de linha de comando do Ssh podem ser especificadas por meio de aliases em ssh_config. O seguinte alias permite que o usuário se conecte ao dev servidor com as opções especificadas simplesmente digitando ssh dev na linha de comando.

Isso executa o seguinte comando quando executado:

Observe que a porta ssh foi alterada para 22222 para impedir chamadas frias. Caso contrário, é uma conexão ssh muito simples, abreviada por muitos caracteres para sua conveniência.

Autenticação com pares de chaves seguros

O ssh é mais seguro e conveniente quando usado com pares de chaves públicas / privadas para autenticação, em vez de senhas. O arquivo ssh_config pode declarar uma chave específica para um host específico usando o IdentityFile chave.

Como nos exemplos anteriores, este comando ssh deve ser executado com ssh dev, executando o seguinte comando equivalente na linha de comando:

Configurando outras opções de ssh

As opções ssh abaixo são algumas das chaves mais comuns encontradas nos arquivos ssh_config.

Compression: Esta chave aceita “sim” ou “não” como argumentos e é usada para habilitar para desabilitar a compactação para um host. Normalmente, isso não é necessário, a menos que a conexão seja incrivelmente lenta.

LogLevel: Defina o nível de detalhe nos logs do lado do cliente ssh. Do menos detalhado ao mais detalhado, as opções são QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 e DEBUG3.

StrictHostKeyChecking: Defina uma preferência para adicionar hosts ao arquivo known_hosts. “Sim” nunca adicionará conhecidos_hosts. “Não” sempre será adicionado a known_hosts. “Ask”, que é a opção padrão, perguntará ao usuário antes de adicionar ao arquivo known_hosts. “Sim” fornece mais segurança contra ataques de cavalos de Tróia, mas pode ser entediante com um arquivo known_hosts mal gerenciado. “Não” é o menos seguro, mas pode tornar a conexão com um grande número de hosts temporários menos doloroso.

UserKnownHostsFile: Especifique o caminho para um arquivo known_hosts específico do usuário.

Encaminhamento de conexão

O ssh é freqüentemente usado para encaminhar conexões, permitindo que uma conexão local faça um túnel através de uma conexão remota. As seguintes opções podem ser usadas para configurar o encaminhamento de conexão.

LocalForward: Defina uma conexão para encaminhar o tráfego de uma porta local para uma máquina remota. Isso canaliza a conexão para fora da rede remota.

RemoteForward: Defina uma porta remota a ser encapsulada de uma porta local. Este é o inverso da opção acima.

DynamicForward: Configure uma porta local a ser usada com um protocolo de encaminhamento dinâmico.

Conclusão

A maioria das opções ssh_config existe para fornecer maneiras mais convenientes de realizar tarefas específicas usando o comando ssh. É uma maneira de configurar atalhos e apelidos complexos que ajudam a aumentar a segurança, tornando as partes mais seguras do ssh mais fáceis de usar.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Você pode gostar...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x