Я пытаюсь заблокировать атаки RST с помощью IPTables.
Когда я ищу его, я вижу правила, в которых для пакетов с установленным флагом RST ограничена скорость.
Я немного сомневаюсь в этом. Я думаю, мне нужно ограничить скорость RST / ACK, а не RST
Если я не ошибаюсь, когда клиент решает прервать существующее соединение, сервер получает пакет RST / ACK, и сервер отвечает ACK и закрывает соединение.
Таким образом, обычно сервер никогда не получает и не отправляет пакеты RST. Я думаю это всегда RST / ACK
Если только клиент не подделывается и злоумышленник не вставляет флаг RST.
Но почему это закрывает связь?
Я, вероятно, ошибаюсь, потому что вижу это везде, куда смотрю, но я думаю, что злоумышленнику нужно вставить RST / ACK, это не правильно?
Разве сервер не может видеть разницу между RST / ACK и RST без ACK?
RST отправляется, чтобы сигнализировать об аварийном завершении соединения. Нормальный сигнал для завершения соединения - FIN.
Их могут отправлять обе стороны соединения TCP / IP. Сторона-получатель должна ответить ACK, чтобы отправитель знал, что это нормально, иначе он будет повторно отправлять сигнал снова и снова, пока не истечет время ожидания или пока не получит ACK.
Если вы фильтруете скорость, с которой сервер может получать RST, вам не нужно фильтровать ACK, потому что он будет отправлять ACK только один раз для каждого RST.
И вам не нужно фильтровать полученные ACK, потому что это не угроза.
Поскольку сервер редко получает RST при нормальной работе, большинство из них обычно отключается.
Когда настоящий RST отправляется иностранным хостом, вероятность того, что он будет отброшен, составляет, скажем, 75%. Таким образом, сервер никогда не отправляет ACK. Таким образом, хост отправляет его снова и снова, пока он не пройдет фильтр. Итак, сервер отправляет ACK и вуаля.
Сигнал RST, используемый в атаке, содержит поддельный IP-адрес источника с намерением разорвать существующее соединение. Эта атака была изобретена примерно в 2003/2004 году. Это эффективно только тогда, когда цель имеет большую полосу пропускания, потому что злоумышленник должен попробовать миллионы IP-адресов + порядковые номера для успешной атаки.
Поскольку поддельный RST содержит случайный IP-адрес + случайный порядковый номер, ограничение их скорости - это способ снизить вероятность совпадения одного поддельного RST с реальным соединением.
Таким образом, эта атака в основном используется, когда злоумышленник знает, кто с кем связан. По линии T1, когда злоумышленник точно знает, какой исходный IP-адрес отбросить, атака займет всего 5-30 секунд (если линия полностью свободна, иначе атака займет больше времени. Например, если линия занята на 50%, время удвоено). Если вы ограничите их рейтинг, это может занять гораздо больше времени.