You are on page 1of 3

COMO CERRAR CONEXIONES DE SSH

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 conexin
desde el lado del servidor, sobre todo si es una conexin sospechosa!!.
LinuxTotal.com.mx te presenta un par de formas de lograrlo al matar los
procesos que generan este tipo de conexiones.

Con ps y kill
La manera de terminar la conexin ssh desde el servidor es matando el
nmero de proceso (PID) relacionado al socket de red de la conexin
establecida.
Si usamos netstat con las opciones correctas podremos observar esta
conexin:
#> 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 lnea 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 sera el servidor ssh, tambin 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


conexin ssh y el usuario que se logueo desde el equipo remoto.
Si el usuario remoto que se hubiera conectado fuera root, entonces ya
bastara con matar el PID mostrado y terminariamos la conexin, 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 conexin, vemoslo con un ps:
#> ps -ef | grep sergon
root
6950 5160 0 20:06 ?
sergon 6953 6950 0 20:06 ?

00:00:00 sshd: sergon [priv]


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 sera
6953:
#> kill -9 6953
(del lado del cliente, ver el siguiente mensaje)
$> Connection to 192.168.1.72 closed by remote host.
Connection to 192.168.1.72 closed.
El mensaje dice que la conexin fue cerrada por el 'remote host' host
remoto, confirmando que fue desde el lado del servidor que se
interrumpi o "mat" el enlace.

Con who y pkill


En el listado de ps anterior, adems de ver su nmero de proceso
tambin obervamos a que terminal esta ligado el proceso, en la ltima
columna est el dato y es: 'sergio@pts/3', lo mismo se obtiene ms
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 seales (signals) a los procesos
basado no en su PID sino en sus atributos o caractersticas, en este caso
el nmero de la terminal:
#> pkill -9 -t pts/3

(del lado del cliente, ver el siguiente mensaje)


$ Connection to 192.168.1.72 closed.
Se envi la seal -9 que indica matar (KILL) el proceso, la opcin -t indica
que se basar en un atributo de nombre de terminal y se indica despus
el nombre de la terminal en si pts/3.
Si administras un servidor ssh, ten a la mano estos tiles comandos que
te permitirn terminar conexiones cuando tu lo desees, sin necesidad de
terminar todo el servicio de ssh.

You might also like