¿Cómo usar lsof para identificar las conexiones TCP entrantes?

Quiero saber si mi server establece una connection a un server remoto o si el server remoto intenta llegar a mi server. Intenté leer el resultado de lsof y get esta información:

 lsof -i TCP:25 USER FD TYPE DEVICE SIZE/OFF NODE NAME master 2657 root 12u IPv4 8086 0t0 TCP *:smtp (LISTEN) smtpd 12950 postfix 6u IPv4 8086 0t0 TCP *:smtp (LISTEN) smtpd 12950 postfix 9u IPv4 35762406 0t0 TCP hostname:smtp->spe.cif.ic.IP:55277 (ESTABLISHED) smtp 13007 postfix 13u IPv4 35762309 0t0 TCP hostname:34434->fake.VVVVV.fr:smtp (ESTABLISHED) smtpd 14188 postfix 6u IPv4 8086 0t0 TCP *:smtp (LISTEN) smtpd 14188 postfix 9u IPv4 35748921 0t0 TCP hostname:smtp->XX.XX.XX.XX:55912 (ESTABLISHED) smtpd 14897 postfix 6u IPv4 8086 0t0 TCP *:smtp (LISTEN) 

Me gustaría saber si esta información significa que mi server intenta conectarse a spe.cif.ic.IP o si es al revés.
Es el signo -> relevante, o debería usar un command diferente?

Creo que la key está en los numbers de los puertos, toma estas dos inputs

 smtpd 12950 postfix 9u IPv4 35762406 0t0 TCP hostname:smtp->spe.cif.ic.IP:55277 (ESTABLISHED) smtp 13007 postfix 13u IPv4 35762309 0t0 TCP hostname:34434->fake.VVVVV.fr:smtp (ESTABLISHED) 

smtpd ha recibido una connection en el puerto smtp (25) desde un número de puerto alto, mientras que smtp se conecta al puerto remoto smtp (25) y tiene un número de puerto local alto.

Entonces -> significa conectado a

En Linux al less, lsof no puede decirle qué final inició la connection, ya que obtiene la list de /proc/net/tcp donde esa información no está disponible. La primera dirección siempre se refiere al punto final local .

Las versiones recientes de la utilidad ss (que usan una API de kernel diferente para recuperar información de connection), con -e , le darán instrucciones, pero desafortunadamente no para conexiones TCP.

Como dijo @XTian , para TCP / SCTP / UDP, generalmente puede adivinar cuál es, ya que el iniciador de la connection generalmente usará un puerto alto, mientras que el destino normalmente será un puerto bajo bien conocido. Sin embargo, no hay garantía. Ver que la máquina también tiene o no tomas de escucha en ese mismo puerto también puede reconfortarlo en su idea de en qué dirección se encuentra. Por ejemplo, en su caso, es probable que tenga un process de escucha en el puerto smtp/25 pero ninguno en el puerto unknown/34434 . Sería muy poco probable que fake.VVVVV.fr hubiera iniciado una connection con el puerto 34434 en su máquina especialmente con un puerto de origen 25 / smtp (improbable pero perfectamente posible).

Para algo más confiable, puede consultar el rastreador de connection.

El rastreador de connection de firewall del sistema hará un seguimiento de qué extremo inició la connection (o envió el primer package para protocolos de transporte sin connection como UDP). Puede consultar la tabla de seguimiento de la connection con la utilidad de command-line conntrack o con el iptstate top-like.

Allí, la primera dirección en cada línea será la de quien inicia la connection.

Tenga en count que includeá todas las conexiones rastreadas, por lo que posiblemente también las conexiones se reenvíen a través del sistema, como en los enrutadores.