Si, se puede evitar poniendo las herramientas adecuadas. Yo en mi caso hice un pequeño script que se ejecutaba cada minuto y bloqueaba todas IPs que tuviesen abiertas demasiadas conexiones (100 por ejemplo).
El script era muy efectivo contra ataques DOS desde una dirección. El problema estaba cuando este ataque era distribuido, es decir, 300 maquinas abrían 1 o 2 conexiones. Por eso te digo que debes conocer cómo te han tirado el servidor y qué método han usado. Utiliza netstat para saber el número de conexiones en cada momento. Si alguna vez te tiran abajo el servidor web debes comprobar quién está ocupando todas las conexiones posibles.
Igualmente te recomiendo bloquear el protocolo ICMP (incluyen ping, trace, etc...) excepto para los monitores de OVH. Mírate
www.guias.ovh.es/FireWall
Un saludo