Copyright © 2005-2024 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.
Si se tiene un servidor ssh al que seguramente se conectan clientes desde otros equipos Linux o Windows con clientes de ssh como putty, pues sucederá que algunas veces se requiere terminar la conexión desde el lado del servidor, sobre todo ¡¡si es una conexión sospechosa!!. LinuxTotal.com.mx te presenta un par de formas de lograrlo al matar los procesos que generan este tipo de conexiones.
ps
y
killLa manera de terminar la conexión ssh desde el servidor es matando el número de proceso (PID) relacionado al socket de red de la conexión establecida. Si usamos netstat
con las opciones correctas podremos observar esta conexión:
#> netstat -pnat Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:902 0.0.0.0:* LISTEN 4869/xinetd tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 5213/smbd tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 5459/perl tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 5177/X tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5222/httpd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 5222/httpd tcp 0 0 :::22 :::* LISTEN 5160/sshd tcp 0 0 ::ffff:192.168.1.72:22 ::ffff:192.168.1.100:55855 ESTABLISHED 6950/sshd: sergio
En la última línea claramente se observa que el equipo remoto (cliente) 192.168.1.100 esta conectado al puerto 22 del equipo 192.168.1.72 que en este caso sería el servidor ssh, también en la última columna, tenemos el PID 6950 y al usuario sergio. Datos que nos indican el proceso del socket que se estableció en la conexión ssh y el usuario que se logueo desde el equipo remoto.
Si el usuario remoto que se hubiera conectado fuera root, entonces ya bastaría con matar el PID mostrado y terminariamos la conexión, pero en este caso (que debe ser lo correcto por seguridad) un usuario normal (sergio) fue el que se conectó y en este caso se generan dos PID's para la conexión, veámoslo con un ps
:
#> ps -ef | grep sergon root 6950 5160 0 20:06 ? 00:00:00 sshd: sergon [priv] sergon 6953 6950 0 20:06 ? 00:00:00 sshd: sergon@pts/3
Un usuario normal genera dos procesos, habrá que matar a los dos o con que termines el proceso asignado al usuario que en este caso sería 6953:
#> kill -9 6953 $> Connection to 192.168.1.72 closed by remote host. Connection to 192.168.1.72 closed.
El mensaje dice que la conexión fue cerrada por el 'remote host' host remoto, confirmando que fue desde el lado del servidor que se interrumpió o "mató" el enlace.
who
y pkill
En el listado de ps
anterior, además de ver su número de proceso también obervamos a que terminal esta ligado el proceso, en la última columna está el dato y es: 'sergio@pts/3', lo mismo se obtiene más simplemente con el comando who
:
#> who sergio :0 2007-11-05 19:28 sergio pts/3 2007-11-05 20:23 (192.168.1.100)
Sabiendo entonces que hay un usuario en la pseudo terminal 3, es posible usar pkill
que permite enviar señales (signals) a los procesos basado no en su PID sino en sus atributos o características, en este caso el número de la terminal:
#> pkill -9 -t pts/3 $ Connection to 192.168.1.72 closed.
Se envió la señal -9 que indica matar (KILL) el proceso, la opción -t indica que se basará en un atributo de nombre de terminal y se indica después el nombre de la terminal en si pts/3.
Si administras un servidor ssh, ten a la mano estos útiles comandos que te permitirán terminar conexiones cuando tu lo desees, sin necesidad de terminar todo el servicio de ssh.
Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.
Dona a través de paypal::
O a través de bitcoins:
Entre los administradores de sistemas Linux es común el término 'one liners', algo asi como 'los de una línea', y se refiere a ....
Hay ocasiones en que se te ofrece hacer cálculos matemáticos o aritméticos y no estás en el ambiente gráfico para abrir una c....
Linux es un sistema multiusuario, por lo tanto, la tarea de añadir, modificar, eliminar y en general administrar usuarios se conv....
Si acostumbras trabajar en la línea de comandos de Linux, muy posiblemente uses el shell bash (Bourne Again Shell, derivado del b....
He actualizado con varios nuevos comandos la popular guía de LinuxTotal.com.mx, asi como he añadido enlaces en los comandos en l....
En casi todas las distribuciones de Linux se instala por defecto el excelente programa para manipulación de imágenes ImageMagick....
Si ya has usado la línea de comandos o shell de Linux por un tiempo, seguramente entonces, el comando date ya te es familiar, lo ....
Sistemas Linux con gran cantidad de usuarios, como servidores de correo, servidores samba, etc., tarde o temprano tienen el proble....
mysqldump es una utilieria cliente de MySQL que te permite respaldar bases de datos. Aprende por ejemplos como utilizarlo. Puedes....
Utilizar los recursos informáticos un proveedor externo es lo que ahora se conoce como la nube, Cloud en inglés. Pero por otro l....