Tutoriales

Cómo reemplazar Telnet y FTP con SSH y SFTP para ayudar a proteger su red

En mi artículo anterior, mostré cómo reemplazar el texto simple y otros protocolos de red inseguros con opciones más seguras. Usé el ejemplo de reemplazar HTTP con HTTPS, y en este artículo explicaré cómo cambiar FTP a SFTP y Telnet a SSH.

[ Cheat sheet: Get a list of Linux utilities and commands for managing servers and networks. ]

Debido a que los protocolos de texto claro son fáciles de capturar y analizar, usarlos pone en riesgo la seguridad de su red. Muchos de estos servicios se escribieron cuando Internet estaba en su infancia, y los atacantes ahora tienen mejores herramientas para capturar información confidencial, lo que hace que el listón para un ataque de este tipo sea muy bajo.

Conociendo los peligros de usar un protocolo de red de prueba explícito, se sorprenderá de la frecuencia con la que todavía me piden que configure un servidor FTP o Telnet (y la respuesta es siempre la misma).

Si no ha leído mi artículo sobre la sustitución de HTTP por HTTPS, repetiré la configuración del tutorial antes de explicar cómo implementar SFTP y SSH.

Estos artículos explicarán:

  • Cómo configurar un servicio único con Podman para configuraciones y protocolos inseguros
  • cómo utilizar tiburón Capture y decodifique el tráfico de red en tiempo real
  • Cómo reemplazar los servicios obsoletos con alternativas más modernas para eliminar este tipo de ataques

Este tutorial asume que usted tiene:

  • Visite Podman o Docker
  • Acceso privilegiado para ejecutar TShark y contenedores en modo especial
  • Conocimientos básicos de protocolos de red como TCP/IP, HTTP o FTP (pero no te preocupes si no los tienes)

[ Download now: Podman basics cheat sheet ]

Prepare su caja de arena de Apache

Este tutorial capturará las credenciales de autenticación básicas contra un servidor Apache HTTPD sin cifrar.

Esta demostración requiere un certificado SSL autofirmado, así que cree un contenedor.yo suelo Distribución de Fedora 37 Linux y mkcert solicitud:

[josevnz@dmaf5 self_signed_certificates]$ podman run --rm --interactive --tty --volume $HOME/Downloads:/certs mkcert_image mkcert -cert-file /certs/cert.pem -key-file /certs/cert.key dmaf5 localhost 192.168.1.30 ::1

Utilizará este nuevo certificado SSL para el contenedor Podman que ejecuta Apache:

A continuación, cree un especial contenedor apache:

Prueba de autenticación con curl:

curl --silent --user admin:notsosecurepassword 
# We use --insecure because is a self-signed certificate
curl --insecure --silent --user admin:notsosecurepassword 

El siguiente paso es verificar cuánta información confidencial se puede obtener usando TShark.

[ Learn how to manage your Linux environment for success. ]

Rastrear contraseñas desde un servidor FTP usando TShark

FTP envía datos sin encriptación.Tomar uno rotación de contenedores vsftpdy escribir una expresión TShark Encuentra un campo FTP específico:

podman run --detach --tty --network=host --privileged --name kodegeek_vsftpd --env FTP_USER=admin --env FTP_PASS=insecurepassword --env LOG_STDOUT=yes fauria/vsftpd
tshark -i eno1 -Y 'ftp.request.command == USER or ftp.request.command == PASS' -T json

En otra terminal, establezca una sesión FTP contra su contenedor:

josevnz@raspberrypi:~$ ftp -4 -n -v dmaf5 
Connected to dmaf5.home.
220 (vsFTPd 3.0.2)
ftp> user admin insecurepassword
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

TShark proporcionará «amablemente» el usuario y la contraseña en texto claro:

          "ftp.request": "1",
          "ftp.response": "0",
          "USER admin\\r\\n": {
            "ftp.request.command": "USER",
            "ftp.request.arg": "admin"
          }
...
        "ftp": {
          "ftp.request": "1",
          "ftp.response": "0",
          "PASS insecurepassword\\r\\n": {
            "ftp.request.command": "PASS",
            "ftp.request.arg": "insecurepassword"
          }
        },

Véalo en acción:

Cambiar a SFTP

La solución es usar SFTP en lugar de FTP.

No profundizaré en cómo usar SFTP, porque hay muchos tutoriales de SFTP, incluido Cómo transferir archivos de forma segura usando SCP y SFTP de Evans Amoany.

Olfateando las contraseñas del servidor Telnet

Los servidores Telnet son uno de esos servicios que nadie debería ver en su red.Ni siquiera te pediré que ejecutes el contenedor; en cambio, te mostraré cómo se ve una captura en vivo (yo uso Servidor Docker Telnet para esta demostración).

TShark puede decodificar Campo de tráfico Telnet tiempo real.

Cambiar a SSH

Utilice SSH en lugar de Telnet. Una vez más, no hay escasez de tutoriales de SSH, así que comience con el artículo de Evans sobre cómo usar SSH para acceder a sistemas remotos.

[josevnz@dmaf5 InsecureContainer]$ tshark -i eno1 -Y 'telnet' -T fields -e telnet.data
Capturing on 'eno1'
Ubuntu 17.10\r\n
dmaf5 login: 
r
r
o
o
o
o
t
t
\r
\r\n
Password: 
m
a
l
w
a
r
e
\r
\r\n
Last login: Sun Oct  9 01:32:14 UTC 2022 from raspberrypi.home on pts/1\r\n

Esto es más o menos lo mismo que ves en el lado del cliente:

josevnz@raspberrypi:~$ telnet dmaf5
Trying fd22:4e39:e630:1:1937:89d4:5cbc:7a8d...
Connected to dmaf5.home.
Escape character is '^]'.
Ubuntu 17.10
dmaf5 login: root
Password: 
Last login: Sun Oct  9 01:32:14 UTC 2022 from raspberrypi.home on pts/1

Última acción:

¿Que sigue?

LEER  Comenzando con Fedora

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba