Este post esta dedicado a matar conexiones tcp, muchas veces tenemos alguna conexión tcp que queremos matar, pero no queremos matar el proceso. Por ejemplo una consola de vnc manejada por qemu. Para estos casos en que solo queremos matar la conexión tcp podemos utilizar el comando tcpkill (que lo provee el paquete dsniff), el uso del mismo es el siguiente:

1
2
3
4
pepo@frank:~$ tcpkill --help
tcpkill: invalid option -- -
Version: 2.4
Usage: tcpkill \[-i interface\] \[-1..9\] expression

Donde:                 -i interface # es la interface de red                [-1.. 9 ] #el grado de fuerza bruta con el que se mata la conexión, el default es 3                 expression # filtro a utilizar, al estilo tcpdump (host, port, etc)

Ejemplo:

Vemos la conexión a matar

1
2
3
4
5
pepo@frank:~$ netstat -nalp|grep vnc
(No todos los procesos pueden ser identificados, no hay información de propiedad del proceso
 no se mostrarán, necesita ser superusuario para verlos todos.)
tcp        0      0 172.xx.xx.xx:40184      172.xx.xx.xx:5922       ESTABLECIDO 4426/vncviewer 
unix  3      \[ \]         FLUJO      CONECTADO     540821   4426/vncviewer     

Matamos

1
2
3
4
5
6
7
8
9
pepo@frank:~$ sudo tcpkill -i eth0 host 172.20.70.19 and port 5922
\[sudo\] password for pepo:
tcpkill: listening on eth0 \[host 172.20.70.19 and port 5922\]
172.20.70.19:5922 > 172.16.99.39:40184: R 2779891000:2779891000(0) win 0
172.20.70.19:5922 > 172.16.99.39:40184: R 2779891181:2779891181(0) win 0
172.20.70.19:5922 > 172.16.99.39:40184: R 2779891543:2779891543(0) win 0
172.16.99.39:40184 > 172.20.70.19:5922: R 3942621646:3942621646(0) win 0
172.16.99.39:40184 > 172.20.70.19:5922: R 3942623978:3942623978(0) win 0
172.16.99.39:40184 > 172.20.70.19:5922: R 3942628642:3942628642(0) win 0

Y listo….

1
pepo@frank:~$ netstat -nalp|grep vnc

(No todos los procesos pueden ser identificados, no hay información de propiedad del proceso  no se mostrarán, necesita ser superusuario para verlos todos.)