Primero intentaría utilizar las herramientas establecidas, antes de escribir mi propio código de monitoreo de interfaz de red.
Lo más probable es que si está tratando de proteger un servidor, de todos modos estará indefenso ante una DDoS suficientemente grande (alguien que se encuentre más arriba en la cadena de enrutamiento tendrá que tomar medidas ante los ataques de ruta nula), por lo que el argumento principal a favor de escribir su propio código C, detección eficiente, no es muy fuerte).
(El párrafo anterior no se aplica si está tratando de detectar un DDoS que fluye a través de un hardware especializado, como enrutadores grandes; en tal caso, sería parte del esfuerzo por detener un DDoS antes de que llegue al punto. su principal preocupación sería la eficiencia y el objetivo, pero me sentiría decepcionado si los enrutadores de alta capacidad ya no tuvieran incorporadas tales capacidades)
Además de tcpdump, también puedes usar netstat (para tener una idea rápida del número de conexiones o conexiones en un estado zombie), iptables (tanto para registrar paquetes y luego actuar sobre el registro, como para eliminar paquetes sospechosos de inmediato) y fail2ban (puede configurarlo para que cuente, digamos, solicitudes HTTP GET o intentos de conexión SSH, etc., y luego elimine automáticamente las IP en cuestión y, por supuesto, también produzca mensajes de registro que un script de detección DDoS adicional puede recoger y utilizar para notificarle).
Un problema al basar el código de detección para una DDoS en el servidor que está siendo DDoSed es que si cuenta con el servidor para que le notifique el ataque a la red, puede sentirse decepcionado porque el servidor podría no tener la CPU. recursos o el ancho de banda disponible para enviar una notificación más. Por lo tanto, debería tener un medio de comunicación secundario, por ejemplo, un módem GSM sobre el cual se lo notifique (y eso es asumiendo que el servidor todavía tiene los recursos de la CPU disponibles para ejecutar su código de notificación).
Hay otra forma muy sencilla y mucho más prometedora de crear un monitor DDoS: configure un pequeño script en otro servidor que intente conectarse a su servidor periódicamente. Si no se puede conectar, puede suponer que su servidor está inactivo, que la red entre su servidor y su monitor está inactiva o que hay una DDoS en curso. Siguiendo esta ruta, ni siquiera tiene que escribir ningún software; solo suscríbase a un servicio en línea que verifique los tiempos de servicio. Hay muchos disponibles, algunos incluso gratis.