On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Защита от SYN атак

В этой главе показано, как настраивать в межсетевом экране Aker защиту от SYN атак.

10.1 Введение

Что такое SYN атака?

SYN атака - это одна из наиболее распространенных атак типа "отказ в обслуживании". Такие атаки имеют своей целью помешать нормальной работе хоста или некоторого сервиса. В случае удачно проведенной SYN атаки можно сделать неработоспособным какой-либо сервис, основанный на TCP протоколе.

Чтобы разобраться в механизме этой атаки, нужно понять принцип работы процесса установления соединения для TCP протокола.

Процесс установления соединения TCP протокола проходит в 3 этапа:

    1. Клиент посылает пакет серверу со специальным флагом, который называется SYN flag. Наличие такого флага показывает, что клиент хочет установить соединение.
    2. Сервер в ответ посылает пакет, содержащий как флаг SYN , так и флаг ACK; это значит, что сервер принял запрос о соединении и ждет от клиента подтверждения для его установления.
    3. Клиент после получения пакета с SYN и ACK флагами посылает в ответ пакет, содержащий только флаг ACK, который указывает серверу, что соединение успешно установлено.
Все полученные сервером запросы о соединениях хранятся в специальной очереди, имеющей заранее определенный размер, зависящий от операционной системы. Они хранятся там до тех пор, пока сервер не получит от клиента информацию об установленном соединении. Если сервер получает пакет с запросом о соединении и очередь заполнена, этот пакет отбрасывается.

SYN атака заключается в отправке определенному серверу большого количества пакетов с запросами о соединении. Эти пакеты посылаются с несуществующим адресом источника. Вымышленный адрес источника принадлежит несуществующему хосту ( в этой ситуации часто прибегают к зарезервированным адресам, подробно описанным в главе "Трансляция сетевых адресов"). Сервер после получения этих пакетов, посылает ответный пакет и ждет подтверждения от клиента. Поскольку адрес источника пакетов не существует, сервер никогда не получит подтверждения.

Дальше случится следующее: спустя некоторое время в данном сервере очередь для хранения запросов об установлении соединения окончательно заполнится. Начиная с этого момента, все запросы на установление соединений будут отбрасываться, а сервис окажется бездействующим. Такое бездействие будет продолжаться в течение нескольких секунд, пока сервер, обнаружив, что подтверждение соединения не приходит слишком долго, не удалит эти ожидающие решения соединения из очереди. Однако, если атакующий настойчиво продолжает посылать подобные пакеты, сервис будет оставаться бездействующим столько времени, сколько захочет нарушитель.

    ! Не все хосты чувствительны к SYN атакам. Современные реализации TCP протоколов обладают собственным механизмом защиты от таких атак.

Как межсетевой экран Aker обеспечивает защиту от SYN атак?

Межсетевой экран Aker имеет механизм, назначение которого - препятствовать проведению SYN атак. Принцип его действия заключается в следующем:
  1. Когда защищаемому серверу посылается пакет с запросом на установление соединения (пакет с SYN-флагом, описанный в предыдущем разделе), межсетевой экран регистрирует его в таблице и позволяет пакету пройти. (Естественно, что пакет будет пропущен только в случае, если это разрешено правилами фильтрации, описанными администратором. За подробностями обращайтесь к главе Пакетный фильтр с контролем состояния).
  2. После прихода ответа сервера о подтверждении запроса на соединение (пакет с SYN и ACK-флагами) межсетевой экран посылает пакет серверу с подтверждением соединения, а также посылает ответный пакет клиенту. С этого момента в межсетевом экране активизируется внутренний таймер, который отсчитывает период времени, в течение которого должен прибыть пакет с подтверждением от клиента.
  3. Если запрос о соединении нормальный, то в течение установленного промежутка времени клиент пришлет ответный пакет с подтверждением соединения. Получив этот пакет, межсетевой экран будет считать  запрос об установлении соединения нормальным и остановит таймер.
  4. Если клиент не отвечает в течение максимально разрешенного промежутка времени, межсетевой экран пошлет специальный пакет серверу, что приведет к удалению информации о соединении.
Применение описанной процедуры для какого-либо сервера позволяет межсетевому экрану препятствовать заполнению очереди запросов на соединение, поскольку все соединения будут устанавливаться сразу после того, как ответные пакеты сервера достигнут межсетевого экрана и будут удалены из очереди; следовательно, SYN атака не сможет быть реализована.
    ! Важно подчеркнуть, что действие механизма защиты основано на контроле времени задержки ответа клиента. Если установленный тайм-аут слишком короткий, то могут получать отказы правильные соединения. Если тайм-аут слишком длинный, сервер в случае атаки будет хранить информацию о большом количестве установленных соединений, что может привести к еще более серьезным проблемам.

10.2 Использование графического интерфейса пользователя.

