Recientemente, una de mis aplicaciones cliente-servidor comenzó a molestarme con algunas "notificaciones" muy molestas. Básicamente, lo que sucede es que el servidor remoto envía algunos paquetes a mi cliente, lo que los traduce en un mensaje que muestra en su interfaz. La cosa es: estas notificaciones realmente me molestan.
Dado que estas notificaciones no son nada vital para el cliente, comencé a analizar mis transmisiones TCP provenientes del servidor remoto. Noté un patrón obvio: cada vez que aparecen las notificaciones, me envían 4 paquetes específicos. Por ejemplo:
Flags [P.], seq 60:297, ack 1, win 257, options [nop, nop, TS val 108022880 ecr 914609], length 237
Flags [.], ack 6, win 257, options [nop, nop, TS val 108022891 ecr 915061], length 0
Flags [P.], seq 297:534, ack 6, win 257, options [nop, nop, TS val 108022891 ecr 915061], length 237
Flags [.], ack 11, win 257, options [nop, nop, TS val 108022904 ecr 915090], length 0
Observé la comunicación TCP durante un tiempo y dejé que aparecieran varias notificaciones. Esto es lo que noté:
- El servidor siempre envía paquetes 4 cuando solicita al cliente que me "notifique".
- Estos paquetes siempre se organizan en el mismo orden: 237 bytes, 0 bytes, 237 bytes, 0 bytes.
- El resto de la comunicación entre el servidor y el cliente no sigue ningún patrón (excepto cuando repetidamente hago las mismas solicitudes al cliente, por supuesto).
Desde que pude identificar un patrón, ahora me gustaría que mi máquina lo detecte cuando ocurra, y bloquee los paquetes asociados antes que lleguen al cliente.
He intentado usar el tamaño como parámetro de bloqueo usando:
iptables -I INPUT -p tcp -s [server-IP] -m length --length 237 -j DROP
Desafortunadamente, aún puedo ver los paquetes de 237 bytes que llegan al cliente ... ¿Hay alguna manera en que pueda ser lo suficientemente específico con iptables
, para bloquear esta secuencia en particular, sin cerrar toda la comunicación? streaming?
Editar: la opción No mostrar notificaciones molestas no existe en el cliente, eso sería demasiado fácil, ¿no es así? Estas notificaciones se parecen mucho a los anuncios.