Solucionar problemas de red en Linux

Solucionar problemas de red en Linux

En este artículo, explicaremos cómo solucionar problemas de red en Linux usando el comando tcpdump.

tcpdump es un potente y flexible analizador de paquetes de línea de comandos; y libpcap, una biblioteca C / C ++ portátil para la captura de tráfico de red. Una herramienta poderosa y versátil que incluye muchas opciones y filtros, tcpdump se puede utilizar en una variedad de casos. Dado que es una herramienta de línea de comandos, es ideal para ejecutarla en servidores o dispositivos remotos para los que no hay una GUI disponible, para recopilar datos que puedan analizarse más tarde. También se puede iniciar en segundo plano o como un trabajo programado utilizando herramientas como cron.

Comencemos con el proceso de instalación.

1. Instale tcpdump

Si tcpdump aún no está instalado en su sistema, puede instalarlo usando el siguiente comando:

Para sistemas basados ​​en CentOS o Red Hat Enterprise Linux:

# dnf install tcpdump -y

Para el sistema basado en Ubuntu:

# apt-get install tcpdump -y

2. Verifique la instalación

Para verificar la instalación, use el siguiente comando:

# which tcpdump

Producción:

/usr/sbin/tcpdump

Capture paquetes con tcpdump

Antes de capturar los paquetes, verifique la interfaz de red usando los siguientes comandos:

# tcpdump -D

Mostrará todas las interfaces de red disponibles.

Ahora, comencemos a capturar algunos paquetes usando los siguientes comandos:

# tcpdump --interface any

Tcpdump continúa capturando paquetes hasta que recibe una señal de interrupción. Puede interrumpir la captura presionando Ctrl + C. Para limitar la cantidad de paquetes capturados y detener tcpdump, use la opción -c (para contar):

# tcpdump -i any -c 10

Deshabilitar la resolución de nombres

Para solucionar problemas de red, a menudo es más fácil utilizar las direcciones IP y los números de puerto; deshabilite la resolución de nombres usando la opción -n y la resolución del puerto con -nn:

# tcpdump -i any -c5 -nn

Como el comando anterior capturará la salida, ahora muestra las direcciones IP y los números de puerto.

Filtrado de paquetes

Una de las características más poderosas de tcpdump es su capacidad para filtrar los paquetes capturados usando una variedad de parámetros, como direcciones IP de origen y destino, puertos, protocolos, etc. Veamos algunos de los más comunes.

Para capturar solo paquetes ICMP, use los siguientes comandos:

# tcpdump -i any -c10 icmp

Limite la captura solo a los paquetes relacionados con un host específico mediante el uso del filtro de host:

# tcpdump -i any -c5 -nn host 192.168.0.12

El comando anterior capturará y mostrará solo paquetes hacia y desde el host 192.168.0.12.

Para filtrar paquetes según el servicio o puerto deseado, use el filtro de puerto. Por ejemplo, capture paquetes relacionados con un servicio web (HTTP) mediante este comando:

# tcpdump -i any -c10 -nn port 80

Para filtrar paquetes según la dirección IP de origen o destino o el nombre de host. Por ejemplo, para capturar paquetes del host 192.168.0.12:

# tcpdump -i any -c10 -nn src 192.168.0.12

Guardar capturas en un archivo

Para guardar paquetes en un archivo en lugar de mostrarlos en la pantalla, use la opción -w (para escribir):

# tcpdump -i any -c10 -nn -w webserver.pcap port 80

El comando anterior permitirá capturar paquetes en modo por lotes durante la noche, por ejemplo, y verificar los resultados por la mañana. También ayuda cuando hay demasiados paquetes para analizar, ya que la captura en tiempo real puede ocurrir demasiado rápido.

Más comandos de ejemplo

Para imprimir los paquetes inicial y final (los paquetes SYN y FIN) de cada conversación TCP que involucre un host no local.

# tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'

Para imprimir los paquetes TCP con los indicadores RST y ACK configurados. (es decir, seleccione solo las banderas RST y ACK en el campo de banderas, y si el resultado es "RST y ACK ambos configurados", coincida)

