Servicio de gestión remota (SSH)

1. Descripción del concepto de servicio remoto

ssh Conexión remota segura 22 Servidor de internet El usuario root predeterminado puede iniciar sesión de forma remota
telnet Conexión remota 23 El equipo de red está conectado a la LAN en la sala de computadoras No se puede usar root para iniciar sesión de forma remota
El servicio remoto puede realizar host de administración de conexión remota

  El servicio remoto puede realizar descargas remotas y transmisión de datos

 
 

Utilice el servicio SSH telnet para lograr una conexión remota
SSH: método de transmisión de datos cifrados (mayor seguridad, mayor complejidad) Puerto de acceso a través de la conexión a Internet: 22 Admite conexión remota de usuario root a telnet de forma predeterminada
: método de transmisión de texto claro (menor seguridad, complicado Menos acceso) Puerto de acceso a través de conexión LAN: 23 Por defecto, los usuarios root tienen prohibido conectarse de forma remota

servicio telnet

El servicio del servidor telnet en el sistema Linux no admite el inicio de sesión del usuario root y solo puede iniciar sesión como usuario normal, seguido del comando su

ssh @ root 172.16 en el sistema Linux . 1.41 representa al usuario actual cuando no se agrega ningún usuario

Segundo, el principio de conexión de servicio remoto.

2.1 diagrama de conexión ssh

 

 

2.2 proceso de conexión ssh

Cliente: enviar solicitud de comunicación de establecimiento de conexión
Servidor: confirmar confirmación de información de clave
Cliente: realizar confirmación de información de clave
Servidor: enviar información de clave pública para enviar
Cliente: recibir clave pública para guardar y enviar información de confirmación (~ / .ssh / known_hosts)
Servidor: envíe información de verificación de contraseña (procesamiento de cifrado)
Servidor: ingrese información de contraseña (procesamiento de cifrado)
Se establece la conexión de
datos y se transmiten los datos (procesamiento de cifrado)

Tres, conexión remota

3.1 Conexión remota basada en contraseña

Pasos: 
①: ssh + dirección IP 
②: ingrese el nombre de usuario (nombre de host) 
③: ingrese la contraseña (contraseña del nombre de host correspondiente) 

Por ejemplo: 
①: ssh  10.0 . 0.8 
②: root 
③: abc123

3.2 Conexión remota basada en clave

3.2.1 Configuración simple:

Servidor de gestión (m01-192.168.81.161):

Paso 1: crea un par de claves
[root@m01 ~]# ssh-keygen -t dsa 生成公钥和私钥
[root@m01 ~]# ll ~/.ssh/id*
Paso 2: El extremo de administración distribuye la clave pública (se requiere interacción aquí)
[root@m01 ~]# ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]
Paso 3: realice una prueba de conexión remota (puede conectarse directamente sin ingresar la información de contraseña)
[root@m01 ~]# ssh [email protected] hostname

En este momento, hay dos problemas: 1. ¿Cómo administrar múltiples hosts en lotes? 2. ¿Cómo escribir scripts para distribuir claves públicas en lotes?

La forma más fácil de escribir scripts: comandos de montón

#! / bin / bash
 para ip en  163  164 
do 
    ssh -copy- id -i / root /. ssh /id_dsa.pub root @ 192.168 . 81. $ Ip
 hecho

Pero todavía hay problemas:

1, necesita confirmar sí / no

2. Necesita ingresar información de contraseña

3. El número de puerto de servicio ha cambiado, ¿cómo distribuir la clave pública?

3.2.2 Realice la entrada interactiva sin clave de información de contraseña para distribuir la clave pública

El primer paso: descargar e instalar el software sshpass
 yum  install - y sshpass El 
segundo paso: ejecutar el comando para distribuir la clave pública sin interacción 
sshpass -p123456 ssh -copy- id -i / root /. Ssh / id_dsa.pub root @ 192.168 . 81.163 

servicio El número de puerto ha cambiado, cómo distribuir las claves públicas en lotes: 
sshpass -p123456 ssh -copy- id -i / root /. Ssh /id_dsa.pub root @ 192.168 . 81.163 -p 52113  " -o StrictHostKeyChecking = no "

3.2.3  Distribución por lotes de scripts de clave pública:

1. Prepare el archivo de dirección de host para cooperar con el script:

cat / server / scripts / ip_list.txt
 192.168 . 81.163 
192.168 . 81.164 
192.168 . 81,165

2. Script para la distribución de claves públicas en lotes :

# cat distribution_public_key. sh  
    # ! / bin / bash
     para ip en $ ( cat / server / scripts / ip_list.txt)
     do 
       sshpass -p654321 ssh -copy- id -i / root /. ssh /id_rsa.pub $ ip -o StrictHostKeyChecking = no &> / dev / null 
      if [$? -eq 0 ]
         luego 
           echo   " a $ ip distribution_key " 
           echo   " clave pública distribuir éxito " 
           echo   "" 
        else 
           echo   "a $ ip distribuir_clave " 
           echo   " clave pública distribuir faild " 
           echo   " " 
      fi 
    hecho

