- 1. Como editar o arquivo ssh_config do Linux
- 2. Como bloquear arquivos SSH do Linux
- 3. Como confirmar o protocolo SSH versão 2 Linux
- 4. Como desativar senhas vazias SSH Linux
- 5. Como desativar o login raiz SSH Linux
- 6. Como definir uma nova porta SSH do Linux
- 7. Como restringir o acesso SSH Linux
- 8. Como atualizar o tempo de tolerância do SSH Linux
- 9. Como criar um alias SSH Linux
- 10. Autenticação com chaves seguras SSH Linux
Um dos protocolos mais utilizados a nível de segurança para estabelecer ligações em ambientes UNIX é o protocolo SSH (Secure Shell) que nos oferece uma série de funcionalidades e características especiais para proteger os dados e as ligações efetuadas.
SSH é um protocolo que foi desenvolvido com foco na segurança das comunicações entre dois sistemas através do modelo cliente / servidor e graças ao qual os usuários podem se conectar a um host remotamente.
Uma das principais características do SSH é que ele criptografa a sessão de conexão, o que impede que qualquer usuário obtenha senhas não criptografadas.
Tipos de proteçãoAo usar o protocolo SSH, teremos os seguintes tipos de proteção:
- Assim que a conexão inicial for estabelecida, o cliente pode verificar se está se conectando ao mesmo servidor ao qual se conectou anteriormente
- O cliente envia as informações de autenticação para o servidor por meio de criptografia de 128 bits
- Todos os dados enviados e recebidos durante a sessão são transferidos usando criptografia de 128 bits, o que torna difícil decifrar e ler
- O cliente tem a oportunidade de encaminhar aplicativos X11 do servidor, esta é uma técnica chamada de encaminhamento X11 que fornece um meio seguro de usar aplicativos gráficos em uma rede local ou externa.
Agora, nos sistemas operacionais Linux encontramos o arquivo de configuração SSH no caminho / etc / ssh / ssh_config e graças a este arquivo será possível realizar todas as medidas de segurança para conexões SSH.
PROLONGAR
Para sistemas macOS, esse arquivo está localizado no caminho / private / etc / ssh / ssh_config e possui um link simbólico para / etc / ssh / ssh_config para fins de compatibilidade.
Ao editar este arquivo, devemos ter em mente o seguinte.
- Linhas vazias e linhas que começam com '#' são comentários
- Cada linha começa com uma palavra-chave, seguida por argumento (s)
- As opções de configuração podem ser separadas por espaços em branco ou opcionais e um sinal =
- Os argumentos podem ser colocados entre aspas duplas (") para especificar os argumentos que contêm espaços
1. Como editar o arquivo ssh_config do Linux
Para editar este arquivo a fim de estabelecer os valores adequados, devemos executar o seguinte com um editor:
sudo nano / etc / ssh / ssh_configVeremos o seguinte:
PROLONGAR
O arquivo ssh_config é organizado por hosts e cada host contém configurações específicas para aquele host em particular, onde podemos usar curingas como * para combinar vários nomes de host com uma única instrução.
Alguns dos parâmetros que podemos usar neste arquivo são:
HospedarRestrinja as instruções que são apenas para hosts que correspondem a um dos padrões fornecidos após a palavra-chave.
PartidaRestrinja as declarações para se aplicarem apenas a hosts que correspondam aos critérios especificados
AddressFamilyEspecifica qual família de endereços usar ao conectar, os argumentos válidos são: any, inet, inet6.
BatchModeCom este valor a consulta de senha será desabilitada, evitando assim o bloqueio acidental em uma solicitação de senha
BindAddressEspecifica o uso do endereço especificado na máquina local como o endereço de origem da conexão.
ChallengeResponseAuthenticationIndica se deve usar autenticação de desafio-resposta. Este é principalmente um método legado e foi substituído por KbdInteractiveAuthentication
CheckHostIPDiga ao ssh para verificar adicionalmente o endereço IP do host no arquivo known_hosts.
CifraRefere-se à criptografia que será usada para criptografar a sessão na versão 1 do protocolo.
CifrasEspecifica as cifras permitidas para a versão 2 do protocolo em ordem de preferência.
A seguir, veremos algumas dicas práticas para melhorar a segurança das conexões SSH com o Linux e, assim, obter o melhor desempenho de acesso.
2. Como bloquear arquivos SSH do Linux
O primeiro passo antes de editar o arquivo é certificar-se de que tanto o arquivo ssh_config quanto o arquivo sshd_config tenham o proprietário e o usuário configurados como root, isso porque ele é o superusuário do Linux e ninguém melhor do que este é o proprietário.
Para isso, executamos o seguinte:
sudo chown root: root / etc / ssh / sshd_config sudo chmod og-rwx / etc / ssh / sshd_config
3. Como confirmar o protocolo SSH versão 2 Linux
A versão 2 do SSH tem um algoritmo de troca de chave aprimorado que não é vulnerável à falha de segurança na versão 1, melhorando assim a segurança geral das conexões, por isso é ideal para confirmar que o novo protocolo 2 está sendo usado em vez do protocolo 1 e para isso devemos confirmar a seguinte linha no arquivo ssh_config:
Protocolo 2
PROLONGAR
Lá também podemos configurar o protocolo implicitamente por meio de Cifras, que definirá automaticamente o Protocolo para 2 para usar Cifras modernas, para isso validamos a seguinte linha logo abaixo da linha de Protocolo:
Cifras aes128-ctr, aes192-ctr, aes256-ctr
4. Como desativar senhas vazias SSH Linux
É importante validar que cada conta SSH deve utilizar uma senha para o login, bloqueando senhas vazias que permitiriam um acesso simples causando riscos de segurança no sistema, para validar usaremos a seguinte linha ou, caso não exista, nós irá adicioná-lo colocando o símbolo #:
PermitEmptyPasswords no
PROLONGAR
5. Como desativar o login raiz SSH Linux
Ao impedir o login do usuário root, será possível bloquear contas específicas e impedir seu uso em todo o sistema. As opções de PermitRootLogin incluem "sim", "sem senha", "apenas comandos forçados" ou "não". O padrão é "sim". Para interromper completamente o login do root, usaremos a seguinte linha:
PermitRootLogin no
PROLONGAR
6. Como definir uma nova porta SSH do Linux
Por padrão, a porta atribuída para SSH é 22, para que os invasores saibam com certeza por qual porta eles acessarão para realizar seus ataques, portanto, um bom método de segurança é alterar essa porta padrão e indicar apenas os usuários autorizados.
Para isso, devemos localizar a linha da porta e adicionar a seguinte sintaxe:
Porta XXXXX
PROLONGAR
7. Como restringir o acesso SSH Linux
Caso o acesso ao servidor SSH seja composto por vários usuários, é possível aplicar certas restrições criando grupos onde esses usuários estão incluídos, isso é possível adicionando palavras-chave como:
AllowUsers (Permitir o acesso do usuário) AllowGroups (Permitir o acesso do grupo) DenyUsers (Restringir o acesso do usuário) DenyGroups (Restringir o acesso do grupo)Por exemplo, podemos executar o seguinte no arquivo de configuração:
AllowUsers Solvetic testa teste DenyGroups
8. Como atualizar o tempo de tolerância do SSH Linux
Por padrão, a quantidade de tempo que um usuário pode permanecer inativo sem fazer login é de dois minutos, a fim de ajudar a evitar conexões não autorizadas ao sistema, este tempo pode ser editado na linha LoginGraceTime aumentando ou diminuindo este clima:
LoginGraceTime 1m
PROLONGAR
9. Como criar um alias SSH Linux
Dentro das configurações SSH é possível especificar um alias, estes permitem conectar a um servidor específico através de uma porta e usuários definidos, por exemplo, podemos adicionar o seguinte:
Host dev HostName dev.solvetic.com Porta 3333 User SolveticNeste caso específico, devemos acessar o seguinte:
ssh [email protected] -p 3333
10. Autenticação com chaves seguras SSH Linux
O ssh será muito mais seguro e útil quando usado com pares de chaves públicas / privadas para fins de autenticação, em vez de usar senhas. O arquivo ssh_config pode declarar uma chave específica para um host específico usando a chave IdentityFile, neste caso, inseriríamos o seguinte:
Host dev HostName dev.solvetic.com Porta 3333 User Solvetic IdentityFile ~ / .ssh / dev.solvetic.keyPara este caso, a conexão seria a seguinte:
ssh -i ~ / .ssh / dev.solvetic.key [email protected] -p 3333Alguns parâmetros adicionais são:
CompressãoLá, podemos usar valores como sim ou não para habilitar a desabilitação da compactação para um host.
LogLevelPermite definir o nível de detalhamento dos logs para o cliente ssh, as opções são QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 e DEBUG3.
StrictHostKeyCheckingDefina uma preferência para adicionar hosts ao arquivo known_hosts.
Assim, temos diferentes opções para melhorar a segurança e a conectividade SSH no Linux.