ДДОС - это вид атак, при которых выполняется множество запросов на сервер. Обработка этих запросов занимает все ресурсы, что затормаживает или полностью останавливает работу сервера. Она неприятна тем, что даже установив точку входа атаки бывает невозможно оставить сервер в рабочем состоянии без блокировки этого сайта.
Определить такую атаку можно по количеству одновременных соединений, командой
netstat -na | grep :80 | wc -l
Посмотреть на какой домен чаще всего идут запросы такой командой.
tcpdump -npi eth0 port domain
Если у Вас немного сайтов и логи доступа находятся в одной папке удобно отслеживать атаку просматривая размер логов доступа. Следующей командой можно каждые 2 секунды будут выводить список логов apache. Если размер верхнего файла быстро растет, почти наверняка атака идет на этот сайт.
watch 'ls -laS /var/www/httpd-logs/'
(путь к папке с логами доступа может быть разной в зависимости от дистрибутива и используемой панели управления сервером)
Увидеть последние запросы в этом файле можно командой tail имя_файла . В этих строках показано с каких IP исходят запросы.
Когда точка входа атаки определена можно приступить к блокировке IP с которых исходят запросы. Проще всего это сделать добавив правило в фаерволле iptables.
Заблокировать доступ с IP по протоколу tcp и 80 порту можно командой
iptables -A INPUT -p tcp --dport 80 -s xxx.xxx.xxx.xxx -j DROP
(xxx.xxx.xxx.xxx - IP, который нужно заблокировать)
Полностью заблокировать доступ с IP можно командой
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Посмотреть сколько уже добавленых правил можно такой командой
iptables -L -n --line-numbers
Убрать случайно заблокированный IP из списка можно так
iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
В некоторых случаях атаки исходят из абсолютно разных IP и подсетей. Блокировка отдельных адресов в этом случае малоэффективна. Чтобы сохранить работу сервера рекомендуется полностью закрыть доступ к атакуемому сайту через директиву deny from all в файле .htaccess для этого сайта, а также в А записях домена указать IP 127.0.0.1. Так запросы на Ваш сайт будут возвращаться обратно их отправителю.