TCPflow. es una potente herramienta gratuita, de código abierto y basada en línea de comandos para analizar el tráfico de red en sistemas similares a Unix como Linux. Captura los datos recibidos o transferidos a través de conexiones TCP y los almacena en un archivo para su posterior análisis, en un formato útil que permite el análisis y la depuración del protocolo.
Leer también. 16 Las mejores herramientas de monitoreo de ancho de banda para analizar el uso de la red en Linux
En realidad, es una herramienta similar a tcpdump ya que procesa paquetes desde el cable o desde un archivo almacenado. Es compatible con las mismas expresiones de filtrado de gran alcance que admite su contraparte. La única diferencia es que tcpflow ordena todos los paquetes TCP y ensambla cada flujo en un archivo separado (un archivo para cada dirección de flujo) para su posterior análisis.
Su conjunto de características incluye un complemento avanzado sistema para descomprimir conexiones HTTP comprimidas, deshacer la codificación MIME o invocar programas de terceros para el posprocesamiento y mucho más.
Hay muchos casos de uso para tcpflow que incluyen comprender los flujos de paquetes de red y también es compatible con realizar análisis forenses de red y divulgar el contenido de las sesiones HTTP.
Cómo instalar TCPflow en sistemas Linux
freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotId: “tecmint_incontent” );
TCPflow. está disponible en los repositorios oficiales de las distribuciones principales de GNU/Linux, puede instalarlo usando su administrador de paquetes como se muestra.
$ sudo apt install tcpflow # Debian/Ubuntu $ sudo yum install tcpflow # CentOS/RHEL $ sudo dnf install tcpflow #Fedora 22+
Después de instalar tcpflow, puede ejecutarlo con privilegios de superusuario; de lo contrario, use el comando sudo. Tenga en cuenta que escucha en la interfaz de red activa (por ejemplo, enp0s3. .
$ sudo tcpflow. tcpflow: escucha en enp0s3
Por defecto, tcpflow almacena todo lo capturado datos en archivos que tienen nombres en el formulario (esto puede ser diferente si usa ciertas opciones como marca de tiempo. .
sourceip.sourceport-destip.destport 192.168.043.031.52920-216.058. 210.034.00443
Ahora hagamos una lista de directorios para ver si el flujo tcp ha sido capturado en algún archivo.
$ ls-1. total 20-rw-r-r–. 1 raíz raíz 808 19 de septiembre 12:49 192.168.043.031.52920-216.058.210.034.00443-rw-r-r–. 1 root root 59 Sep 19 12:49 216.058.210.034.00443-192.168.043.031.52920
Como mencionamos anteriormente, cada flujo TCP se almacena en su propio archivo. En la salida anterior, puede ver que hay tres archivos de transcripción, que indican tcpflow en dos direcciones opuestas, donde la IP de origen en el primer archivo y la IP de destino en el segundo archivo y viceversa.
El primer archivo 192.168.043.031.52920-216.058.210.034.00443. contiene datos transferidos desde el host 192.168.043.031. (el localhost en el que se ejecutó tcpflow) a través del puerto 52920. para alojar 216.058.210.034. (el host remoto) a través del puerto 443.
Y el segundo archivo 216.058. 210.034.00443-192.168.043.031.52920. contiene datos enviados desde el host 216.058.210.034. (el host remoto) a través del puerto 443. al host 192.168. 043.031. (el localhost en el que se ejecutó tcpflow) a través del puerto 52920.
También se genera un informe XML. que contiene información sobre el programa, por ejemplo, cómo se compiló y el proceso r fue ejecutado y un registro de cada conexión tcp.
Como habrás notado, tcpflow almacena los archivos de transcripción en el directorio actual por defecto. La opción-o puede ayudarlo a especificar el directorio de salida donde se escribirán los archivos de transcripción.
$ sudo tcpflow-o tcpflow_files. $ sudo ls-l tcpflow_files. total 32-rw-r-r–. 1 raíz raíz 1665 19 de septiembre 12:56 157.240.016.035.00443-192.168.000.103.45986-rw-r-r–. 1 raíz raíz 45 19 de septiembre 12:56 169.044.082.101.00443-192.168.000.103.55496-rw-r-r–. 1 raíz raíz 2738 19 de septiembre 12:56 172.217.166.046.00443-192.168.000.103.39954-rw-r-r–. 1 raíz raíz 68 19 de septiembre 12:56 192.168.000.102.00022-192.168.000.103.42436-rw-r-r–. 1 raíz raíz 573 19 de septiembre 12:56 192.168.000.103.39954-172.217.166.046.00443-rw-r-r–. 1 raíz raíz 4067 19 de septiembre 12:56 192.168.000.103.45986-157.240.016.035.00443-rw-r-r–. 1 raíz raíz 38 de septiembre de 19 12:56 192.168.000.103.55496-169.044.082.101.00443-rw-r-r–. 1 root root 3159 19 de septiembre 12:56 report.xml
También puede imprimir el contenido de los paquetes en stdout. a medida que se reciben, sin almacenar los datos capturados en archivos, utilizando la bandera-c como sigue.
Para probar esto de manera efectiva, abra una segunda terminal y ejecute un ping. o navegue por Internet. Debería poder ver los detalles del ping o los detalles de su navegación capturados por tcpflow.
$ sudo tcpflow-c
Es posible capturar todo el tráfico en un puerto en particular, por ejemplo, el puerto 80. ( HTTP. . En el caso del tráfico HTTP, podrá ver los encabezados HTTP seguidos del contenido en la salida estándar o en un archivo si se elimina el conmutador-c.
$ sudo tcpflow puerto 80
Para capturar paquetes de una interfaz de red específica, use la bandera-i para especificar el nombre de la interfaz.
$ sudo tcpflow-i eth0 port 80
También puede especificar un host de destino (los valores aceptados son dirección IP, nombre de host o dominios ), como se muestra.
$ sudo tcpflow-c host 192.68.43.1 O $ sudo tcpflow-c host www.google.com
Puede habilitar todo el procesamiento usando todos los escáneres con la marca-a, esto es equivalente al interruptor-e all.
$ sudo tcpflow-a O $ sudo tcpflow-e all
También se puede activar un escáner específico; los escáneres disponibles incluyen md5, http, netviz, tcpdemux y wifiviz (ejecute tcpflow-H. para ver información detallada sobre cada escáner).
$ sudo tcpflow-e http O $ sudo tcpflow-e md5 O $ sudo tcpflow-e netviz O $ sudo tcpflow-e tcpdemux O $ sudo tcpflow-e wifiviz
El siguiente ejemplo muestra cómo habilitar todos los escáneres excepto tcpdemux.
$ sudo tcpflow-a-x tcpdemux
TCPflow generalmente intenta poner la interfaz de red en modo promiscuo antes de capturar paquetes. Puede evitar esto usando el indicador-p como se muestra.
$ sudo tcpflow-p-i eth0
Para leer paquetes desde un archivo tcpdump pcap, use el indicador-r.
$ sudo tcpflow-f file.pcap
Puede habilitar el modo detallado usando las opciones-v o-d 10.
$ sudo tcpflow-v O $ sudo tcpflow-d 10
Importante. una limitación de tcpflow. es que, en este momento, no comprende los fragmentos de IP, por lo que los datos transmitidos como parte de las conexiones TCP que contienen fragmentos de IP no se capturarán correctamente.
Para obtener más información y opciones de uso, consulte la página de manual de tcpflow.
$ man tcpflow
Repositorio de Github de TCPflow. https://github.com/simsong/tcpflow
¡Eso es todo por ahora! TCPflow. es un potente registrador de flujo de TCP que es útil para comprender los flujos de paquetes de red y realizar análisis forenses de red, y mucho más. Pruébelo y comparta sus pensamientos con nosotros en los comentarios.