Acceso y control remoto de Linux

Acceso y control remoto de Linux

1. Gestión remota SSH

1. Protocolo SSH

  • SSH es un protocolo de canal seguro, que se utiliza principalmente para realizar funciones de inicio de sesión remoto y copia remota de la interfaz de caracteres

  • El protocolo SSH cifra la transmisión de datos entre las partes de la comunicación, incluida la contraseña de usuario ingresada cuando el usuario inicia sesión, por lo que el protocolo SSH tiene buena seguridad.

  • Cliente SSH: Putty, Xshell, CRT

  • Servidor SSH: OpenSSH

2 、 OpenSSH

  • 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 ha instalado paquetes relacionados con openssh de forma predeterminada, y ha agregado el servicio sshd como inicio
  • Ejecute el comando systemctl start sshd para iniciar sshd
  • El servicio sshd usa el puerto TCP 22 de forma predeterminada
  • El archivo de configuración predeterminado del servicio sshd es / etc / ssh / sshd_config

Inserte la descripción de la imagen aquí

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

3. Configure el servidor OpenSSH

Configuración de opciones comunes del archivo de configuración sshd_config

vim / etc / ssh / sshd_config

Puerto 22 # El puerto de escucha es 22

ListenAddress 0.0.0.0 #La dirección de escucha es cualquier segmento de red, también puede especificar la IP específica del servidor OpenSSH

LoginGraceTime 2m # El tiempo de verificación de inicio de sesión es de 2 minutos
PermitRootLogin no # Prohibir al usuario root iniciar sesión

MaxAuthTries 6 # El número máximo de reintentos es 6

PermitEmptyPasswords no #Prohibit contraseña vacía inicio de sesión de usuario

UseDNS no #Disable DNS reverse análisis para mejorar la velocidad de respuesta del servidor

Solo los usuarios de zhangsan, lisi y wangwu pueden iniciar sesión, y el usuario de wangwu solo puede iniciar sesión de forma remota desde el host con la dirección IP 192.168.241.3

vim / etc / ssh / sshd_config

AllowUsers zhangsan lisi [email protected] # Esto no tiene una plantilla y debe ser escrito por usted mismo. Varios usuarios están separados por espacios

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Prohibir que algunos usuarios inicien sesión, el uso es similar a AllowUsers (tenga cuidado de no usarlo al mismo tiempo)

vim / etc / ssh / sshd_config

DenyUsers zhangsan

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. el servicio sshd admite el método de verificación

1. Verificación de contraseña

Verifique el nombre de inicio de sesión y la contraseña del usuario del sistema local en el servidor. Simple, pero será fuerza bruta

2. Verificación del par de claves

Debes proporcionar información de clave coincidente para pasar la verificación. Por lo general, el cliente crea un par de archivos de clave (clave pública, clave privada) y luego coloca el archivo de clave pública en la ubicación especificada en el servidor. Al iniciar sesión de forma remota, el sistema utilizará la clave pública y la clave privada se utilizan para verificar la asociación de cifrado / descifrado. Puede mejorar la seguridad y puede evitar el inicio de sesión interactivo.

3. La relación entre la clave pública y la clave privada

  • La clave pública y la clave privada se generan en pares, estas dos claves no están conectadas entre sí y se pueden cifrar y descifrar mutuamente.
  • No puedo deducir otra clave de una clave
  • La clave pública es pública y la clave privada solo la conoce el titular de la clave privada.

4. Cuando tanto la verificación de contraseña como la verificación del par de claves están habilitadas, el servidor dará prioridad a la verificación del par de claves y el método de verificación se puede configurar de acuerdo con la situación real.

vim / etc / ssh / sshd_config

PasswordAuthentication sí # Habilitar la autenticación de contraseña

PubkeyAuthentication sí # Habilitar la autenticación de par de claves

AuthorizedKeysFile .ssh / allowed_keys # Especifique el archivo de biblioteca de claves públicas

5. Utilice el programa cliente SSH

1. Inicio de sesión remoto SSH

ssh [opciones] [email protected]

Cuando el usuario inicia sesión en el servidor SSH por primera vez, debe aceptar la clave ECDSA enviada por el servidor (ingrese "sí" de acuerdo con el mensaje) antes de proceder con la verificación. La información de la clave recibida se guardará en el ~ /.ssh/known_hosts archivo para la verificación de la contraseña Después de tener éxito, puede iniciar sesión en el entorno de línea de comandos del servidor de destino

Inserte la descripción de la imagen aquí

-p: especifique un número de puerto no predeterminado. De manera predeterminada, el puerto 22 se usa de manera predeterminada

ssh -p 2345 [email protected]

2, replicación remota scp

Copia descendente

scp [email protected]: / etc / passwd /root/passwd1.txt Copie el archivo / etc / passwd en el host remoto a la máquina local

Inserte la descripción de la imagen aquí

Replicación ascendente

scp -r / etc / ssh [email protected]: / opt Copie el directorio local / etc / ssh en el host remoto

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

3. FTP seguro sftp

Debido al uso de tecnología de encriptación / desencriptación, toda la eficiencia de transmisión es menor que la del FTP ordinario, pero la seguridad es mayor. La sintaxis de operación sftp y ftp son casi iguales

sftp [email protected]

Conectando a 192.168.241.3…

[email protected]'s password: #Introduzca la contraseña

Conectado a 192.168.241.3.

sftp> ls

sftp> obtener el nombre del archivo para descargar el archivo al directorio ftp

sftp> poner el archivo de carga del nombre del archivo en el directorio ftp

sftp> salir salir

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

6. Configurar la verificación del par de claves

1. Cree un par de claves en el cliente

