16.03.12 15:22, Slawa Olhovchenkov написав(ла):
On Fri, Mar 16, 2012 at 12:22:13AM +0200, Vadym S. Khondar wrote:

Здравствуйте!

Столкнулся со следующей ситуацией:

есть сервер-фронтенд с nginx, два интерфейса - один для запросов
клиентов, второй для запросов к бекенду.
Сервер периодически ддосят разными способами. После одной из таких атак,
когда практически остались только правильные запросы со стороны
клиентов, на интерфейсе к бекенду в течение длительного времени наблюдал
картину:

13:26:44.675095 IP frontend_ip.27877>  backend_ip.80: Flags [.], ack
2911656049, win 65535, length 0
13:26:44.675369 IP backend_ip.80>  frontend_ip.27877: Flags [.], ack 1,
win 8760, length 0
13:26:44.675377 IP frontend_ip.27877>  backend_ip.80: Flags [.], ack
2911656049, win 65535, length 0
13:26:44.675619 IP backend_ip.80>  frontend_ip.27877: Flags [.], ack 1,
win 8760, length 0
13:26:44.675638 IP frontend_ip.27877>  backend_ip.80: Flags [.], ack
2911656049, win 65535, length 0
13:26:44.675868 IP backend_ip.80>  frontend_ip.27877: Flags [.], ack 1,
win 8760, length 0
13:26:44.675876 IP frontend_ip.27877>  backend_ip.80: Flags [.], ack
2911656049, win 65535, length 0

Временами количество такого трафика доходило до 20kpps.

Убийство nginx'а этого потока не остановила. Соединение это по нетстату
пребывало в FIN_WAIT_1.

когда оно там пребывало? до убиства или после?

Самое интересное, что и после. И в течение нескольких часов.

И таких потоков было несколько наряду с нормальными соединениями к бекенду.
Поборолось явным block return для проблемных соединений.

uname -rms
FreeBSD 9.0-RELEASE amd64
nginx 1.0.10
Интерфейс с проблемными соединениями - em.
Есть pf с несколькими rdr и pass all no state для остального.

а нахера на интерфейсе к бекенду pf?
Не точно выразился - правило, затрагивающее интерфейс к бекенду только одно - pass (см. другое письмо).

Ответить