Мне было интересно, считает ли брандмауэр csf соединения за последние CT_INTERVAL секунд, а затем сравнивает их со значением CT_LIMIT, или он просто считает текущие (на данный момент) соединения, а затем сравнивает их с CT_LIMIT?
Потому что в последнем случае злоумышленник может легко угадать CT_INTERVAL, а затем затопить ваш сервер на CT_INTERVAL-1 секунд и не отправлять какие-либо соединения прямо, когда брандмауэр проверяет соединения. На самом деле, я считаю, что это случилось с нами недавно, и нам пришлось вручную заблокировать нарушающий IP.
Заранее спасибо!
Поскольку никто не ответил, я загрузил исходный код брандмауэра csf и проверил, как используется параметр CT_LIMIT. Очевидно, информация о соединениях читается из / proc / net / tcp | udp | etc .., который содержит только текущие соединения с сервером.
Таким образом, похоже, что злоумышленник может легко обойти защиту DOS брандмауэра cfs, сделав паузу во время проверки брандмауэром текущих активных соединений.
Временным обходным решением может быть установка CT_INTERVAL на 10 секунд (это минимум), следовательно, заставить брандмауэр проверять текущие соединения каждые 10 секунд. Из-за этого злоумышленнику будет сложнее угадать точное время, когда ему нужно приостановить атаку.