Matar concexiones ssh
MATAR CONEXIONES SSH DESDE EL SERVIDOR
(Sin reiniciar el servicio)
# 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.34:22 ::ffff:192.168.1.100:55855 ESTABLISHED 6950/sshd: carlos
En la última línea se observa que el equipo remoto (cliente) 192.168.1.100 está conectado al puerto 22 del equipo 192.168.1.34 que es el servidor ssh con el PID 6950 y nombre de usuario carlos.
Si el usuario remoto que se hubiera conectado como root, entonces bastaría con matar el PID mostrado, pero en este caso (lo correcto por seguridad) un usuario normal (carlos) 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 carlon
root 6950 5160 0 20:06 ? 00:00:00 sshd: carlon [priv]
carlon 6953 6950 0 20:06 ? 00:00:00 sshd: carlon@pts/3
Al menos debe matarse el asignado al usuario (6953):
# kill -9 6953
El cliente verá el siguiente mensaje:
$ Connection to 192.168.1.72 closed by remote host.
Connection to 192.168.1.72 closed.
Lo mismo se puede hacer con los comandos who y pkill:
# who
sergio :0 2007-11-05 19:28
sergio pts/3 2007-11-05 20:23 (192.168.1.100)
Sabiendo que hay un usuario en la pseudo terminal 3, es posible usar pkill que permite enviar señales a los procesos basados no en su PID sino en sus atributos o características:
# pkill -9 -t pts/3
El cliente, verá el siguiente mensaje:
$ Connection to 192.168.1.72 closed.