editar :Todavía recibo votos positivos por esto años después. Por favor, no busque esta respuesta, la respuesta usando iptables
aquí es muy superior en mi opinión.
tcpdump port 443 and '(tcp-syn|tcp-ack)!=0'
o solo tcp-syn
, o solo tcp-ack
(Supongo que sería ese), dependiendo de lo que necesites.
Puede usar el soporte de iptables en el kernel de Linux para esto. La ventaja es que no requiere ningún software adicional para ser moderadamente útil. La desventaja es que requiere privilegios de root para configurarlo (pero dado que está hablando del puerto 443, que es un puerto privilegiado, probablemente necesite privilegios de root con la mayoría de las soluciones).
Agregue una regla de iptables con algo como:
sudo iptables -I INPUT -p tcp --dport 443 --syn -j LOG --log-prefix "HTTPS SYN: "
(Ajuste el -I INPUT
parte a su gusto.)
Cuando se activa la regla, el kernel emitirá una entrada de syslog. Por ejemplo, con una regla de entrada, la entrada de registro puede verse como:
5 de diciembre 09:10:56 nombre de host kernel:[1023963.185332] HTTPS SYN:IN=ifX OUT=MAC=80:80:80:80:80:80:80:80:80:80:80:80:08:00 SRC=A.B.C.D DST=W.X.Y.Z LEN=52 TOS=0x00 PREC=0x20 TTL=119 ID=11901 DF PROTO=TCP SPT=37287 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0
Luego puede usar cualquier herramienta de monitoreo de registros común y corriente para hacer algo útil con esta información. Si su implementación de syslog lo admite, puede incluso dirigirlos a un archivo de registro separado, lo que cumplirá efectivamente con su requisito de escribir los datos de conexión en un archivo con marca de tiempo al segundo sin software adicional.
Tenga en cuenta que el LOG
el destino es un destino que no termina, lo que significa que cualquier regla que lo siga aún se evaluará y el paquete no será rechazado ni aceptado por la regla LOG en sí. Esto hace que el LOG
objetivo útil también para depurar reglas de cortafuegos.
Para evitar inundar su registro, considere usar el limit
módulo junto con este. Consulte la página del manual de iptables(8) para obtener más información.
Resolución de microsegundos
De forma predeterminada, la utilidad tcpdump informará el tiempo con una resolución de microsegundos. Por ejemplo:
$ sudo tcpdump -i any port 443
mostrará un resultado similar al siguiente:
12:08:14.028945 IP localhost.33255> localhost.https:Banderas [S], seq 1828376761, ganar 43690, opciones [mss 65495, sackOK, TS val 108010971 ecr 0, nop, wscale 7], longitud 0
12:08:14.028959 IP localhost.https> localhost.33255:Banderas [R.], secuencia 0, reconocimiento 1828376762, ganancia 0, longitud 0
Consulte tcpdump(8) para obtener una lista completa de las opciones de tcpdump y pcap-filter(7) para ver la sintaxis completa de los filtros que puede usar.