1) И обнаруживать, и банить можно и нужно на нескольких уровнях.
Грубые атаки обнаруживать командой ss (не netsat!).
Безусловную блокировку делать через ipset (не iptables!).
Через nginx обнаруживать хитрые атаки, блокировать подозрительные.
2) В качестве отправной точки ищите в Гугле "site:habrahabr.ru nginx ipset".
Особо рекомендую
habrahabr.ru/post/139931
3) Не пытайтесь сразу построить идеальную защиту.
Начните с простейшей и постепенно совершенствуйте.
4) Если вы не крутой спец по антиддосу, абсолютная защищенность недостижима. Можно только повысить порог пробития.