Cree un archivo de par de claves para el usuario actual mediante la herramienta ssh-keygen. Los algoritmos de cifrado disponibles son RSA, ECDSA o DSA (la opción -t del comando ssh-keygen se usa para especificar el tipo de algoritmo) -

useradd administrador

echo “'123123” | passwd --stdin administrador

su - admin

ssh-keygen -t ecdsa

Generando par de claves ecdsa pública / privada.

Ingrese el archivo en el cual guardar la clave (/root/.ssh/id_ecdsa): # Especifique la ubicación de la clave privada, presione Enter para usar la ubicación predeterminada

Directorio creado "/home/admin/.ssh". #La clave privada generada y el archivo de clave pública se almacenan en el directorio oculto .ssh / en el directorio de host de forma predeterminada

Ingrese la frase de contraseña (vacío si no hay frase de contraseña): # Establezca la contraseña de la clave privada

Ingrese la misma contraseña nuevamente: #Confirmar entrada

ls -l ~ / .ssh / id_ecdsa

Inserte la descripción de la imagen aquí

id_ecdsa es un archivo de clave privada, el permiso es 600 por defecto; id_ecdsa.pub es un archivo de clave pública, que se utiliza para proporcionar al servidor SSH

Inserte la descripción de la imagen aquí

2. Sube el archivo de clave pública al servidor.

scp ~ / .ssh / id_ecdsa.pub [email protected]: / opt

o

Importe el texto de la clave pública directamente en el directorio /home/zhangsan/.ssh del servidor

cd ~ / .ssh

ssh-copy-id -i id_ecdsa.pub [email protected]

método uno

Inserte la descripción de la imagen aquí
Método dos
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

3. Importe el texto de la clave pública en el servidor.

mkdir /home/zhangsan/.ssh

cat /opt/id_ecdsa.pub >> /home/zhangsan/.ssh/authorized_keys

gato /home/zhangsan/.ssh/authorized_keys

Método 1
Inserte la descripción de la imagen aquí
Método 2
Inserte la descripción de la imagen aquí

4. Utilice la verificación del par de claves en el cliente.

ssh [email protected]

Ingrese la frase de contraseña para la clave “/home/admin/.ssh/id_ecdsa”: # Ingrese la contraseña de la clave privada

Inserte la descripción de la imagen aquí

5. Configure la función de proxy ssh en la máquina cliente, que en realidad puede iniciar sesión sin interacción

ssh-agent bash

ssh-add

Ingrese la contraseña para /home/admin/.ssh/id_ecdsa: Ingrese la contraseña de la clave privada

ssh [email protected]

Inserte la descripción de la imagen aquí

Control de acceso de dos envoltorios TCP

1. Encapsuladores TCP (encapsuladores TCP)

"Envuelva" el programa de servicio TCP y supervise el puerto del programa de servicio TCP en su nombre, agregando un proceso de detección de seguridad. La solicitud de conexión externa primero debe pasar esta capa de detección de seguridad. La mayoría de las distribuciones de Linux, los Wrappers TCP son las funciones predeterminadas .

rpm -q tcp_wrappers

Inserte la descripción de la imagen aquí

2. Dos métodos de realización del sistema de niveles de protección TCP Wrappers

  • Utilice el programa tcpd directamente para proteger otros programas de servicio, debe ejecutar el programa tcpd
  • Otros programas de servicios de red llaman a la biblioteca de enlaces libwrap.so. * Sin ejecutar el programa tcpd. Este método es más utilizado y más eficiente

3. Utilice el comando ldd para ver la biblioteca de enlaces libwrap.so. * Del programa

ldd $ (que ssh)

Inserte la descripción de la imagen aquí

4. Estrategia de acceso de los encapsuladores TCP

Los objetos de protección del mecanismo TCP Wrappers son varios programas de servicio de red, y el control de acceso se realiza en la dirección del cliente del servicio de acceso.

Dos estrategias correspondientes

Formato: <lista de programas de servicio>: <lista de direcciones del cliente>

(1) Lista de programas de servicio

TODOS: representa todos los servicios

Programa de servicio único: como "vsftpd"

Una lista de varios programas de servicio: como "vsftpd, sshd".

(2) Lista de direcciones del cliente

TODOS: representa cualquier dirección de cliente

LOCAL: representa la dirección local

Varias direcciones están separadas por comas

Se permiten los caracteres comodín "*" y "?", El primero representa un carácter de cualquier longitud, el segundo representa un carácter

Dirección de segmento de red, como "192.168.80" o 192.168.80.0/255.255.255.0

Las direcciones regionales como ".benet.com" coinciden con todos los hosts del dominio benet.com

5. Principios básicos del mecanismo de encapsuladores de TCP

Primero verifique el archivo /etc/hosts.allow, si se encuentra una política coincidente, se permite el acceso

De lo contrario, continúe verificando el archivo /etc/hosts.deny, si se encuentra una política coincidente, se deniega el acceso

Si al comprobar los dos archivos anteriores no puede encontrar una política coincidente, permita el acceso

"Permitir todo, negar individual"

Simplemente agregue la política de denegación correspondiente en el archivo /etc/hosts.deny

"Permitir individuo, negar todo"

Además de agregar una política de permisos en /etc/hosts.allow, también debe configurar "aahd: ALL" en el archivo /etc/hosts.deny

Pequeño experimento

Si solo desea acceder al servicio sshd desde el host cuya dirección IP es 192.168.241.3, se rechazarán otras direcciones

vim /etc/hosts.allow

sshd: 192.168.241.3

Inserte la descripción de la imagen aquí

vim /etc/hosts.deny

sshd: TODOS

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

ssh r

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51432789/article/details/110930201
Recomendado
Clasificación