Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Vadim Guchenko                       2:5020/400     20 Jul 2007  14:00:51
 To : Victor Sudakov
 Subject : ipfw and keep-state
 -------------------------------------------------------------------------------- 
 
 
 >>  VS> Hасчёт established спорно. Пропускать пакет от кого попало только
 >> на том основании, что на нём есть ACK bit?
 >> А чем это хуже ситуации с динамическими правилами?
  VS> Теоретически, может случиться ACK flood и firewall не спасет.
 
 Попробую рассмотреть все варианты, связанные с TCP.
 
 1. Предположим, некоторый сервер, имеющий реальный адрес, установил 
 TCP-соединение с удаленным хостом:
 
 local_ip:local_port <-> remote_ip:remote_port
 
 Если никакого файрвола нет, то сервер будет принимать все приходящие 
 TCP-пакеты. Однако в обработку, в рамках рассматриваемого соединения, 
 попадут только те пакеты, которые пришли с remote_ip:remote_port на 
 local_ip:local_port. Остальные пакеты будут отброшены TCP-стеком (либо 
 обработаны в рамках других активных соединений). После того, как проверка 
 адресов и портов прошла успешно, анализируются другие поля в TCP-пакете, в 
 частности sequence number. Если тупо флудить с различных адресов и портов 
 TCP-пакетами на local_ip:local_port, это ничего не даст, т.к. все пакеты 
 будут проигнорированы TCP-стеком. Для получения результата флудить нужно 
 так, чтобы в src_ip был remote_ip, а в src_port - remote_port. Hо даже если 
 и это будет выполнено, встает вопрос об угадывании sequence number, времени 
 посылки пакета и т.д.
 
 Предположим где-то на шлюзе настроен ipfw с правилом allow tcp from any to 
 any established. Т.е. он пропускает через себя все TCP-пакеты, кроме 
 запросов на установку соединения. Ситуация не меняется. Любые TCP-атаки, 
 включая флуд, будут прозрачно пропущены через ipfw и обработаны 
 (проигнорированы) TCP-стеком на локальном сервере.
 
 Предположим на шлюзе настроен ipfw, создающий на каждое исходящее 
 TCP-соединение динамическое правило. Соответственно, ipfw пропустит внутрь 
 сети только TCP-пакеты вида:
 
 remote_ip:remote_port -> local_ip:local_port
 
 Разница с предыдущими двумя случаями в том, что простой флуд не дойдет до 
 целевого сервера, а будет отброшен еще на шлюзе с ipfw. Однако 
 целенаправленная атака, когда подменяются src_ip и src_port, все равно 
 пройдет через ipfw и дойдет до сервера назначения.
 
 2. Теперь предположим, что сервер, который установил TCP-соединение с 
 удаленным хостом, имеет серый адрес и находится за натом. Для простоты будем 
 считать, что нат не меняет номера портов - только ip-адреса:
 
 local_ip:local_port <-> [local_ip <- nat -> public_ip] <-> 
 remote_ip:remote_port
 
 TCP-пакеты в рамках установленного соединения будут приходить снаружи на нат 
 в виде:
 
 remote_ip:remote_port -> public_ip:local_port
 
 Только у таких входящих пакетов нат будет заменять public_ip на local_ip и 
 соответветственно только такие пакеты дойдут до нужного сервера внутри сети 
 в соответствии с роутингом. Все остальные пакеты, у которых хотя бы один из 
 четырех элементов будет другим, будут проигнорированы натом (возвращены 
 после диверта неизмененными). В соответствии с роутингом они осядут на 
 шлюзе, т.е. до целевого сервера не дойдут. Иными словами, обычный флуд будет 
 отброшен на шлюзе с натом. Целенаправленная же атака с подмененными src_ip и 
 src_port опять-таки пройдет через нат.
 
 Выводы. Если имеет место спуфинг и кто-то целенаправленно пытается 
 вклиниться в TCP-соединение, то ни один из способов не поможет - все они 
 пропустят пакет до сервера назначения. И уже TCP-стек на сервере назначения 
 будет решать отбрасывать или принимать полученный пакет. Разница во всех 
 описанных способах только в том, где будет оседать TCP-флуд с разных 
 адресов - на целевом сервере или на шлюзе. Сам по себе флуд не представляет 
 угрозы для безопасности, он может лишь забить сетевые каналы и привести к 
 отказу в обслуживании. Конкретно TCP-флуд, попадающий под правило 
 established, к отказу в обслуживании приведет вряд ли, т.к. поддельные 
 TCP-пакеты будут отбрасываться TCP-стеком еще не доходя до приложения. Далее 
 можно рассуждать так. Если сервер имеет серый адрес, т.е. на шлюзе есть нат, 
 то никакого файрвола для пакетов, которые обрабатывает нат, не надо вообще. 
 Все функции по защите выполняет сам нат. Если же сервер имеет реальный 
 адрес, то видимо он принимает какие-то входящие соединения извне. А это 
 значит, что как минимум один порт на ipfw шлюза должен быть открыт для этого 
 сервера. Т.е. через этот порт можно честно флудить пакетами без всяких 
 заморочек со спуфингом, и эти пакеты дойдут до сервера назначения и даже 
 будут приняты приложением, т.е. DOS обеспечен. В этом случае делать 
 keep-state для TCP смысла нет. Все равно от флуда не спасет. Эффективнее 
 пропустить весь established TCP-трафик. А если машина не принимает никаких 
 соединений извне, но все же имеет реальный адрес, наверное это как раз тот 
 случай, когда реальный адрес берут для того, чтобы иметь полноценный выход в 
 инет, не ограниченный ни натом, ни файрволом. Т.е. преполагается, что такая 
 машина готова принимать извне любые пакеты, пришедшие на ее адрес. В том 
 числе флуд. Таким образом, я не вижу преимуществ использования keep-state 
 для исходящих TCP-пакетов. А вот для исходящих UDP без keep-state уже никак.
 
 Почему allow tcp from any to any established эффективнее чем allow tcp from 
 any to any keep-state? Потому что keep-state требует памяти для создания 
 динамических правил. В случае большого трафика - много памяти. Этой памяти 
 может внезапно не хватить и часть пакетов потеряется. Кроме того, нужно 
 время для просмотра таблицы динамических правил.
 
 --
 Best regards, Vadim. 
 
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 ipfw and keep-state   Victor Sudakov   19 Jul 2007 11:11:35 
 Re: ipfw and keep-state   Kirill Nuzhdin   19 Jul 2007 11:36:24 
 Re: ipfw and keep-state   Victor Sudakov   19 Jul 2007 12:40:38 
 Re: ipfw and keep-state   Kirill Nuzhdin   19 Jul 2007 13:04:22 
 Re: ipfw and keep-state   Victor Sudakov   20 Jul 2007 06:33:16 
 ipfw and keep-state   Vadim Guchenko   19 Jul 2007 11:41:58 
 Re: ipfw and keep-state   Kirill Nuzhdin   19 Jul 2007 11:48:36 
 Re: ipfw and keep-state   Victor Sudakov   19 Jul 2007 12:48:41 
 ipfw and keep-state   Vadim Guchenko   19 Jul 2007 13:12:56 
 Re: ipfw and keep-state   Victor Sudakov   20 Jul 2007 06:37:17 
 Re: ipfw and keep-state   Alex Bakhtin   20 Jul 2007 12:14:39 
 Re: ipfw and keep-state   Victor Sudakov   23 Jul 2007 09:05:40 
 Re: ipfw and keep-state   Vadim Goncharov   23 Jul 2007 10:26:49 
 Re: ipfw and keep-state   Victor Sudakov   24 Jul 2007 10:31:35 
 Re: ipfw and keep-state   Andrew Filonov   24 Jul 2007 15:19:44 
 ipfw and keep-state   Andrew Alcheyev   24 Jul 2007 18:21:00 
 Re: ipfw and keep-state   Victor Sudakov   24 Jul 2007 18:53:55 
 Re: ipfw and keep-state   Vadim Goncharov   24 Jul 2007 20:27:52 
 Re: ipfw and keep-state   Victor Sudakov   25 Jul 2007 05:48:22 
 ipfw and keep-state   Andrew Alcheyev   25 Jul 2007 10:26:00 
 Re: ipfw and keep-state   Andrew Filonov   25 Jul 2007 09:07:35 
 ipfw and keep-state   Andrew Alcheyev   25 Jul 2007 12:12:00 
 Re: ipfw and keep-state   Andrew Filonov   26 Jul 2007 09:25:57 
 ipfw and keep-state   Andrew Alcheyev   27 Jul 2007 13:12:01 
 Re: ipfw and keep-state   Andrew Filonov   27 Jul 2007 12:18:11 
 Re: ipfw and keep-state   Vadim Goncharov   25 Jul 2007 15:42:35 
 Re: ipfw and keep-state   Andrew Filonov   26 Jul 2007 09:30:59 
 Re: ipfw and keep-state   Vadim Goncharov   26 Jul 2007 16:33:40 
 Re: ipfw and keep-state   Andrew Filonov   27 Jul 2007 09:08:52 
 ipfw and keep-state   Max Khon   31 Jul 2007 13:03:50 
 Re: ipfw and keep-state   Andrew Filonov   31 Jul 2007 11:53:51 
 Re: ipfw and keep-state   Vadim Goncharov   25 Jul 2007 15:41:35 
 ipfw and keep-state   Andrew Alcheyev   27 Jul 2007 12:53:00 
 Re: ipfw and keep-state   Vadim Goncharov   28 Jul 2007 21:08:04 
 Re: ipfw and keep-state   Vadim Goncharov   25 Jul 2007 15:32:56 
 Re: ipfw and keep-state   Alexey Kouznetsov   25 Jul 2007 12:12:40 
 Re: ipfw and keep-state   Vadim Goncharov   25 Jul 2007 15:39:29 
 Re: ipfw and keep-state   Alexey Kouznetsov   26 Jul 2007 11:36:20 
 Re: ipfw and keep-state   Vadim Goncharov   26 Jul 2007 16:26:06 
 Re: ipfw and keep-state   Andrew Filonov   26 Jul 2007 16:47:45 
 ipfw and keep-state   Vadim Guchenko   23 Jul 2007 12:54:04 
 Re: ipfw and keep-state   Alex Bakhtin   23 Jul 2007 13:49:07 
 ipfw and keep-state   Vadim Guchenko   20 Jul 2007 14:00:51 
 Re: ipfw and keep-state   Vadim Goncharov   21 Jul 2007 16:15:44 
 ipfw and keep-state   Vadim Guchenko   23 Jul 2007 12:54:34 
 Re: ipfw and keep-state   Vadim Guchenko   28 Jul 2007 01:05:07 
 Re: ipfw and keep-state   Vadim Goncharov   28 Jul 2007 21:20:06 
 Re: ipfw and keep-state   Vadim Guchenko   28 Jul 2007 23:26:38 
 Re: ipfw and keep-state   Vadim Goncharov   02 Aug 2007 22:26:12 
 Re: ipfw and keep-state   Vadim Goncharov   19 Jul 2007 19:43:14 
 Re: ipfw and keep-state   Victor Sudakov   20 Jul 2007 06:38:17 
 Re: ipfw and keep-state   Vadim Goncharov   20 Jul 2007 11:36:26 
 Re: ipfw and keep-state   Valentin Davydov   20 Jul 2007 12:32:43 
 Re: ipfw and keep-state   Vadim Goncharov   21 Jul 2007 16:57:52 
 Re: ipfw and keep-state   Vadim Goncharov   19 Jul 2007 19:56:47 
 ipfw and keep-state   Serge V.Panchenko   26 Jul 2007 17:13:27 
 Re: ipfw and keep-state   Victor Sudakov   27 Jul 2007 09:08:21 
 Re: ipfw and keep-state   Andrew Filonov   27 Jul 2007 09:18:57 
 Re: ipfw and keep-state   Valentin Davydov   27 Jul 2007 10:57:45 
 Re: ipfw and keep-state   Victor Sudakov   27 Jul 2007 12:11:09 
 Re: ipfw and keep-state   Andrew Filonov   27 Jul 2007 12:24:45 
 Re: ipfw and keep-state   Valentin Davydov   27 Jul 2007 13:03:00 
 Re: ipfw and keep-state   Victor Sudakov   27 Jul 2007 12:10:38 
 Re: ipfw and keep-state   Andrew Filonov   27 Jul 2007 12:23:44 
 ipfw and keep-state   Alex Semenyaka   30 Jul 2007 04:00:12 
 Re: ipfw and keep-state   Victor Sudakov   30 Jul 2007 06:56:45 
 Re: ipfw and keep-state   Andrew Filonov   30 Jul 2007 09:38:31 
 Re: ipfw and keep-state   Victor Sudakov   30 Jul 2007 11:31:33 
 Re: ipfw and keep-state   Andrew Filonov   30 Jul 2007 11:47:12 
 Re: ipfw and keep-state   Victor Sudakov   30 Jul 2007 13:06:02 
 Re: ipfw and keep-state   Valentin Davydov   27 Jul 2007 13:03:00 
 Re: ipfw and keep-state   Victor Sudakov   30 Jul 2007 07:02:51 
 Re: ipfw and keep-state   Vadim Goncharov   28 Jul 2007 20:32:18 
 Re: ipfw and keep-state   Victor Sudakov   30 Jul 2007 06:37:10 
 ipfw and keep-state   Serge V.Panchenko   30 Jul 2007 13:18:38 
 Re: ipfw and keep-state   Victor Sudakov   30 Jul 2007 14:34:52 
 ipfw and keep-state   Leizer A. Karabin   31 Jul 2007 08:43:49 
 Re: ipfw and keep-state   Eugene Grosbein   31 Jul 2007 09:53:10 
 ipfw and keep-state   Alex Semenyaka   31 Jul 2007 16:39:12 
 Re: ipfw and keep-state   Eugene Grosbein   01 Aug 2007 00:51:10 
 ipfw and keep-state   Alex Semenyaka   31 Jul 2007 21:05:30 
 Re: ipfw and keep-state   Eugene Grosbein   01 Aug 2007 09:56:16 
 Re: ipfw and keep-state   Eugene Grosbein   01 Aug 2007 09:58:18 
 ipfw and keep-state   Alex Semenyaka   01 Aug 2007 09:45:02 
 Re: ipfw and keep-state   Eugene Grosbein   01 Aug 2007 14:47:26 
 ipfw and keep-state   Alex Semenyaka   01 Aug 2007 20:34:54 
 Re: ipfw and keep-state   Eugene Grosbein   02 Aug 2007 11:27:21 
 ipfw and keep-state   Alex Semenyaka   07 Aug 2007 02:12:40 
 ipfw and keep-state   Ilya Kulagin   01 Aug 2007 08:40:54 
 ipfw and keep-state   Alex Semenyaka   01 Aug 2007 10:25:26 
 Re: ipfw and keep-state   Valentin Davydov   01 Aug 2007 12:06:28 
 Re: ipfw and keep-state   alexander lunyov   01 Aug 2007 14:38:04 
 ipfw and keep-state   Alex Semenyaka   01 Aug 2007 20:35:22 
 Re: ipfw and keep-state   Valentin Davydov   02 Aug 2007 13:27:27 
 Re: ipfw and keep-state   alexander lunyov   02 Aug 2007 14:08:47 
 ipfw and keep-state   Ilya Kulagin   01 Aug 2007 14:09:10 
 ipfw and keep-state   Alex Semenyaka   01 Aug 2007 20:37:56 
 Re: ipfw and keep-state   Valentin Davydov   01 Aug 2007 11:53:22 
 ipfw and keep-state   Alex Semenyaka   01 Aug 2007 20:26:42 
 Re: ipfw and keep-state   Valentin Nechayev   02 Aug 2007 12:20:39 
 Re: ipfw and keep-state   alexander lunyov   02 Aug 2007 14:08:47 
 ipfw and keep-state   Alex Semenyaka   07 Aug 2007 02:13:38 
 ipfw and keep-state   Leizer A. Karabin   08 Aug 2007 15:33:43 
 Re: ipfw and keep-state   Valentin Davydov   02 Aug 2007 13:27:27 
 ipfw and keep-state   Alex Semenyaka   07 Aug 2007 02:15:26 
 ipfw and keep-state   Serge V.Panchenko   02 Aug 2007 17:07:08 
 Re: ipfw and keep-state   Eugene Grosbein   02 Aug 2007 20:51:54 
 Re: ipfw and keep-state   Vadim Goncharov   02 Aug 2007 22:26:42 
 Re: ipfw and keep-state   Victor Sudakov   03 Aug 2007 05:51:46 
 Re: ipfw and keep-state   Vadim Goncharov   04 Aug 2007 21:50:13 
 Re: ipfw and keep-state   Victor Sudakov   05 Aug 2007 09:48:21 
 Re: ipfw and keep-state   Vadim Goncharov   05 Aug 2007 18:04:53 
 ipfw and keep-state   Andrew Kant   04 Aug 2007 10:01:23 
 Re: ipfw and keep-state   Vadim Goncharov   04 Aug 2007 21:52:15 
 Re: ipfw and keep-state   Valentin Davydov   27 Jul 2007 10:57:45 
 Re: ipfw and keep-state   Victor Sudakov   27 Jul 2007 12:11:39 
 Re: ipfw and keep-state   Valentin Davydov   27 Jul 2007 13:02:59 
 Re: ipfw and keep-state   Victor Sudakov   30 Jul 2007 06:39:11 
 ipfw and keep-state   Alex Mogilnikov   30 Jul 2007 15:37:13 
 Re: ipfw and keep-state   Victor Sudakov   30 Jul 2007 14:34:21 
 ipfw and keep-state   Serge V.Panchenko   30 Jul 2007 20:27:01 
 ipfw and keep-state   Alex Mogilnikov   19 Jul 2007 20:19:07 
 Re: ipfw and keep-state   Vadim Goncharov   19 Jul 2007 19:51:46 
 Re: ipfw and keep-state   Victor Sudakov   20 Jul 2007 06:51:48 
 Re: ipfw and keep-state   Vadim Goncharov   20 Jul 2007 11:48:00 
 Re: ipfw and keep-state   Andrew Filonov   20 Jul 2007 09:34:09 
 Re: ipfw and keep-state   Victor Sudakov   20 Jul 2007 09:43:45 
 Re: ipfw and keep-state   Andrew Filonov   20 Jul 2007 10:17:57 
 Re: ipfw and keep-state   Victor Sudakov   20 Jul 2007 11:14:12 
Архивное /ru.unix.bsd/15374a40d227e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional