Compartir tecnología

Computación en la nube [Fase 1 (29)] Acceso y control remoto

2024-07-12

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

1. Gestión remota SSH

1.1. protocolo ssh (secureshell)

  • es un protocolo de canal seguro
  • Los datos de comunicación están cifrados para funciones de gestión remota.
  • El protocolo SSH cifra la transmisión de datos entre las partes que se comunican, incluida la contraseña de usuario ingresada cuando el usuario inicia sesión.
  • Un protocolo de seguridad basado en la capa de aplicación y la capa de transporte.
  • Cliente SSH<--------------------------------->Servidor SSH
    La transmisión de datos está cifrada para evitar la fuga de información.
    La transferencia de datos se comprime, lo que aumenta la velocidad de transferencia.

1.2, abre ssh

Nombre del servicio: sshd
Programa principal del servidor: /usr/sbin/sshd
Archivo de configuración del servidor: /etc/ssh/sshd config

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

Servidor SSH: de forma predeterminada, se utiliza el puerto TCP 22 y la versión del protocolo de seguridad es sshv2 Además de 2, también hay 1 (con lagunas).

El servidor ssh incluye principalmente dos funciones de servicio: enlace remoto ssh y servicio sftp.

Función: El servicio SSHD utiliza el protocolo SSH para realizar control remoto o transferir archivos entre computadoras.
En comparación con el uso anterior de Telnet para transferir archivos, es mucho más seguro porque Telnet usa transmisión de texto claro y SSH usa transmisión cifrada.

OpenSSH es un proyecto de software de código abierto que implementa el protocolo SSH y es adecuado para varios sistemas operativos UNIX y Linux. El sistema Centos 7 tiene paquetes de software relacionados con openssh instalados de forma predeterminada y el servicio sshd se agrega para iniciarse automáticamente en el arranque.

[Sin embargo, la versión 7 tiene problemas y vulnerabilidades y necesita ser actualizada. La última versión es actualmente 9.8].

Ver versión:ssh-V


Ejecute el comando "systemctl start sshd" para iniciar el servicio sshd

Tanto ssh_config como sshd_config son archivos de configuración para el servidor ssh. La diferencia entre los dos es que el primero es un archivo de configuración para el cliente y el segundo es un archivo de configuración para el servidor.

SSH se utiliza básicamente para administrar sistemas Linux de forma remota. La razón es muy simple: los métodos de transmisión como telnet y FTP transmiten información de autenticación del usuario en texto claro, lo cual es intrínsecamente inseguro y presenta un riesgo de escuchas ilegales en la red. SSH (Secure Shell) es actualmente más confiable.
Es un protocolo diseñado para brindar seguridad para sesiones de inicio de sesión remotas y otros servicios de red. El uso del protocolo SSH puede prevenir eficazmente la fuga de información durante la administración remota. Todos los datos transmitidos se pueden cifrar a través de SSH, y también se puede evitar la suplantación de DNS y la suplantación de IP.
 

1.3. Método de inicio de sesión remoto SSH

1.3.1. Método de inicio de sesión uno.
ssh [nombre de usuario del host remoto] @[nombre de host del servidor remoto o dirección IP] -p puerto

Si desea utilizar el nombre de usuariolisiLa identidad conectada a la dirección IP es192.168.1.100servidor, y el servicio SSH del servidor se ejecuta en el puerto22, debes usar el siguiente comando:

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

adjunto

mapeo de host

1.3.2. Método de inicio de sesión dos.
ssh -l [nombre de usuario del host remoto] [nombre de host del servidor remoto o dirección IP] -p puerto
-l: opción -l, especifica el nombre de inicio de sesión.
-p: opción -p, especifica el puerto de inicio de sesión (cuando el puerto del servidor no es el predeterminado, debe usar -p para especificar el puerto para iniciar sesión)

(no muy usado)

Consulta sobre clave pública

Consulta sobre el cliente

El servidor consulta su propia clave pública.

Nota: El sistema no guarda la información del host remoto cuando inicia sesión en el servidor por primera vez. Para confirmar la identidad del host, se le preguntará al usuario si desea continuar con la conexión. En este momento, el sistema escribirá la información del servidor remoto en $HOME en el directorio de inicio del usuario /.ssh/known_hosts. La próxima vez que inicie sesión, debido a que la información del host se guarda, no se le solicitará nuevamente. .

OpenSSH comprobará la clave pública la próxima vez que acceda a la misma computadora. Si las claves públicas son diferentes, OpenSSH emitirá una advertencia para protegerlo de ataques como el secuestro de DNS.
Solución
1. Al iniciar sesión en el host remoto a través de ssh, agregue la opción "-o StrictHostKeyChecking=no", de la siguiente manera:

ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx

2. Una forma de eliminar completamente este mensaje es modificar la configuración en el archivo /etc/ssh/ssh_config (o $HOME/.ssh/config) y agregar las siguientes dos líneas de configuración:
No se permite la comprobación estricta de claves de host
Archivo de hosts conocidos por el usuario /dev/null

Pero es mejor no añadir

2. Configuración y gestión del servicio

Servidor de configuración general

vim /etc/ssh/sshd_config

Es necesario cambiar el puerto para evitar que otros lo rompan violentamente.

