DDoS атака может быть такой, когда атакующие забьют весь канал паразитным трафиком и тут ты просто ничего не сможешь сделать на своём хосте, проблема решается только на уровне вышестоящего магистрального провайдера. Так? Вроде так.
Тогда расмотрим классический «отказ в обслуживании», когда канал ещё не забит, потому что у атакующего кишка тонка столько нагадить, а сервисы на хосте пытаются свалить, ну, обычным флудом получается.
Гуглю, читаю гайды, какая-то феерия... Зачем люди столько морочатся с выявлением атакующих средствами netstat, скрипты пишут...
Почему бы проблему с DDoS а.к.а. флудом не решить модулем limit в iptables, или recent...
# iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW -m limit --limit 5/s --limit-burst 10 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate NEW -j DROP
Или так.
# iptables -A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -m recent --name DDOS --rttl --rcheck --hitcount 30 --seconds 60 -j DROP
# iptables -A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -m recent --name DDOS --set -j ACCEPT
Для чего нужно выявлять атакующие IP-адреса один за другим? Ну, их можно сразу логгировать тогда вышеуказанными способами, только делая -j LOG, а затем уже блочить (вручную?) (навсегда?).
Разве не должно быть простого решения защиты от DDoS вроде пары-тройки правил в iptables, а то мне кажется что раздувают из мухи слона, и до тех пор, пока канал не забит паразитным трафиком под завязку, париться вообще не о чем. Не?
Может оно так и есть, но просто начитавшись чего пишут про защиту от DDoS в интернетах, — кажется, всё слишком усложняют.