3. Distribuya la secuencia de comandos de verificación de clave pública (secuencia de comandos de gestión de lotes) -serial serie

[root @ m01 scripts] # cat check_pub_key. sh  
# ! / bin / bash 
CMD = $ 1 
para ip en $ ( cat / server / scripts / ip_list.txt)
 do 
    echo  " ==================== host $ ip check ==================== " 
    ssh $ ip $ CMD 
echo " "
hecho

Cuatro, análisis del archivo de configuración del servicio SSH

/ etc / ssh / sshd_config
 Puerto 22                  --- Especifique la información del puerto de inicio del servicio (el puerto predeterminado del estado de comentario predeterminado es 22)    
 ListenAddress 0.0 . 0.0       --- ¿Qué red puede conectarse a través de qué tarjeta de red? ****** 
                              PD: Dirección de escucha Debe ser la dirección
 PermitRootLogin no en la tarjeta de red local, ya sea para permitir que el usuario raíz se conecte de forma remota, se recomienda cambiar a No
 PermitEmptyPasswords no --- ya sea para permitir que los usuarios remotos inicien sesión con una contraseña vacía, se recomienda cambiar a no
 PasswordAuthentication sí, si es compatible Use la contraseña para conectarse de forma remota a
 GSSAPIA Autenticación no, ya sea que apague el modo de autenticación GSSAPI, apague UseDNS no cuando no esté en uso,
 ya sea para activar la resolución inversa de DNS, se recomienda desactivarla

 

En quinto lugar, el ejercicio de la clave pública de distribución por lotes del entorno empresarial

5.1 Entorno corporativo

m01 root   linux @ 123   ssh service puerto 22 
web01 root linux @ 123   ssh service puerto 65531 
web02 root linux @ 123   ssh service puerto 65532 
nfs01 root linux @ 123   ssh service puerto 65533 
backup root   linux @ 123   ssh service puerto 65534

5.2 Escribir archivo de información del host

cat / server / scripts / ip_list.txt
 192.168 . 81.162 : linxu @ 123 : 65531 
192.168 . 81.163 : linxu @ 123 : 65532 
192.168 . 81.164 : linxu @ 123 : 65533 
192.168 . 81.165 : linxu @ 123 : 65534
      

5.3 Escribir archivos de clave pública para la distribución por lotes

# cat distribution_public_key. sh  
# ! / bin / bash
       para el host en $ ( cat / server / scripts / ip_list.txt)
       do 
        host_ip = $ ( echo $ host | awk -F " : "  ' {print $ 1} ' ) 
        host_pass = $ ( echo $ host | awk -F " : "  ' {print $ 2} ' ) 
        host_port = $ ( echo $ host | awk-F " : "  ' {print $ 3} ' ) 
        sshpass -p $ host_pass ssh -copy- id -i / root /. ssh /id_rsa.pub $ host_ip -o StrictHostKeyChecking = no -p $ host_port &> / dev / null 
        if [$? -eq 0 ]
         luego 
           echo   " a $ host_ip distribuir_clave " 
           echo   " clave pública distribuir ok " 
           echo   "" 
        más 
           echo   " a $ host_ip distribuir_clave " 
           echo   "
           echo   "" 
        fi 
      hecho

 

Seis, programa de intrusión de prevención de servicio remoto SSH

1. Inicie sesión con una clave e inicie sesión en la máquina VPN / bastión sin contraseña 
2. Método de matriz: resuelva el problema de seguridad SSH 
  a. El cortafuegos cierra SSH y especifica las restricciones de IP de origen (LAN, red pública de confianza) 
  b. Abra SSH y solo escuche el local IP de red (ListenAddress 192.168.81.162) 
3. Intente no darle al servidor una IP de red externa 
4. Minimice (autorización de instalación de software) 
5. Haga una huella digital para archivos o comandos importantes del sistema / etc / profile /etc/rc.local 
/ etc / passwd md5sum 11110000aaaabbbb monitoreo
inotify / bin monitoreo
6, los archivos importantes están bloqueados chattr + i + a

Siete, problemas comunes con la transmisión remota

Al leer la información del archivo usando mientras lee la línea, el bucle se interrumpe repentinamente. 
Punto de análisis 01: el bucle es correcto cuando no se usa el comando ssh. 
Punto de análisis 02: siempre que el comando ssh tenga una entrada estándar, el bucle 
analiza correctamente el punto 03: cambie el modo de bucle. que circula adecuadamente 
punto 04 analizar: el comando ssh a un segundo plano, en la horquilla situada 

usando el comando cat para leer un archivo, toda la información será puesta en el búfer de memoria en 
el tiempo, pero mientras búfer de lectura lee cada línea de la información, lo normal
 Lea línea por línea mientras lee línea +   ssh   para leer el búfer vacío

 

 

  

 

Supongo que te gusta

Origin www.cnblogs.com/nsthink-666/p/12731559.html
Recomendado
Clasificación