Está en la página 1de 14

1

DETECTANDO CONEXIONES SSH EN LINUX

Oscar Roberto Pacheco

Programa Ingeniería de Sistemas, Fundación Universitaria del Área Andina

202260 – 6A – 062 Informática Forense I

Camilo Augusto Cardona Patiño

Octubre, 2022
2

Introducción

SSH o también conocido como Secure Shell, es un protocolo y el nombre del programa

que lo implementa. SSH es muy conocido por ser el protocolo seguro para la administración

remota de servidores, routers, switches y un largo etcétera de equipos. El protocolo SSH permite

manejar por completo el servidor o dispositivo de red mediante un intérprete de órdenes, además,

también podemos redirigir el tráfico de X para ejecutar programas gráficos a través de la propia

sesión SSH. Otras características fundamentales de SSH son que nos va a permitir copiar datos

de manera segura, tanto archivos como carpetas, a través del protocolo SFTP (SSHFTP), un

protocolo hecho desde cero y que no tiene nada que ver con FTPS o FTPES (FTP sobre

SSL/TLS). El protocolo SSH es fundamental en el ámbito de las redes y sistemas, además,

podremos configurarlo en detalle para dotar a nuestro sistema de la máxima seguridad posible. El

protocolo SSH proporciona confidencialidad (los datos van grabados punto apunto),

autenticación (podremos autenticarnos frente al servidor SSH de múltiples maneras, con

usuario/clave, criptografía de clave pública e incluso podremos configurar un segundo factor de

autenticación), integridad (si los datos se modifican o los modifica un usuario malintencionado

se podrá detectar, ya que usa HMAC para comprobar la integridad de todos y cada uno de los

datos).
3

Iniciando con el desarrollo de la actividad correspondiente al eje 4, se procede a hacer la

instalación de los servicios SSH tanto de servidor, como de cliente. Mediante la consola de

comandos de Ubuntu, en la máquina virtual que utilizaremos como servidor, procedemos a

introducir lo siguiente:$ sudo apt-get install openssh-server


4
Después de instalar los servicios de SSH server, necesitamos saber la dirección IP con la

cual se hará la conexión desde el cliente, para este ejemplo se utiliza el comando:

$ nombre de host -I

De esta manera ya podemos ir a la máquina virtual que en este caso actuara con cliente

Como paso siguiente procedemos a iniciar los servicios de SSH pero esta vez como

cliente; escribimos la siguiente línea de comandos en la terminal:

$ sudo apt-get install openssh-cliente


5
Una vez instalados los servicios lo siguiente seria revisar la conexión entre ambos

maquinas, esto se hace desde la terminal del cliente donde usaremos la dirección IP antes

obtenida en el servidor mediante la siguiente sentencia:

$ SSH usuario@192.168.153.132

Una vez conectado entre cliente-servidor, verificamos y realizamos un pequeño ejemplo

para corroborar que ésta esté de manera óptima, para este caso se crea una carpeta en el escritorio

del servidor, y dentro de este un archivo de texto.


6
En la imagen anterior, podemos ver las líneas de comando usadas en la máquina cliente

para crear los archivos en el servidor que usamos como ejemplo.


7

1. ¿Qué proceso identifica la conexión establecida usando el servicio SSH?

Autentificación En un primer paso, el servidor SSH y el cliente se autentican

mutuamente. El servidor envía un certificado al cliente para verificar que realmente es el

servidor correcto. Después de la autenticación del servidor, el cliente también debe demostrar

ante el servidor que está autorizado para acceder a él. Esta información se almacena en el

servidor. Como resultado, los usuarios deben introducir la contraseña cada vez que se conectan a

otro servidor durante la misma sesión.

Codificación o cifrado La clave que se utiliza para el cifrado simétrico solo es válida para

esta sesión. Tanto el cliente como el servidor tienen la misma clave, por lo que cualquier mensaje

que se intercambie puede ser cifrado y descifrado. El cliente y el servidor crean la clave

simultáneamente, pero de forma independiente el uno del otro. En el llamado algoritmo de

intercambio de claves, ambas partes utilizan cierta información pública y secreta para crear la

contraseña.

Protocolo TCP/IP y puertos SSH TCP tiene un espacio de direcciones de 16 bits y por lo

tanto tiene disponibles 65535 puertos. Sin embargo, la entidad Internet Assigned Numbers

Authority (IANA) ha asignado algunos puertos (exactamente 1024) para ciertas aplicaciones,

incluyendo el puerto SSH. Por defecto, todas las conexiones SSH se ejecutan en el puerto 22.
8

2. Con el comando w determinar ¿qué equipos están conectados?


9
En la imagen, logramos ver mediante le comando w los equipos conectados al servidor

identificando su dirección IP, en este caso sería la 192.168.153.134. Además, obtenemos

información más relevante tal como la hora de y el tiempo de conexión mediante le servicio SSH

con tiempos de interacción entre 1,5 y 15 minutos.

3. Identificar IP fuente, puerto origen, IP destino, puerto destino. Utilizando el comando

netstat. Netstat derivado de las palabras red y estadísticas, es una utilidad de línea de comandos

utilizada por los administradores del sistema para analizar estadísticas de red . Muestra todo un

conjunto de estadísticas, como puertos abiertos y direcciones correspondientes en el sistema host,

la tabla de enrutamiento y las conexiones enmascaradas.

Para instalar los servicios de netstat se procede a ingresar en la terminal de comandos en

la cual escribiremos lo siguiente.

$ sudo apt-get install net-tools

Una vez instalados los servicios, procedemos a realizar dicha comprobación escribiendo:

$ netstat
10

Al observar la imagen identificamos el protocolo, IP de la dirección local (servidor), IP

