8 formas de verificar las conexiones ssh activas

8 formas de verificar las conexiones ssh activas.

SSH es un protocolo de red que nos permite conectar a sistemas remotos. Es un proceso común, que al administrar servidores Linux, necesites saber quién está conectado a través de SSH (normalmente por seguridad). En el artículo de hoy, veremos una serie de herramientas que nos ayudaran a listar y verificar las conexiones SSH activas (sesiones abiertas).

Existen múltiples comandos y herramientas en Linux, que podemos usar para lograr nuestro objetivo. Nosotros vemos las 8 formas de verificar las conexiones ssh activas, más habituales.

 

8 formas de verificar las conexiones ssh activas

Conexiones SSH activas

Conexiones SSH activas

1 – Comando ss

Con «ss» podemos volcar las estadísticas de sockets.

ss | grep -i ssh

Ejemplo de salida…

[root@sololinux-demo ~]# ss | grep -i ssh
tcp   ESTAB 0      36                  185.185.40.172:ssh          62.16.110.193:36018

 

2 – Comando last

Este comando rastrea el archivo «/var/log/wtmp», para identificar los usuarios conectados.

last -a | grep -i still

En el ejemplo, vemos que la herramienta nos especifica el usuario actualmente conectado.

[root@sololinux-demo ~]# last -a | grep -i still
root     pts/1        Mon Nov 16 11:47   still logged in    178.123.69.108
root     pts/0        Mon Nov 16 10:38   still logged in    62.16.102.025
reboot   system boot  Sat Nov  7 11:39   still running      4.18.0

 

3 – Comando w

El comando w, nos muestra información sobre los usuarios actuales en la máquina y sus procesos. Esto proporciona información sobre los comandos que utilizan, y también nos permite verificar las conexiones ssh activas.

w

Observa que además ofrece otros datos relevantes.

[root@sololinux-demo ~]# w
 11:54:33 up 9 days, 15 min,  2 users,  load average: 0,00, 0,01, 0,05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    62.16.70.157     10:38   15:37   0.01s  0.01s -bash
root     pts/1    178.166.49.201   11:47    1.00s  0.00s  0.00s w

 

4 – Comando who

Who imprime en la consola los usuarios conectados, además de la hora de inicio de sesión.

who
[root@sololinux-demo ~]# who
root     pts/0        2020-11-16 10:38 (62.16.19.212)
root     pts/1        2020-11-16 11:47 (178.103.78.97)

8 formas de verificar las conexiones ssh activas

 

5 – Con echo

Con «echo» resolvemos la ip local y remota, así como los puertos. Usamos la siguiente variable…

echo $SSH_CONNECTION

Veremos algo similar a…

[root@sololinux-demo ~]# echo $SSH_CONNECTION
178.133.17.158 24916 185.185.71.68 22

 

6 – Herramienta netstat

Netstat es una herramienta excepcional para tratar con redes, es evidente que también tiene la capacidad de verificar  las conexiones ssh activas.

netstat -tnpa | grep 'ESTABLISHED.*sshd'

Observa su salida impresa.

