Me gustaría recopilar registros de todas las comunicaciones de red entre los dispositivos de mi hogar (computadoras portátiles, teléfonos, etc.) y el mundo exterior en este formato:
Timestamp / Device MAC Address / Source IP:Port / Destination IP:Port / Protocol (Internet/Transport Layers) / Amount of data in bytes
La idea es configurar una caja física de Linux ("Servidor de registro") solo para iniciar sesión y ejecutar tcpdump
en él:
Internet ⟺ Logging Server ⟺ Wi-Fi/Ethernet Switch ⟺ Devices
(la caja tendrá dos interfaces Ethernet:para la conexión a Internet y para el conmutador local).
Suponiendo que me encargue de manejar los archivos de registro (rotación, análisis, alimentación a las herramientas de informes), cómo tcpdump
cómo se verá el comando?
Para ser claro, sé que lo más probable es que esta pregunta se pueda responder investigando la página del manual; Solo me gustaría aprovechar la amplia experiencia de alguien con tcpdump
para ahorrar tiempo, evitar errores comunes, etc.
P. S. El propósito principal de esto es monitorear/investigar puertas traseras potencialmente existentes o actividad de red no deseada/inesperada.
Respuesta aceptada:
tcpdump -n -e -q -i any
Con:
-n
:No convierta direcciones en nombres (esto evita notablemente quetcpdump
de hacer búsquedas DNS inversas)-e
:imprima el encabezado de nivel de enlace en cada línea de volcado (en particular, la dirección mac). Use esto en coordinación con-i any
, lo necesitará para volver a determinar la interfaz de red entrante/saliente.-q
:imprima menos información de protocolo para que las líneas de salida sean más cortas-i any
:elany
la palabra clave se puede usar para capturar paquetes de todas las interfaces
Tenga en cuenta que la longitud dada por el comando anterior es la longitud de la carga útil. Si también desea la longitud del paquete, elimine la opción '-q'.