¿Puedo usar 'lsof' para determinar de manera confiable qué proceso local se ha conectado a mi puerto abierto?

5

Supongamos que estoy ejecutando una aplicación de servidor en 127.0.0.1:7646 y un proceso local (posiblemente propiedad de otro usuario) se conecta a ella, puedo ejecutar

lsof -Fp -i [email protected]:7646 -i [email protected]:<ClientPort>

que produce algo como

p6429
f4
p6433
f5

donde p* son los PID de ambos participantes / puntos finales.

Ahora mi pregunta es: ¿puedo confiar en la salida de lsof (siempre que nadie haya modificado el lsof -binary)? O en otros términos: ¿podría alguien sin permisos de raíz manipular la salida de lsof s para mostrar un PID diferente?

Editar: si esto depende de la plataforma, estoy especialmente interesado en macOS, Linux y FreeBSD.

    
pregunta K. Biermann 25.10.2018 - 14:32
fuente

1 respuesta

1

Si confía en el usuario que ejecuta lsof y especifica la ruta completa (/ usr / bin / lsof?), debería poder confiar en la salida. Si desea que lsof se ejecute como el usuario que se está conectando a su servidor, es realmente difícil evitar que se ejecute un lsof en su ruta o que un alias detecte la llamada primero. Consulte también 'netstat -A inet -A inet6 -alp'

Si está realmente paranoico, puede consultar la base de datos del administrador de paquetes (rpm, dpkg, etc.) para asegurarse de que el binario no haya cambiado desde la instalación antes de llamarlo (con la ruta completa).

    
respondido por el Jesse Brandeburg 26.10.2018 - 00:13
fuente

Lea otras preguntas en las etiquetas