[root@sololinux-demo ~]# netstat -tnpa | grep 'ESTABLISHED.*sshd'
tcp        0      0 185.185.102.77:22       62.16.9.101:36018      ESTABLISHED 34567/sshd: root [p 
tcp        0     36 185.185.102.77:22       178.133.55.23:24916    ESTABLISHED 34738/sshd: root [p

 

7 – Comando ps

Es posible que con el comando ps no obtengamos información muy precisa, pero a cambio nos ofrece otra información valiosa como el PID y más. El comando ps nos ofrece diversas variantes a través de sus opciones, nosotros veremos la que tal vez sea más básica, y la que posiblemente sea una de las más completas.

ps auxwww
ps auxwww | grep sshd: | grep -v grep

Salida básica…

[root@sololinux-demo ~]# ps auxwww | grep sshd: | grep -v grep
root       35261  0.0  1.8 126172  9732 ?        Ss   14:33   0:00 sshd: root [priv]
root       35270  0.0  1.0 126172  5380 ?        S    14:34   0:00 sshd: root@pts/0
root       35311  0.0  1.3  78520  7068 ?        Ss   14:38   0:00 sshd: [accepted]
sshd       35312  0.0  0.5  78520  2892 ?        S    14:38   0:00 sshd: [net]
ps axfj
ps axfj | grep sshd

Salida completa…

Verificar las conexiones ssh activas con el comando ps

Verificar las conexiones ssh activas con el comando ps

 

8 – Revisar el registro

Revisar los registros de actividad ssh puede ser una forma poco ortodoxa de operar, pero seguro que es efectiva. El principal problema radica que cada distribución linux (incluso dependiendo de la versión), tiene su propia ruta en el directorio /var/log.

En nuestro caso, el servidor demo es un CentOS 8. En CentOS 8 y últimas versiones de CentOS 7, localizamos el registro de accesos en el archivo secure. Para verificar las conexiones ssh activas, ejecuta el siguiente comando.

cat /var/log/secure

Como puedes ver en el ejemplo, también aparecen los errores de autentificación producidos por intentos de acceso ajenos al sistema.

[root@sololinux-demo log]# cat secure
Nov 15 02:31:01 sololinux-demo sshd[30121]: Invalid user spider from 118.97.16.127 port 40270
Nov 15 02:31:01 sololinux-demo sshd[30121]: pam_unix(sshd:auth): check pass; user unknown
Nov 15 02:31:01 sololinux-demo sshd[30121]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=118.97.16.127
Nov 15 02:31:03 sololinux-demo sshd[30121]: Failed password for invalid user spider from 118.97.16.127 port 40270 ssh2
Nov 15 02:31:03 sololinux-demo sshd[30121]: Received disconnect from 118.97.16.127 port 40270:11: Bye Bye [preauth]
Nov 15 02:31:03 sololinux-demo sshd[30121]: Disconnected from invalid user spider 118.97.16.127 port 40270 [preauth]
Nov 15 02:32:14 sololinux-demo sshd[30123]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=118.97.16.127  user=root
Nov 15 02:32:16 sololinux-demo sshd[30123]: Failed password for root from 118.97.16.127 port 53126 ssh2
Nov 15 02:32:18 sololinux-demo sshd[30123]: Received disconnect from 118.97.16.127 port 53126:11: Bye Bye [preauth]
Nov 15 02:32:18 sololinux-demo sshd[30123]: Disconnected from authenticating user root 118.97.16.127 port 53126 [preauth]
Nov 15 02:33:32 sololinux-demo sshd[30125]: Invalid user lsfadmin from 118.97.16.127 port 37738
Nov 15 02:33:32 sololinux-demo sshd[30125]: pam_unix(sshd:auth): check pass; user unknown
Nov 15 02:33:32 sololinux-demo sshd[30125]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=118.97.16.127
Nov 15 02:33:34 sololinux-demo sshd[30125]: Failed password for invalid user lsfadmin from 118.97.16.127 port 37738 ssh2
Nov 15 02:33:34 sololinux-demo sshd[30125]: Received disconnect from 118.97.16.127 port 37738:11: Bye Bye [preauth]
Nov 15 02:33:34 sololinux-demo sshd[30125]: Disconnected from invalid user lsfadmin 118.97.16.127 port 37738 [preauth]
Nov 15 02:34:44 sololinux-demo sshd[30128]: Invalid user rh from 118.97.16.127 port 50598
Nov 15 02:34:44 sololinux-demo sshd[30128]: pam_unix(sshd:auth): check pass; user unknown
Nov 15 02:34:44 sololinux-demo sshd[30128]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=118.97.16.127
El registro en tiempo real

Puedes monitorear el registro en tiempo real con el comando tail.

tail -f -n 50 /var/log/secure | grep sshd

Ejemplo de salida…

[root@sololinux-demo log]# tail -f -n 50 /var/log/secure | grep sshd
Nov 16 15:15:08 sololinux-demo sshd[35427]: Failed password for invalid user qazwsxedc!@# from 119.28.178.61 port 45004 ssh2
Nov 16 15:15:08 sololinux-demo sshd[35427]: Received disconnect from 119.28.178.61 port 45004:11: Bye Bye [preauth]
Nov 16 15:15:08 sololinux-demo sshd[35427]: Disconnected from invalid user qazwsxedc!@# 119.28.178.61 port 45004 [preauth]
Nov 16 15:15:25 sololinux-demo sshd[35429]: Invalid user Q.1 from 206.189.43.92 port 58904
Nov 16 15:15:25 sololinux-demo sshd[35429]: pam_unix(sshd:auth): check pass; user unknown
Nov 16 15:15:25 sololinux-demo sshd[35429]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=206.189.43.92
Nov 16 15:15:27 sololinux-demo sshd[35429]: Failed password for invalid user Q.1 from 206.189.43.92 port 58904 ssh2
Nov 16 15:15:28 sololinux-demo sshd[35429]: Received disconnect from 206.189.43.92 port 58904:11: Bye Bye [preauth]
Nov 16 15:15:28 sololinux-demo sshd[35429]: Disconnected from invalid user Q.1 206.189.43.92 port 58904 [preauth]
Nov 16 15:15:45 sololinux-demo sshd[35431]: Invalid user 1qaz2wsx3edc1 from 105.163.182.191 port 44174
Nov 16 15:15:45 sololinux-demo sshd[35431]: pam_unix(sshd:auth): check pass; user unknown
Nov 16 15:15:45 sololinux-demo sshd[35431]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=105.163.182.191
Nov 16 15:15:47 sololinux-demo sshd[35431]: Failed password for invalid user 1qaz2wsx3edc1 from 105.163.182.191 port 44174 ssh2
Nov 16 15:15:49 sololinux-demo sshd[35431]: Received disconnect from 105.163.182.191 port 44174:11: Bye Bye [preauth]
Nov 16 15:15:49 sololinux-demo sshd[35431]: Disconnected from invalid user 1qaz2wsx3edc1 105.163.182.191 port 44174 [preauth]
Nov 16 15:17:02 sololinux-demo sshd[35434]: Invalid user Changeme! from 200.170.248.190 port 55992
Nov 16 15:17:02 sololinux-demo sshd[35434]: pam_unix(sshd:auth): check pass; user unknown
Nov 16 15:17:02 sololinux-demo sshd[35434]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=200.170.248.190
Nov 16 15:17:03 sololinux-demo sshd[35434]: Failed password for invalid user Changeme! from 200.170.248.190 port 55992 ssh2
Nov 16 15:17:04 sololinux-demo sshd[35434]: Received disconnect from 200.170.248.190 port 55992:11: Bye Bye [preauth]
Nov 16 15:17:04 sololinux-demo sshd[35434]: Disconnected from invalid user Changeme! 200.170.248.190 port 55992 [preauth]

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. 8 formas de verificar las conexiones ssh activas.

Chat de SoloLinux en Telegram

 

Agregar comentario