Exploramos el cifrado y el acceso remoto seguro como métodos para proteger y reforzar Linux. El cifrado hace que los datos sean ilegibles sin la clave de descifrado. En el caso de que un adversario tenga acceso físico completo a su computadora portátil, por ejemplo, robándola, queremos asegurarnos de que no le será de ninguna utilidad. Una unidad de disco llena de datos cifrados debería ser tan buena como una dañada. Cuando configura su sistema Linux con SSH para administración remota, también pone su máquina Linux a disposición de todas las partes interesadas. Muchos piratas informáticos malintencionados buscan en Internet servidores SSH que escuchen y comienzan a adivinar las credenciales de inicio de sesión; Por lo general, prueban root con las contraseñas más comunes. Esto fue parte de Fortalecimiento del sistema Linux TryHackMe

Obtenga notas del equipo azul

Cifrado

El cifrado hace que los datos sean ilegibles sin la clave de descifrado. En el caso de que un adversario tenga acceso físico completo a su computadora portátil, por ejemplo, robándola, queremos asegurarnos de que no le será de ninguna utilidad. Una unidad de disco llena de datos cifrados debería ser tan buena como una dañada.

Existen varios sistemas y herramientas de software que proporcionan cifrado a linux sistemas. Dado que muchas distribuciones modernas de Linux incluyen LUKS (Configuración de clave unificada de Linux), cubrímoslo con más detalle.

Disponemos de los siguientes campos:

  • lucas doctorado: Lo que representa lucas Encabezado de particiónlucas phdr almacena información sobre el UUID (identificador único universal), el cifrado utilizado, el modo de cifrado, la longitud de la clave y la suma de verificación de la clave maestra.
  • km: KM significa Material clave, donde tenemos KM1, KM2,…, KM8. Cada sección de material clave está asociada con una ranura para clave, que puede indicarse como activa en el lucas doctorado. Cuando la ranura de clave está activa, la sección de material de clave asociada contiene una copia de la clave maestra cifrada con la contraseña de un usuario. En otras palabras, podríamos tener la clave maestra cifrada con la contraseña del primer usuario y guardada en KM1, cifrada con la contraseña del segundo usuario y guardada en KM2, y así sucesivamente.
  • Datos voluminosos: Esto se refiere a los datos cifrados por la clave maestra. La clave maestra se guarda y cifra mediante la contraseña del usuario en una sección de material de claves.

lucas reutiliza implementaciones de cifrado de bloques existentes. El pseudocódigo para cifrar datos utiliza la siguiente sintaxis:

enc_data = cifrar (nombre_cifrado, modo_cifrado, clave, original, longitud_original)

Como podemos ver, lucas Funciona con diferentes cifrados y modos de cifrado. Original se refiere a los datos de texto sin formato de longitud, longitud_original. La contraseña proporcionada por el usuario se utiliza para derivar la clave de cifrado; la clave se obtiene mediante la función 2 de obtención de clave basada en contraseña (PBKDF2).

clave = PBKDF2 (contraseña, sal, iteración_count, derivada_key_length)

Usando un sal con una función hash que repite un recuento de iteraciones garantiza que la clave resultante sea lo suficientemente segura para el cifrado. Para obtener más información, es posible que desee consultar el Introducción a la criptografía habitación.

De manera similar, para descifrar datos y restaurar el texto sin formato original, lucas utiliza la siguiente sintaxis:

original = descifrar (nombre_cifrado, modo_cifrado, clave, datos_enc, longitud_original)