ListenAddress establece la dirección IP vinculada al servidor SSHD, 0.0.0.0 significa escuchar todas las direcciones
Sugerencia de seguridad: si el host no necesita acceso SSH desde la red pública, puede cambiar la dirección de escucha a la dirección de la red interna. Este valor se puede escribir como la dirección IP local o como todas las direcciones, es decir, 0.0.0.0 representa todas. IP.

Cuando alguien inicia sesión en el sistema usando SSH, SSH registrará información. El tipo de información que se registrará es AUTHPRIV. El registro del servicio sshd se almacena en: /var/log/secure.

En términos generales, para determinar si la fuente del cliente es normal y legítima, se utilizará DNS para verificar el nombre de host del cliente. Sin embargo, generalmente cuando se interconecta dentro de la intranet, esta base se establece en no, por lo que la velocidad de conexión será igual. se más rápido.
Nota: deshabilite la resolución inversa de DNS para mejorar la velocidad de respuesta del servidor

Además de algunas configuraciones de seguridad y ajustes de seguridad.

Permitir inicio de sesión raíz Ya sea para permitir el inicio de sesión de root, el valor predeterminado está permitido, pero se recomienda configurarlo en no.Un servidor de entorno de producción real no permite que la cuenta raíz inicie sesión directamente., solo los usuarios normales pueden iniciar sesión. Debe utilizar el usuario raíz y luego cambiar al usuario raíz.

Autenticación de contraseña
Por supuesto, se requiere la verificación de contraseña, por lo que puede escribir sí aquí, o puede configurarlo en no. En servidores de producción reales, de acuerdo con los diferentes requisitos de nivel de seguridad, algunas configuraciones no requieren inicio de sesión con contraseña y puede iniciar sesión a través de la autenticación. llave.

PermitirContraseñasVacías No
Si se permite que los usuarios con contraseñas vacías inicien sesión. El valor predeterminado es no. No se permite el inicio de sesión con contraseñas vacías.

ImprimirÚltimo registro sí
¡Muestre la información del último inicio de sesión! El valor predeterminado es sí

Máximo de intentos de autenticación 6
Especifica el número máximo de autenticaciones permitidas por conexión. El valor predeterminado es 6.
Si el número de autenticaciones fallidas supera la mitad de este valor, la conexión se desconectará a la fuerza y ​​se generarán mensajes de registro de errores adicionales.
Predeterminado 3 veces

Habilitar módulo pam

Comentario

lista en blanco y negro

Permitir usuarios
Cuando desee permitir o prohibir que solo ciertos usuarios inicien sesión, puede usar la configuración AllowUsers o DenyUsers. El uso de los dos es similar (tenga cuidado de no usarlos al mismo tiempo).
ConfigurarPermitirUsuarios
Por ejemplo, si solo los usuarios zhangsan y wangwu pueden iniciar sesión con otros usuarios (lisi)

añadir
Permitir usuarios [email protected] wangwu

3. Inicie sesión con la clave

Dividido en 3 pasos:

El cliente genera la clave (clave pública y clave privada) en el cliente Xshell;

Coloque la clave pública en el archivo ~/.ssh/authorized_key del servidor Linux;

Configure el cliente ssh (cliente Xshell) para iniciar sesión usando una clave

3.1. Inicio de sesión con clave en xshell

1. Primero genere la clave pública en la herramienta xshell

Ajuste la longitud de 2048, solo siga el siguiente paso, puede configurar el nombre y la contraseña

Una vez completada la generación, habrá una clave pública, guárdela

archivos que terminan en pub

Luego abra nuestra máquina Linux.

Cambie al directorio ~/.shh (la primera vez debe realizar ssh sin contraseña; de lo contrario, es posible que no haya ningún archivo .shh)

Cargar clave pública

Por supuesto, también debe cambiarlo al nombre estándar autorizado_keys

Generar copia de seguridad de clave privada

Inicio de sesión sin contraseña

Inicio de sesión correcto

3.1.1. El proceso de iniciar sesión mediante una clave.

3.2. Generar clave de inicio de sesión en Linux

Prepara un trampolín

La opción "-t" del comando ssh-keygen se utiliza para especificar el tipo de algoritmo para generar claves públicas y privadas.

ssh-copy-id raí[email protected]

usarssh-copy-idherramienta: Esto manejará automáticamente el proceso de copia de la clave pública. Este comando manejará automáticamente la copia de su.id_rsa.pubEl contenido de la clave pública se adjunta al servidor remoto.~/.ssh/authorized_keysen el archivo.

 introducir la contraseña: Dado que esta es la primera vez que se conecta a un servidor remoto de esta manera, es posible que se le solicite que ingrese la contraseña del usuario raíz remoto.

Iniciar sesión a través de Springboard 79 19

raíz [email protected]

Modificar permisos

vim /etc/ssh/sshd_config

En las líneas 17, 43, 65

Reiniciar el servicio sshd

intentar otra vez

Especificar puerto, éxito

4. Actualice el servidor Linux a la última versión de openssh9.8

El contenido se migra a recursos de archivos.

El algoritmo de firma DSA está deshabilitado de forma predeterminada

Preparando archivos

sitio web oficial de opensshOpenSSH: Notas de la versión

Dado que openssh9.8p1 ​​​​requiere que la versión de openssl sea mayor o igual a 1.1.1, es necesario actualizar e instalar openssl.

Página web oficialLanzamiento de OpenSSL 1.1.1v · openssl/openssl · GitHub