У моего сайта постоянно есть несколько пользователей онлайн. Сервер использует Apache / PHP, базу данных и Memcached. При обычном использовании приложение работает хорошо и быстро.
Тем не менее, сервер, кажется, иногда подвергается атакам «SYN-флуда». Я действительно считаю / подозреваю, что это сделано намеренно, а не по вине наших законных пользователей. (как они появляются, когда есть люди, которые регистрируют новые учетные записи и пытаются создать проблемы)
27 июня, 22:12:21 ядро xxxx: [xxxx.xxxx] возможное SYN-лавинное сообщение на порт 443. Отправка файлов cookie. 27 июня 22:13:22 ядро xxxx: [xxxx.xxxx] возможное SYN-лавинное сообщение на порт 443. Отправка файлов cookie. 27 июня, 22:14:25 xxxx kernel: [xxxx.xxxx] возможное SYN-лавинное сообщение на порт 443. Отправка файлов cookie.
К сожалению, когда это происходит, страдает весь мой трафик:
[Пн, 27 июня, 22:15: 28.842067, 2016] [mpm_event: error] [pid 12022: tid 132875292207712] AH00485: табло заполнено, не в MaxRequestWorkers
Мой MaxRequestWorkers - 600. Я увеличивал его несколько раз в прошлом.
Недавно я тоже увеличил net.ipv4.tcp_max_syn_backlog
и ListenBackLog
до 5000.
У моего сервера 16 ГБ ОЗУ и пропускная способность 1 Гбит / с.
Я не очень рад, что, кажется, есть кто-то, кто может легко контролировать, жив мой сайт или нет.
Что можно сделать, чтобы это остановить?
Также, netstat
кажется, прямо сейчас дает мне IP-адреса, подключенные к серверу.
Можно ли получить самые популярные IP-адреса в определенный момент в прошлом?
Проверить SynCookies
cat /proc/sys/net/ipv4/tcp_syncookies
и включите (установите 1), если отключено. Это помогает законным пользователям продолжать работу.
Также вы можете попробовать установить lover / proc / sys / net / ipv4 / tcp_synack_retries
https://stackoverflow.com/a/26674591/205355
Synflood обычно использует поддельные случайные IP-адреса источника, поэтому его нельзя фильтровать на основе IP-адреса источника.
Пока Ваш сервис публичный, любой может легко проверить его работоспособность.
Вы можете купить профессиональную услугу защиты от DDOS. Он использует огромный региональный распределенный кластер, DNS с учетом геолокации, корреляцию, сотрудничество с интернет-провайдерами и многое другое. Он перенаправляет чистый пользовательский трафик в Ваш сервис по IP, неизвестному публике (и хакерам). Но это может стоить дорого и может зависеть от мощности, необходимой для выживания и смягчения атаки.