Diría que con experiencia.
Todo puerto que pongas a escucha es un punto desde el que te pueden atacar, no solo para DDoS, por lo que cada uno puedes asegurarlo a su manera. Igual hay que comprender que un ataque de denegación de sercivios, no solo va a atacar saturando la red, pueden saturar cualquier cosa que use tu web para funcionar y aprovechar características de tu web para potenciar el ataque.
En lo personal considero, sobre todo para temas de hacer lo máximo con lo mínimo, que la protección tiene que ser siempre respuesta y solo preventiva en casos en los que sabes que si o sí va a llegar un ataque, como es el caso del SSH que siempre hay bots haciendo bruteforce a toda ip que puedan.
En el caso del SSH ya mencioné fail2ban, este con solo instalarlo viene por defecto ya con un filtro activado que banea la IP cuando fallan 3 veces al colocar la contraseña, de igual modo puedes usar llave SSH (en linux es super sencillo) y desactivar el uso de contraseña.
El resto es solo ir aprendiendo sobre la marcha los comandos que vayas necesitando, así como leer sus resultados (no es complicado realmente). Si quieres algunos para comenzar, te diría que serían estos: top, htop, tail, nano, cat, cd, ls.
Con esos 7 comandos y saber como configurar (además de detener, reinicar, recargar y detener) los servicios que uses en tu server, ya tienes todo lo necesario para ir acumulando experiencia.
PD: Aquí tienes un ejemplo de un server que tengo con contraseña en lugar de clave SSH y como fail2ban está constantemente baneando IPs que le meten ataques de fuerza bruta:
(http://imgur.com/geHDmM5)
kj