de la dirección remota (Cliente) y el estado de la conexión. De este modo, introduciendo el

comando y filtrándolo con un pipe podemos obtener información sobre un determinado puerto.

$ netstat -putona

Al introducir esa línea de comando en la terminal del servidor, nos mostrara la

información que necesitamos para identificar de manera más detallada donde identificaremos lo

solicitado, ósea, IP fuente, puerto origen, IP destino, puerto destino


11

En este caso seria 192.168.153.132:22 para la dirección local, donde el 22 es el puerto del

servidor y 192.168.153.134:43486 para la dirección remota, donde el 43486 es el puerto del

cliente.

4. Verificar cómo el sistema detectó la conexión y cómo lo almacena en los logs del

sistema.

Ubicación del log Datos registrados en el log y funcionalidad


Proporciona un registro de todas las actividades que implican
un proceso de autenticación. Por ejemplo, registra los
usuarios logueados al sistema operativo. Registra el día, hora,
/var/log/auth.log
usuario y ordenes que se han ejecutado con el comando sudo,
los cronjobs que se han ejecutado, los intentos fallidos de
autenticación, etc.
Para registrar datos de los programas que están actuando en
modo depuración. De esta forma los programadores pueden
/var/log/debug
obtener información si sus programas están funcionando
adecuadamente.
Contiene la totalidad de logs capturados por rsyslogd. Por lo
tanto, en este fichero encontraremos multitud logs y será
/var/log/syslog difícil de consultar y filtrar. Por este motivo, los logs se
distribuyen en otros ficheros siguiendo la configuración del
fichero /etc/rsyslog.conf.
12
Proporciona información detallada de mensajes del kernel.
Por ejemplo, si habéis compilado un kernel y tenéis
/var/log/kern.log: problemas podréis ver los mensajes de error y advertencias
en kern.log. También puede ser útil para intentar detectar y
solucionar problemas con la detección de hardware.
Dentro del fichero encontraremos información relacionada
con el hardware de nuestro equipo. Por lo tanto, podremos
/var/log/dmesg
obtener información para concluir si nuestro hardware
funciona de forma adecuada.
Contiene mensajes informativos y no críticos de la actividad
del sistema operativo. Acostumbra a contener los errores que
se registran en el arranque del sistema que no estén
/var/log/messages
relacionados con el Kernel. Por lo tanto, si no se inicia un
servicio, como por ejemplo el servidor de sonido, podemos
buscar información dentro de este archivo.
Almacena los intentos fallidos de logins en un equipo. Si
alguien realizará un ataque de fuerza bruta a un servidor ssh,
/var/log/btmp el fichero registraría la IP del atacante, el día y hora en que ha
fallado el login, el nombre de usuario con que se ha intentado
loguear, etc.
Registra los intentos fallidos de autenticación de cada
usuario. Dentro del archivo se almacena una lista de usuarios,
los fallos totales de cada usuario, el número de fallo máximos
/var/log/faillog
que permitimos y la fecha y hora del último fallo. Si un
usuario supera el número de fallos máximos establecidos se
deshabilitará el usuario por el tiempo que nosotros fijemos.
Ayuda a ver la fecha y la hora en que cada usuario se ha
/var/log/lastlog
conectado por última vez.
En todo momento contiene los usuarios que están logueados
/var/log/wtmp
al sistema operativo.
Información relacionada con el arranque del sistema.
Podemos consultarlo para analizar si se levantan los servicios
/var/log/boot.log del sistema, si se levanta la red, si se montan las unidades de
almacenamiento, para averiguar un problema que hace que
nuestro equipo no inicie, etc.
Registra la totalidad de información de las tareas realizadas
por cron. Si tienen problemas con la ejecución de tareas
tienen que consultar este log para ver si el trabajo se ha
/var/log/cron ejecutado o da errores. Debian no dispone de este log, pero
encontrarán la misma información en /var/ log/syslog. En
Debian pueden configurar el fichero de configuración
/etc/rsyslog.conf para generar un log específico para cron.
Registra la actividad de los demonios o programas que corren
en segundo plano. Para ver si un demonio se levantó o está
dando errores podemos consultar este log. Dentro de
/var/log/daemon.log
daemon.log encontraremos información sobre el demonio
que inicia el gestor de inicio, el demonio que inicia la base de
datos de MySQL, etc.
Contiene información sobre la totalidad de paquetes
/var/log/dpkg.log
instalados y desinstalados mediante el comando dpkg.
Detalle de los paquetes instalados, desinstalados o
/var/log/apt/history.log
actualizados mediante el gestor de paquetes apt-get.
Contiene la totalidad de información mostrada en la terminal
/var/log/apt/term.log en el momento de instalar, actualizar o desinstalar un paquete
con apt-get.
Información relacionada con el servidor de email que
/var/log/mail.log tengamos instalado en el equipo. En mi caso uso sendmail y
registra la totalidad de sus acciones en mail.log.
/var/log/alternatives.log Registra todas las operaciones relacionadas con el sistema de
13
alternativas. Por lo tanto, todas las acciones que realicemos
usando el comando update-alternatives se registrarán en este
log. El sistema de alternativas permite definir nuestro editor
de texto predeterminado, el entorno de escritorio
predeterminado, la versión de java que queremos usar por
defecto, etc.
Registra la totalidad de eventos relacionados con nuestra
tarjeta gráfica desde que arrancamos el ordenador hasta que
/var/log/Xorg.0.log
lo apagamos. Por lo tanto, puede ayudar a detectar problemas
con nuestra tarjeta gráfica.
Ver los usuarios que actualmente están logueados en un
/var/run/utmp
equipo.
14

También podría gustarte