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 (см. другое письмо).