TCP DOS: Как завершить CLOSE_WAIT соединения? [дублировать]

На этот вопрос уже есть ответ:

Один из моих серверов получает DOS'ed - в состоянии CLOSE_WAIT есть большое количество соединений, которые мешают законным пользователям подключаться к системе.

Итак, есть ли способ закрыть CLOSE_WAIT соединение, не убивая базовый серверный процесс? Уничтожение процесса приведет к простою, которого я хочу избежать.

Есть ли другой способ?

0
задан 18 February 2015 в 08:01
1 ответ

Насколько мне известно, закрыть CLOSE_WAT невозможно. соединение, не убивая процесс.

Возможно, вы могли бы использовать iptables и его недавний модуль, чтобы остановить несколько попыток подключения за короткий промежуток времени к тому же порту TCP-сервера и с того же IP-адреса.

Вот пример (измените eth0 для вашего сетевого интерфейса или просто удалить его):

iptables -N LOGDOS
iptables -A LOGDOS -m limit --limit 5/minute --limit-burst 5 -j ULOG --ulog-nlgroup 1 --ulog-prefix "LOGDOS" --ulog-cprange 0 --ulog-qthreshold 1
iptables -A LOGDOS -j DROP
iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 27015 -m state --state NEW -m recent --set --name cssdos
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 27015 -m state --state NEW -m recent --update --name cssdos --seconds 60 --hitcount 4 -j LOGDOS
iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 27015 -j ACCEPT

Краткое пояснение:

  1. Первые 3 строки будут использоваться ulogd. Это позволяет нам регистрировать потерянный трафик. Мы создаем новую цепочку iptables под названием LOGDOS.
  2. 4-я строка принимает установленные соединения.
  3. 5-я строка будет использоваться последним модулем для отслеживания новых подключений.
  4. 6-я строка будет использоваться последними модуль. В случае, если имеется более 3 новых подключений с одного IP менее чем за 60 секунд, оно будет отправлено в цепочку LOGDOS.
  5. Цепочка LOGDOS будет использовать демон ulogd для записи журнала (например, в / var / журнал / ulog / syslogemu.log,
3
ответ дан 4 December 2019 в 12:35

Теги

Похожие вопросы