Для получения доступа к окну защиты от SYN атак необходимо выполнить следующие действия:
  • Выбрать меню Редактировать в главном окне
  • Выбрать опцию Защита от SYN атак

Окно настройки параметров защиты от SYN атак

  • Кнопка OK закрывает окно и сохраняет все изменения.
  • Кнопка Cancel закрывает окно и отбрасывает все сделанные изменения.
  • Кнопка Help открывает окно помощи по данному разделу.
Значения полей в окне:

Активизировать защиту от SYN атак: Эта опция активизирует механизм защиты от SYN атак (когда защита от SYN атак отключена, все старые настройки продолжают сохраняться, но их нельзя изменить).

Тайм-аут соединения: Эта опция определяет максимальное время ( за единицу измерения принято 500 ms), в течение которого межсетевой экран ожидает подтверждения клиента об установлении соединений. По истечении этого времени серверам будет послан пакет для удаления соединения.

    ! Наиболее подходящее значение времени для этого поля может быть различным для каждой конфигурации, тем не менее, его рекомендуемые значения лежат в области от 3 до 10, что соответствует интервалу времени между 1,5 и 5 секундами.

Список защищаемых объектов

Список защищаемых объектов определяет хосты, сети или наборы, которые будут защищены межсетевым экраном. В верхнем списке собраны все зарегистрированные в системе хосты, сети и наборы, а в нижнем списке - подлежащие защите объекты.

Для включения нового элемента в список для защиты, нужно сделать следующее:

    1. Выделить включаемый объект в верхнем списке при помощи левой клавиши мыши.
    2. Нажать расположенную слева снизу кнопку Добавить

Чтобы удалить объект из списка для защиты, следует выполнить следующие действия:

    1. Выделить удаляемый объект в нижнем списке при помощи левой клавиши мыши.
    2. Нажать кнопку Remove, расположенную справа над списком.
    ! Все серверы для любого TCP сервиса, которые доступны для внешних хостов, следует поместить в список защищаемых объектов. Однако, адрес межсетевого экрана не должен фигурировать в этом списке, так как операционная система FreeBCD нечувствительна к SYN атакам.

10.3 Использование интерфейса командной строки

Интерфейс командной строки для защиты от SYN Flood прост в использовании и обладает теми же возможностями, что и графический интерфейс.

Путь к программе: /etc/firewall/fwflood

Синтаксис:

fwflood [activate | deactivate | show | help]
fwflood [add | remove] <name>
fwflood timeout <value>
Program help:

Aker Firewall - Version 3.0
fwflood - Настраивает параметры защиты от SYN атак
Использование: fwflood [activate | deactivate | show | help]
       fwflood [add | remove] <name>
       fwflood timeout <value>
       active      = активизирует защиту от SYN атак
       deactivate  = деактивизирует защиту от SYN атак
       show        = показывает активную конфигурацию
       add         = добавляет новый объект для защиты
       remove      = удаляет из списка защищаемых объект
       timeout     = определяет значение тайм-аута для установления соединения      
       help        = показывает данное сообщение
Для команд добавления/удаления:
       name        = имя защищаемого или удаляемого объекта из 
                     списка 
Для команды временной интервал:
       value       = максимальный тайм-аут в единицах 500ms
Пример 1: (Просмотр конфигурации)

#/etc/firewall/fwflood show
Configuration parameters:
---------------------------------
SYN Flood protection: activated
Timeout             : 6 (x 500 ms)
List of entities to be protected:
---------------------------------
Aker                                            (Network)
Mail Server                                     (Host)
NT_01                                           (Host)
Пример 2: (Деактивизация механизма защиты от SYN атак и просмотр конфигурации)

#/etc/firewall/fwflood deactivate
#/etc/firewall/fwflood show
Configuration parameters:
---------------------------------
SYN Flood protection: deactivated
Timeout             : 6 (x 500 ms)
List of entities to be protected:
---------------------------------
Aker                                            (Network)
Mail Server                                     (Host)
NT_01                                           (Host)
Пример 3: (Удаление хоста NT_01 из списка защищаемых объектов и просмотр конфигурации)

#/etc/firewall/fwflood remove NT_01
#/etc/firewall/fwflood show
Configuration parameters:
---------------------------------
SYN Flood protection: deactivated
Timeout             : 6 (x 500 ms)
List of entities to be protected:
---------------------------------
Aker                                            (Network)
Mail Server                                     (Host)
Пример 4: (добавление хоста Server_01 в список защищаемых объектов и просмотр конфигурации)

#/etc/firewall/fwflood add Server_01
#/etc/firewall/fwflood show
Configuration parameters:
---------------------------------
SYN Flood protection: deactivated
Timeout             : 6 (x 500 ms)
List of entities to be protected:
---------------------------------
Aker                                            (Network)
Mail Server                                     (Host)
Server_01                                       (Host)
Назад       Содержание       Вперёд