# tcpdump 'tcp[tcpflags] & (tcp-rst|tcp-ack) == (tcp-rst|tcp-ack)'

Para imprimir todos los paquetes HTTP IPv4 hacia y desde el puerto 80, es decir, imprima solo los paquetes que contienen datos, no, por ejemplo, los paquetes SYN y FIN y los paquetes solo ACK. (IPv6 se deja como ejercicio para el lector).

# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<2)) -="" ((tcp[12]&0xf0)="">>2)) != 0)'

Para imprimir paquetes IP de más de 576 bytes enviados a través del gateway snup:

# tcpdump 'gateway snup and ip[2:2] > 576'

Para imprimir paquetes de difusión o multidifusión IP que no se enviaron a través de difusión o multidifusión Ethernet:

# tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'

Para imprimir todos los paquetes ICMP que no son solicitudes / respuestas de eco (es decir, no paquetes de ping):

# tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

Verifique la página de manual usando el siguiente comando:

# man tcpdump

En este artículo, hemos visto cómo solucionar problemas de red en Linux usando el comando tcpump.

Obtenga un servidor dedicado de la serie E5 dual de alto rendimiento y un VPS KVM económico.


Cómo instalar y configurar CSF (ConfigServer Security & Firewall) en CentOS 7

Cómo instalar y configurar CSF (ConfigServer Security & Firewall) en CentOS 7

ConfigServer Security & Firewall (también llamado csf en forma abreviada) es un firewall de inspección de paquetes de estado (SPI). Aprenda a instalar y configurar CSF en CentOS 7

Cómo instalar el agente de copia de seguridad R1Soft en CentOS

Cómo instalar el agente de copia de seguridad R1Soft en CentOS

Aprenda a instalar R1Soft Backup Agent en CentOS y configurarlo. R1Soft Server Backup Manager ofrece a los proveedores de servicios una solución flexible y fácil de usar.

Cómo modificar los límites de CloudLinux LVE

Cómo modificar los límites de CloudLinux LVE

En este artículo, hemos explicado cómo modificar los límites de CloudLinux LVE. Entonces empecemos. Los límites de CloudLinux LVE se pueden cambiar utilizando LVE Manager.

Cómo cambiar el SSH del puerto del servidor Linux

Cómo cambiar el SSH del puerto del servidor Linux

Para cambiar el puerto SSH del servidor Linux, debe iniciar sesión en el servidor a través de SSH y modificar el archivo de configuración SSH.

Cómo instalar Centova Cast en CentOS

Cómo instalar Centova Cast en CentOS

Centova Cast es la plataforma de gestión líder para transmisiones de radio por Internet, que proporciona una amplia información y control a los proveedores de alojamiento de transmisiones.

Cómo configurar la retransmisión de correo en su servidor de correo

Cómo configurar la retransmisión de correo en su servidor de correo

Puede solucionar los problemas de envío de correo electrónico utilizando la siguiente configuración de retransmisión de correo electrónico.

Cómo instalar Apache, MariaDB, PHP y phpMyAdmin en Ubuntu 18.04

Cómo instalar Apache, MariaDB, PHP y phpMyAdmin en Ubuntu 18.04

Aprenderemos a instalar Apache MariaDB PHP y PHPMyAdmin en el servidor Ubuntu 18.04. Apache, MySQL / MariaDB y PHP están compuestos por paquetes. Se conoce como LAMP

Aprenda la gestión básica de usuarios en Linux

Aprenda la gestión básica de usuarios en Linux

¿Quiere agregar, modificar o eliminar un usuario en Linux? Aquí tienes el artículo perfecto.

Aprenda la gestión básica de grupos en Linux

Aprenda la gestión básica de grupos en Linux

Obtenga más información sobre la gestión de grupos en Linux. Cómo agregar grupos, modificar grupos y eliminar grupos, agregar miembros en Linux. Cree un nuevo grupo, use el comando groupadd.

Aprenda a instalar Fail2ban en CentOS 7

Aprenda a instalar Fail2ban en CentOS 7

Fail2ban es muy útil para asegurar la conexión SSH. Ahora debería poder instalar y configurar fail2ban en centos7, agregue una capa adicional de seguridad al servidor