Compartilhamento de tecnologia

Computação em Nuvem [Fase 1 (29)] Acesso e Controle Remoto

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Gerenciamento remoto SSH

1.1.Protocolo ssh (secureshell)

  • é um protocolo de canal seguro
  • Os dados de comunicação são criptografados para funções de gerenciamento remoto
  • O protocolo SSH criptografa a transmissão de dados entre as partes em comunicação, incluindo a senha do usuário inserida quando o usuário faz login.
  • Um protocolo de segurança baseado na camada de aplicação e na camada de transporte.
  • Cliente SSH<--------------------------------->Servidor SSH
    A transmissão de dados é criptografada para evitar vazamento de informações
    A transferência de dados é compactada, o que aumenta a velocidade de transferência

1.2, OpenSSH

Nome do serviço: sshd
Programa principal do servidor: /usr/sbin/sshd
Arquivo de configuração do servidor: /etc/ssh/sshd config

Cliente SSH: Putty, Xshell, CRT, MobaXterm, FinalShell
Servidor SSH: OpenSSH

Servidor SSH: Por padrão, a porta TCP 22 é usada e a versão do protocolo de segurança é sshv2, há também 1 (com lacunas).

O servidor ssh inclui principalmente duas funções de serviço: link remoto ssh e serviço sftp.

Função: O serviço SSHD utiliza o protocolo SSH para realizar controle remoto ou transferência de arquivos entre computadores.
Comparado com o uso anterior do Telnet para transferir arquivos, é muito mais seguro porque o Telnet usa transmissão de texto não criptografado e o SSH usa transmissão criptografada.

OpenSSH é um projeto de software de código aberto que implementa o protocolo SSH e é adequado para vários sistemas operacionais UNIX e Linux. O sistema Centos 7 possui pacotes de software relacionados ao openssh instalados por padrão, e o serviço sshd é adicionado para iniciar automaticamente na inicialização.

[No entanto, a versão 7 apresenta problemas e vulnerabilidades e precisa ser atualizada. A versão mais recente é atualmente a 9.8.]

Ver versão:ssh -V


Execute o comando "systemctl start sshd" para iniciar o serviço sshd

Tanto ssh_config quanto sshd_config são arquivos de configuração para o servidor ssh. A diferença entre os dois é que o primeiro é um arquivo de configuração para o cliente e o último é um arquivo de configuração para o servidor.

O SSH é basicamente usado para gerenciar remotamente sistemas Linux. O motivo é muito simples: métodos de transmissão como telnet e FTP transmitem informações de autenticação do usuário em texto não criptografado, o que é inerentemente inseguro e representa um risco de espionagem na rede. SSH (Secure Shell) é atualmente mais confiável.
É um protocolo projetado para fornecer segurança para sessões de login remoto e outros serviços de rede. O uso do protocolo SSH pode prevenir efetivamente o vazamento de informações durante o gerenciamento remoto. Todos os dados transmitidos podem ser criptografados por meio de SSH, e a falsificação de DNS e de IP também pode ser evitada.
 

1.3. Método de login remoto SSH

1.3.1 Método de login um.
ssh [nome de usuário do host remoto] @[nome do host do servidor remoto ou endereço IP] -p porta

Se você quiser usar nome de usuáriolisiA identidade conectada ao endereço IP é192.168.1.100servidor, e o serviço SSH do servidor é executado na porta22, você deve usar o seguinte comando:

当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。

apegado

mapeamento de host

1.3.2 Método de login dois.
ssh -l [nome de usuário do host remoto] [nome do host do servidor remoto ou endereço IP] -p porta
-l: opção -l, especifica o nome de login.
-p: opção -p, especifica a porta de login (quando a porta do servidor não é o padrão, você precisa usar -p para especificar a porta para efetuar login)

(pouco usado)

Consulta sobre chave pública

Consulta no cliente

O servidor consulta sua própria chave pública

Nota: O sistema não salva as informações do host remoto ao efetuar login no servidor pela primeira vez. Para confirmar a identidade do host, o usuário será questionado se deseja continuar a conexão. Digite sim e depois faça login. Neste momento, o sistema gravará as informações do servidor remoto em $HOME no diretório inicial do usuário /.ssh/known_hosts. Na próxima vez que você fizer login, porque as informações do host foram salvas, você não será solicitado novamente. .

O OpenSSH verificará a chave pública na próxima vez que você acessar o mesmo computador. Se as chaves públicas forem diferentes, o OpenSSH emitirá um aviso para protegê-lo de ataques como DNS Hijack.
Solução
1. Ao efetuar login no host remoto via ssh, adicione a opção "-o StrictHostKeyChecking=no", conforme segue:

ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx

2. Uma maneira de remover completamente esse prompt é modificar a configuração no arquivo /etc/ssh/ssh_config (ou $HOME/.ssh/config) e adicionar as duas linhas de configuração a seguir:
StrictHostKeyChecking não
Arquivo de hosts conhecidos pelo usuário /dev/null

Mas é melhor não adicionar

2. Configuração e gerenciamento de serviços

Servidor de configuração geral

vim /etc/ssh/sshd_config