La mayoría de las distribuciones le permiten cifrar una unidad mediante una interfaz gráfica. Sin embargo, si desea configurar lucas Desde la línea de comando, los pasos son estos:

  • Instalar luks-cryptsetup. (Puedes emitir apto para instalar cryptsetupyum instalar cryptsetup-luks o dnf instala cryptsetup-luks para Ubuntu/Debian, RHEL/Cent SOy Fedora, respectivamente.)
  • Confirme el nombre de la partición usando fdisk-llsblk o negro. (Cree una partición usando disco duro si necesario.)
  • Configure la partición para lucas cifrado: cryptsetup -y -v luksFormat /dev/sdb1. (Reemplazar /dev/sdb1 con el nombre de la partición que desea cifrar.)
  • Cree una asignación para acceder a la partición: cryptsetup luksOpen /dev/sdb1 EDCdrive.
  • Confirmar los detalles del mapeo: ls -l /dev/mapper/EDCdrive y cryptsetup -v estado EDCdrive.
  • Sobrescribe los datos existentes con cero: dd if=/dev/cero de=/dev/mapper/EDCdrive.
  • Formatee la partición: mkfs.ext4 /dev/mapper/EDCdrive -L "Estrategos USB".
  • Móntalo y empieza a usarlo como una partición habitual: montar /dev/mapper/EDCdrive /media/secure-USB.

Si quieres comprobar el lucas configuración, puede emitir el comando cryptsetup luksDump /dev/sdb1. En la salida del terminal a continuación, podemos ver el UUID del disco cifrado. También podemos ver que el cifrado utilizado es aes-xts-plain64. En cuanto a la clave, PBKDF2 usó SHA256 con la sal proporcionada para 194180 iteraciones.

Acceso remoto seguro

Proporcionar acceso remoto a un sistema es una forma muy conveniente de acceder a su sistema y a sus archivos cuando no está físicamente presente frente al teclado del sistema de destino. Sin embargo, esto también significa que usted está brindando voluntariamente un servicio al que se dirigirán los atacantes. Los ataques comunes incluyen:

  1. Rastreo de contraseñas
  2. Adivinación de contraseñas y fuerza bruta
  3. Explotando el servicio de escucha

Protección contra el rastreo de contraseñas

El acceso remoto se puede lograr a través de muchos protocolos y servicios diferentes. Aunque todos los sistemas modernos utilizan protocolos cifrados, como el SSH protocolo, para el acceso remoto, los sistemas más antiguos aún pueden usar protocolos de texto sin cifrar, como el protocolo Telnet.

En la siguiente figura, aunque el usuario ha seleccionado una contraseña segura, se envía en texto sin cifrar, que cualquier persona que tenga una herramienta de captura de paquetes a lo largo de la ruta de la red puede leer.

Es fundamental asegurarse de seleccionar un protocolo que cifre el tráfico. El SSH El protocolo existe desde hace más de dos décadas. Se ha superado la prueba del tiempo. Tiene muchos usos que van desde acceso remoto seguro hasta transferencias seguras de archivos.

Protección contra adivinanzas de contraseñas

Cuando configuras tu linux sistema con SSH para administración remota, también pones tu máquina Linux a disposición de todos los interesados. Muchos piratas informáticos malintencionados buscan en Internet servidores SSH que escuchen y comienzan a adivinar las credenciales de inicio de sesión; normalmente lo intentan raíz con las contraseñas más comunes.

La siguiente figura muestra que el sistema utiliza el SSH protocolo para garantizar comunicaciones cifradas; sin embargo, la autenticación depende de las credenciales de inicio de sesión. Muchos usuarios se ven tentados a utilizar contraseñas débiles o reutilizar la misma contraseña con otros servicios. A pesar de qwerty1234 no está en un diccionario de inglés, se encuentra comúnmente entre las 10 o 20 contraseñas más comunes, lo que hace que sea fácil de adivinar.

Porque su SSH El servidor se configurará para escuchar las conexiones entrantes las 24 horas del día, los 365 días del año, los usuarios malvados tienen todo el tiempo del mundo para intentar una contraseña tras otra. Hay algunas pautas que puede utilizar:

  1. Deshabilitar el inicio de sesión remoto como raíz; forzar el inicio de sesión como usuarios no root.
  2. Deshabilitar la autenticación de contraseña; en su lugar, fuerce la autenticación de clave pública.

El razonamiento detrás de las pautas anteriores es que no desea que el adversario pueda atacar al raíz cuenta directamente. Además, incluso si se trata de una cuenta que no es root, no desea que el atacante obtenga acceso si hay una debilidad en la contraseña.

La configuración del servidor OpenSSH se puede controlar a través del sshd_config archivo, generalmente ubicado en /etc/ssh/sshd_config. Puede desactivar el inicio de sesión raíz agregando la siguiente línea:

PermitRootLogin no

Aunque una contraseña como 9bNfX2gmDZ4o Es difícil de adivinar, a la mayoría de los usuarios les resulta inconveniente memorizarlo. Imagínese si la cuenta pertenece al sudoers (sudo grupo), y el usuario debe escribir esta contraseña cada vez que necesite emitir un comando con sudo. Puede que tengas que disciplinarte para hacer eso, pero no puedes esperar que esto funcione para todos.

Muchos usuarios se sienten tentados a seleccionar una contraseña fácil de usar o compartir la misma contraseña en varias cuentas. Cualquiera de los dos enfoques haría que la contraseña fuera más fácil de adivinar para el atacante.

Lo mejor sería confiar en la autenticación de clave pública con SSH para ayudar a mejorar la seguridad del sistema de inicio de sesión remoto y hacerlo lo más resistente posible.

Si no has creado un SSH par de claves, debe emitir el comando ssh-keygen -t rsa. Generará una clave privada guardada en id_rsa y una clave pública guardada en id_rsa.pub.

Para el SSH servidor para autenticarlo utilizando su clave pública en lugar de sus contraseñas, su clave pública debe copiarse en el servidor SSH de destino. Una manera fácil de hacerlo sería emitiendo el comando ssh-copy-id nombre de usuario@servidor dónde nombre de usuario es su nombre de usuario, y servidor es el nombre de host o la dirección IP del SSH servidor.

Es mejor asegurarse de tener acceso al terminal físico antes de desactivar la autenticación de contraseña para evitar bloquearse. Es posible que deba asegurarse de tener las siguientes dos líneas en su sshd_config archivo.

  • Autenticación Pubkey sí para habilitar la autenticación de clave pública
  • ContraseñaAutenticación no para deshabilitar la autenticación de contraseña

Respuestas de la habitación

¿Qué comando puedes usar para crear una contraseña para el gestor de arranque GRUB?

¿Qué significa PBKDF2?

¿Qué significa LUKS?

No podemos adjuntar almacenamiento externo al máquina virtual, entonces hemos creado un /home/tryhackme/secretvault.img archivo en su lugar. Está cifrado con la contraseña. 2N9EdZYNkszEE3Ad. Para acceder a él, debe abrirlo usando configuración de cripta y luego montarlo en un directorio vacío, como mi bóveda. ¿Cuál es la bandera en la bóveda secreta?

Hay un firewall ejecutándose en la máquina virtual Linux. Está permitiendo el puerto 22 TCP, ya que podemos ingresar por ssh a la máquina. Está permitiendo otro puerto TCP; ¿qué es?

¿Cuál es el permitido? UDP ¿puerto?

¿Qué bandera se esconde en el sshd_config ¿archivo?
Una forma de desactivar una cuenta es editar la contraseña archivo y cambiar el shell de la cuenta. ¿Cuál es el valor sugerido para usar para el shell?

¿Cómo se llama el grupo sudoers de los sistemas RedHat y Fedora?

¿Cómo se llama el grupo sudoers en los sistemas Debian y Ubuntu?

Otro que intenta hackearme y ubuntu, cual es el nombre de usuario que pertenece al grupo sudoers?

Además de FTPS, ¿cuál es otro sustituto seguro de TFTP y FTP?
¿Qué comando usaría para actualizar un sistema Red Hat antiguo?

¿Qué comando usarías para actualizar un sistema Fedora moderno?

¿Qué dos comandos se requieren para actualizar un sistema Debian? (Conecte los dos comandos con &&.)

Que hace mmm ¿representar?

Que hace dnf ¿representar?

¿Qué bandera se esconde en el fuentes.lista ¿archivo?

¿Qué comando puedes usar para mostrar las últimas 15 líneas de kern.log?

¿Qué comando puedes usar para mostrar las líneas que contienen la palabra? denegado en el archivo seguro?

Tutorial en vídeo

Acerca del Autor

Creo notas de ciberseguridad, notas de marketing digital y cursos online. También brindo consultoría de marketing digital que incluye, entre otros, SEO, Google y meta anuncios y administración de CRM.

Ver Artículos