A porta precisa ser alterada para evitar que outras pessoas a quebrem violentamente.

ListenAddress define o endereço IP vinculado ao servidor SSHD, 0.0.0.0 significa ouvir todos os endereços
Sugestão de segurança: Se o host não precisar de acesso SSH da rede pública, você pode alterar o endereço de escuta para o endereço da rede interna. Este valor pode ser escrito como o endereço IP local ou todos os endereços, ou seja, 0.0.0.0 representa todos. IPs.

Quando alguém faz login no sistema usando SSH, o SSH registrará informações. O tipo de informação a ser registrada é AUTHPRIV. O log do serviço sshd é armazenado em: /var/log/secure.

De modo geral, para determinar se a origem do cliente é normal e legítima, o DNS será usado para verificar o nome do host do cliente. Porém, geralmente ao se interconectar na intranet, essa base é definida como não, portanto a velocidade da conexão será. seja mais rápido.
Nota: Desative a resolução reversa de DNS para melhorar a velocidade de resposta do servidor

Bem como algumas configurações de segurança e ajustes de segurança

Permitir login raiz Para permitir o login root, o padrão é permitido, mas é recomendado defini-lo como não.Um servidor de ambiente de produção real não permite que a conta root faça login diretamente., apenas usuários comuns têm permissão para fazer login. Você precisa usar o usuário root e depois mudar para o usuário root.

Autenticação de Senha sim
A verificação da senha é obviamente necessária, então você pode escrever sim aqui ou defini-la como não. Em servidores de produção reais, de acordo com diferentes requisitos de nível de segurança, algumas configurações não exigem login com senha e você pode fazer login por meio da autenticação. chave.

Permitir senhas vazias não
Se será permitido que usuários com senhas vazias efetuem login. O padrão é não. O login com senhas vazias não é permitido.

PrintLastLog sim
Exibir informações do último login! O padrão é sim

MaxAuthTenta 6
Especifica o número máximo de autenticações permitidas por conexão. O valor padrão é 6.
Se o número de autenticações com falha exceder a metade desse valor, a conexão será desconectada à força e mensagens adicionais de log de falhas serão geradas.
Padrão 3 vezes

Habilitar módulo pam

Comente

Lista preta e branca

PermitirUsuários
Quando você deseja permitir ou proibir apenas o login de determinados usuários, você pode usar a configuração AllowUsers ou DenyUsers. O uso dos dois é semelhante (tenha cuidado para não usá-los ao mesmo tempo).
ConfigurarAllowUsers
Por exemplo, se apenas os usuários zhangsan e wangwu tiverem permissão para fazer login em outros usuários (lisi)

adicionar à
Permitir usuários [email protected] wangwu

3. Faça login usando a chave

Dividido em 3 etapas:

O cliente gera a chave (chave pública e chave privada) no cliente Xshell;

Coloque a chave pública no arquivo ~/.ssh/authorized_key do servidor Linux;

Configure o cliente ssh (cliente Xshell) para efetuar login usando uma chave

3.1. Login de chave no xshell

1. Primeiro gere a chave pública na ferramenta xshell

Ajuste o comprimento de 2048, basta seguir o próximo passo, você pode definir o nome e a senha

Após a conclusão da geração, haverá uma chave pública, salve-a

arquivos terminando em pub

Então abra nossa máquina Linux

Mude para o diretório ~/.shh (você precisa fazer ssh pela primeira vez sem senha, caso contrário, pode não haver arquivo .shh)

Carregar chave pública

Claro, você também precisa alterá-lo para o nome padrãoauthorized_keys

Gerar backup de chave privada

Login sem senha

login bem-sucedido

3.1.1 O processo de login usando uma chave

3.2. Gerar login de chave no Linux

Prepare um trampolim

A opção “-t” do comando ssh-keygen é usada para especificar o tipo de algoritmo para gerar chaves públicas e privadas.

ssh-cópia-id [email protected]

usarssh-copy-idferramenta: Isso cuidará automaticamente do processo de cópia da chave pública. Este comando tratará automaticamente da cópia da sua chave pública.id_rsa.pubO conteúdo da chave pública é anexado ao servidor remoto~/.ssh/authorized_keysno arquivo.

 digite a senha: Como esta é a primeira vez que você se conecta a um servidor remoto dessa forma, pode ser solicitado que você insira a senha do usuário root remoto.

Login via Springboard 79 19

ssh [email protected]

Modificar permissões

vim /etc/ssh/sshd_config

Nas linhas 17, 43, 65

Reinicie o serviço sshd

tente novamente

Especifique a porta, sucesso

4. Atualize o servidor Linux para a versão mais recente do openssh9.8

O conteúdo é migrado para recursos de arquivo

O algoritmo de assinatura DSA está desabilitado por padrão

Preparando Arquivos

abre site oficialOpenSSH: Notas de lançamento

Como o openssh9.8p1 ​​​​exige que a versão do openssl seja maior ou igual a 1.1.1, o openssl precisa ser atualizado e instalado.

Website oficialLançamento OpenSSL 1.1.1v · openssl/openssl · GitHub