Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Программные СЗИ для корпоративных сетей






18.1. Брандмауэры: виды и варианты использования

Брандмауэр (межсетевой экран, firewall) - это система или комбинация систем, позволяющие разделить сеть на две или более частей и реализовать набор правил, определяющих условия прохождения пакетов из одной части в другую. Обычно эта граница проводится между локальной сетью и INTERNET, либо между различными сегментами корпоративной сети.

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

Как правило, брандмауэры функционируют на какой-либо UNIX платформе, а в саму операционную систему вносятся изменения, цель которых - повышение защиты самого брандмауэра. Эти изменения затрагивают как ядро ОС, так и соответствующие файлы конфигурации. На самом брандмауэре не разрешается иметь счетов пользователей, кроме администратора. Некоторые брандмауэры работают только в однопользовательском режиме. Многие брандмауэры имеют систему проверки целостности программных кодов. При этом контрольные суммы программных кодов хранятся в защищенном месте и сравниваются при старте программы во избежание подмены программного обеспечения.

Все брандмауэры можно разделить на три типа:

-пакетные фильтры (packet filter);

-серверы прикладного уровня (application gateways);

-серверы уровня соединения (circuit gateways).

Все эти типы могут одновременно встретиться в одном брандмауэре.

Пакетные фильтры

Пакетные фильтры принимают решение о том, пропускать пакет или отбросить его, просматривая IP-адреса, флаги или номера TCP портов в заголовке этого пакета. IP-адрес и номер порта - это информация сетевого и транспортного уровней соответственно.

Для описания правил прохождения пакетов составляются таблицы типа:

-действие - тип пакета - адрес источника - порт источника - адрес назначения - порт назначения – флаги.

При этом поле " действие" может принимать значения пропустить или отбросить.

К положительным качествам пакетных фильтров следует отнести:

-относительно невысокую стоимость;

-гибкость в определении правил фильтрации;

-небольшую задержку при прохождении пакетов.

К недостаткам:

-прозрачность локальной сети из INTERNET;

-трудность в описании правил фильтрации пакетов;

-незащищенность либо недоступность при нарушении работоспособности брандмауэра всех компьютеров за ним;

-возможность обмануть аутентификацию методом IP-спуфинга (атакующая система выдает себя за другую, используя ее IP-адрес);

-отсутствие аутентификации на пользовательском уровне.

Серверы прикладного уровня

Используют серверы конкретных сервисов - TELNET, FTP и т.д., запускаемые на брандмауэре и пропускающие через себя весь трафик, относящийся к данному сервису. Таким образом, между клиентом и сервером образуются два соединения: от клиента до брандмауэра и от брандмауэра до места назначения.

Полный набор поддерживаемых серверов различается для каждого конкретного брандмауэра, однако чаще всего встречаются серверы для следующих сервисов: терминалы (Telnet, Rlogin), передача файлов (FTP), электронная почта (SMTP, POP3), WWW (HTTP), Gopher, Wais, X Window System (X11), Принтер.

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

К преимуществам серверов прикладного уровня следует отнести следующие:

-локальная сеть невидима из INTERNET;

-при нарушении работоспособности брандмауэра пакеты перестают проходить через брандмауэр, тем самым не возникает угрозы для защищаемых им машин;

-защита на уровне приложений позволяет осуществлять большое количество дополнительных проверок, снижая тем самым вероятность взлома с использованием дыр в программном обеспечении;

-аутентификация на пользовательском уровне;

-может быть реализована система немедленного предупреждения о попытке взлома.

Недостатками этого типа брандмауэров являются более высокая, чем для пакетных фильтров стоимость и более низкая производительность.

Серверы уровня соединения

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

Как правило, пункт назначения задается заранее, в то время как источников может быть много (соединение типа один - много). Используя различные порты, можно создавать различные конфигурации.

Такой тип сервера позволяет: создавать транслятор для любого определенного пользователем сервиса, базирующегося на TCP, осуществлять контроль доступа к этому сервису, сбор статистики по его использованию.

Схемы включения брандмауэров:

Наиболее часто встречающаяся и простая схема включения брандмауэра заключается его установке между внешним маршрутизатором и внутренней сетью (рис. 50).

Рис. 50. Вариант 1 включения брандмауэра

При этом между внешним роутером и брандмауэром имеется только один путь, по которому идет весь трафик. Обычно роутер настраивается таким образом, что брандмауэр является единственной видимой снаружи машиной. Эта схема является наиболее предпочтительной с точки зрения безопасности и надежности защиты.

Другая возможная схема представлена на рис. 51. Брандмауэр защищает только одну область сети. В незащищаемой брандмауэром области часто располагают серверы, которые должны быть видимы снаружи (WWW, FTP и т.д.).

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

Рис. 51. Вариант 2 включения брандмауэра

Администрирование

Легкость администрирования является одним из ключевых аспектов в создании эффективной и надежной системы защиты. В большинстве брандмауэров реализованы сервисные утилиты, облегчающие ввод, удаление, просмотр набора правил. Наличие этих утилит позволяет также производить проверки на синтаксические или логические ошибки при вводе или редактирования правил. Как правило, эти утилиты позволяют просматривать информацию, сгруппированную по каким либо критериям - например, все, что относится к конкретному пользователю или сервису.

Сбор статистики и предупреждение об атаке

Еще одной важной функцией брандмауэра является сбор статистики и предупреждения об атаке. Информация обо всех событиях - отказах, входящих, выходящих соединениях, числе переданных байт, использовавшихся сервисах, времени соединения и т.д. - накапливается в файлах статистики. Многие брандмауэры позволяют гибко определять подлежащие протоколированию события, описать действия брандмауэра при атаках или попытках несанкционированного доступа - это может быть сообщение на консоль, почтовое послание администратору системы и т.д. Немедленный вывод сообщения о попытке взлома на экран консоли или администратора может помочь, если попытка оказалась успешной, и атакующий уже проник в систему. В состав многих брандмауэров входят генераторы отчетов, служащие для обработки статистики. Они позволяют собрать статистику по использованию ресурсов конкретными пользователями, по использованию сервисов, отказам, источникам, с которых проводились попытки несанкционированного доступа и т.д.

Аутентификация

Аутентификация является одной из самых важных функций брандмауэров. Авторизация обычно рассматривается в контексте аутентификации - как только пользователь аутентифицирован, для него определяются разрешенные ему сервисы. При получении запроса на использование сервиса от имени какого-либо пользователя, брандмауэр проверяет, какой способ аутентификации определен для данного пользователя и передает управление серверу аутентификации. После получения положительного ответа от сервера аутентификации брандмауэр образует запрашиваемое пользователем соединение.

Как правило, используется принцип, получивший название " что он знает" - т.е. пользователь знает некоторое секретное слово, которое он посылает серверу аутентификации в ответ на его запрос.

Схемы аутентификации:

-использование стандартных UNIX паролей (наиболее уязвимая с точки зрения безопасности - пароль может быть перехвачен и использован другим лицом);

-использование одноразовых паролей (даже будучи перехваченным, этот пароль будет бесполезен при следующей регистрации, а для генерации одноразовых паролей используются как программные, так и аппаратные генераторы);

-поддержка сервера паролей (Kerberos...)

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

ПО брандмауэров семейства Cisco PIX (Private Internet Exchange)

- Основу ПО серии Cisco PIX Firewall составляет схема защиты, использующая алгоритм адаптивной безопасности (ASA adaptive security algorithm). Этот способ менее сложен и более надежен, чем фильтрация пакетов. Алгоритм адаптивной безопасности скрывает адреса пользователей от хакеров и эффективно контролирует доступ к внутренней сети, сравнивая входящие и выходящие пакеты с записями в таблице. Доступ через PIX разрешен только в том случае, если соответствующее соединение успешно прошло идентификацию. Алгоритм ASA защищает периметры системы безопасности между сетями, контролируемыми брандмауэром. Устойчивый, ориентированный на соединения алгоритм адаптивной безопасности обеспечивает безопасность для соединений, базируясь на адресах отправителя и получателя, случайной последовательности номеров пакетов TCP, номерах портов и добавочных тегах (флагах) TCP. Эта информация сохраняется в таблице, и все входящие и исходящие пакеты сравниваются с записями в этой таблице.

- Другой функциональной особенностью, повышающей производительность проведения аутентификации брандмауэром, является технология " сквозного посредника" (cut-through proxy), который сначала проверяет пользователя на уровне приложений. После окончания аутентификации пользователя и подтверждения соблюдения заданных правил брандмауэр PIX переводит контроль за потоком на более низкий уровень, что существенно повышает производительность.

- Межсетевой экран Cisco PIX также позволяет расширять и изменять конфигурацию IP-сетей, не вызывая проблему нехватки адресов IP. Технология трансляции сетевых адресов (NAT Network Address Translation) делает возможным использование как существующих адресов, так и адресов, не входящих в резервный пул адресов, выделенный организацией IANA (Internet Assigned Numbers Authority) для частных сетей (RFC 1918). PIX также можно настроить для выборочного (при необходимости) использования комбинации транслируемых и нетранслируемых адресов.

- Межсетевой экран Cisco PIX поддерживает трансляцию номеров портов (PAT - port address translation) в сочетании с так называемым " мультиплексированием по каждому порту". Этот метод также позволяет " консервировать" IP-адреса. Технология PAT автоматически преобразует внутренние, локальные адреса пользователей в один внешний локальный адрес, используя при этом различные номера портов, чтобы отличать одну трансляцию адресов от другой. Применение технологии PAT позволяет обслуживать более 64 тыс. внутренних машин при помощи единственного внешнего IP-адреса.

- Настраиваемые отчеты и учет использования URL-адресов позволяют просматривать, насколько активно пользователи проводят свои транзакции через PIX. Система фильтрации URL-адресов позволяет контролировать, какие Web-сайты наиболее часто посещают пользователи и ведет учетный журнал транзакций.

Фильтрация Java-апплетов по каждому клиенту и IP-адресу позволяет останавливать выполнение потенциально опасных Java-приложений.

- Утилита Mail Guard предотвращает задержки внешней почты на периметре сети и противодействует атакам типа " отказ в обслуживании".

- Firewall Manager - утилита управления, с помощью которой сетевой администратор может легко конфигурировать брандмауэр PIX и управлять им. По отдельным вкладкам открывается доступ к конфигурационным данным, общим для всех управляемых брандмауэров PIX, а также к встроенным отчетам, где по каждому пользователю регистрируются посещенные Web-сайты и объем переданных файлов. ение PIX Firewall Manager автоматически в режиме реального времени отправляет администратору по электронной почте или на пейджер предупреждающие сообщения о попытках проникновения через межсетевой экран. Firewall Manager помогает анализировать работу Cisco PIX и вести учет его активности: дату и время подключения, общего времени соединения, общего объема переданных и принятых байтов, пропускной способности, типа использованных приложений и других важных данных.

LINUX-брандмауэр IPTABLES

Брандмауэр IPTABLES объединяет в себе:

-таблицы;

-правила и критерии;

-механизм определения состояния (трассировки соединений);

-действия и переходы.

Таблица Mangle - предназначена для управлениея внесения изменений в заголовки пакетов. Эта таблица допускает выполнять действия: TOS, TTL, MARK.

Действие TOS выполняет установку битов поля Type of Service в пакете. Это поле используется для назначения сетевой политики обслуживания пакета, т.е. задает желаемый вариант маршрутизации. Однако, не следует изменять состояние этого поля для пакетов, уходящих в Интернет, потому что на роутерах, которые обслуживают это поле, может быть принято неправильное решение при выборе маршрута.

Действие TTL используется для установки значения поля TTL (Time To Live) пакета - можно присваивать определенное значение этому полю, чтобы скрыть брандмауэр от провайдеров (Internet Service Providers).

Действие MARK устанавливает специальную метку на пакет, которая затем может быть проверена другими правилами в iptables или другими программами, например iproute2. С помощью " меток" можно управлять маршрутизацией пакетов, ограничивать траффик и т.п.

Таблица Nat - используется для управления преобразованием сетевых адресов NAT (Network Address Translation). Для этой таблицы характерны действия: DNAT, SNAT, MASQUERADE

Действие DNAT (Destination Network Address Translation) производит преобразование адресов назначения в заголовках пакетов. Другими словами, этим действием производится перенаправление пакетов на другие адреса, отличные от указанных в заголовках пакетов.

SNAT (Source Network Address Translation) используется для изменения исходных адресов пакетов. С помощью этого действия можно скрыть структуру локальной сети, а заодно и разделить единственный внешний IP адрес между компьютерами локальной сети для выхода в Интернет. В этом случае брандмауэр, с помощью SNAT, автоматически производит прямое и обратное преобразование адресов, тем самым давая возможность выполнять подключение к серверам в Интернете с компьютеров в локальной сети.

Маскировка (MASQUERADE) применяется в тех же целях, что и SNAT, но в отличие от последней, MASQUERADE каждый раз, когда требуется выполнение этого действия - производится запрос IP адреса для указанного в действии сетевого интерфейса, в то время как для SNAT IP адрес указывается непосредственно. Однако, благодаря такому отличию, MASQUERADE может работать в случаях с динамическим IP адресом.

Таблица Filter - содержит наборы правил для выполнения фильтрации пакетов. Пакеты могут пропускаться далее, либо отвергаться (действия ACCEPT и DROP соответственно), в зависимости от их содержимого.

Механизм определения состояния (state machine) является отдельной частью iptables и фактически является механизмом трассировки соединений. Трассировщик соединений создан для того, чтобы netfilter мог постоянно иметь информацию о состоянии каждого конкретного соединения. Наличие трассировщика позволяет создавать более надежные наборы правил по сравнению с брандмауэрами, которые не имеют поддержки такого механизма.

В пределах iptables, соединение может иметь одно из 4-х базовых состояний: NEW, ESTABLISHED, RELATED и INVALID. Для управления прохождением пакетов, основываясь на их состоянии, используется критерий --state.

Трассировка соединений производится в цепочке PREROUTING либо в цепочке OUTPUT. Когда локальный процесс на брандмауэре отправляет первый пакет из потока, то в цепочке OUTPUT ему присваивается состояние NEW, а когда возвращается пакет ответа, то состояние соединения в цепочке PREROUTING изменяется на ESTABLISHED. Если же соединение устанавливается извне, то состояние NEW присваивается первому пакету из потока в цепочке PREROUTING. Таким образом, определение состояния пакетов производится в пределах цепочек PREROUTING и OUTPUT таблицы nat. В табл. 15 рассматриваются каждое из возможных состояний.

Таблица15

Описание состояний соединений Iptables

Состояние Описание
NEW Признак NEW сообщает о том, что пакет является первым для данного соединения. Это означает, что это первый пакет в данном соединении, который увидел модуль трассировщика. Например, если получен SYN пакет являющийся первым пакетом для данного соединения, то он получит статус NEW. Однако, пакет может и не быть SYN пакетом и тем не менее получить статус NEW. Это может породить определенные проблемы в отдельных случаях, но может оказаться и весьма полезным, например, когда желательно " подхватить" соединения, " потерянные" другими брандмауэрами или в случаях, когда таймаут соединения уже истек, но само соединение не было закрыто.
ESTABLISHED Признак ESTABLISHED говорит о том, что это не первый пакет в соединении. Для перехода в состояние ESTABLISHED необходимо чтобы узел сети передал пакет и получил на него ответ от другого узла (хоста). После получения ответа признак соединения NEW будет заменен на ESTABLISHED.
RELATED Соединение получает статус RELATED, если оно связано с другим соединением, имеющим признак ESTABLISHED. Это означает, что соединение получает признак RELATED тогда, когда оно инициировано из уже установленного соединения, имеющего признак ESTABLISHED.
INVALID Признак INVALID говорит о том, что пакет не может быть идентифицирован и поэтому не может иметь определенного статуса. Это может происходить по разным причинам, например при нехватке памяти или при получении ICMP-сообщения об ошибке, которое не соответствует какому-либо известному соединению. Наверное, наилучшим вариантом было бы применение действия DROP к таким пакетам.

Механизм определения состояния позволяет строить чрезвычайно мощную и эффективную защиту. Раньше приходилось открывать все порты выше 1024, чтобы пропустить обратный трафик в локальную сеть, теперь же, при наличии механизма определения состояния, необходимость в этом отпала, поскольку появилась возможность " открывать" доступ только для обратного (ответного) трафика, пресекая попытки установления соединений извне.

TCP соединение всегда устанавливается передачей трех пакетов, которые инициализируют и устанавливают соединение, через которое в дальнейшем будут передаваться данные. Сессия начинается с передачи SYN-пакета, в ответ на который передается SYN/ACK-пакет и подтверждает установление соединения ACK-пакет. После этого соединение считается установленным и готовым к передаче данных. Как только трассировщик " увидел" первый SYN-пакет, он присваивает ему статус NEW, а после прохождения второго пакета (SYN/ACK) соединению присваивается статус ESTABLISHED (рис. 52).

Рис. 52. Схема установки соединения

Процесс отработки закрытия соединения отражен на рис. 53.

Правила определяют д ействия и переходы – команды, которые необходимо выполнить, если пакет соотвествует заданному критерию.

Описание переходов и действий в правилах выглядит как указание название цепочки правил, на которую выполняется переход.

Рис. 53. Процесс отработки закрытия соединения

Так, встретив пакет протокола tcp, iptables произведет переход на цепочку tcp_packets и продолжит движение пакета по этой цепочке. Если пакет достиг конца цепочки то он будет возвращен в вызывающую цепочку (цепочка INPUT) и движение пакета продолжится с правила, следующего за правилом, вызвавшем переход. Если к пакету во вложенной цепочке будет применено действие ACCEPT, то автоматически пакет будет считаться принятым и в вызывающей цепочке и уже не будет продолжать движение по вызывающим цепочкам. Однако пакет пойдет по другим цепочкам в других таблицах. Дополнительную информацию о порядке прохождения цепочек и таблиц вы сможете получить в главе Порядок прохождения таблиц и цепочек.

Основные действия:

- DNAT (Destination Network Address Translation) используется для преобразования адреса места назначения в IP заголовке пакета. Если пакет подпадает под критерий правила, выполняющего DNAT, то этот пакет, и все последующие пакеты из этого же потока, будут подвергнуты преобразованию адреса назначения и переданы на требуемое устройство, хост или сеть. Данное действие может, к примеру, успешно использоваться для предоставления доступа к вашему web-серверу, находящемуся в локальной сети, и не имеющему реального IP адреса.

- DROP - " сбрасывает" пакет и iptables " забывает" о его существовании. " Сброшенные" пакеты прекращают свое движение полностью, т.е. они не передаются в другие таблицы, как это происходит в случае с действием ACCEPT.

- LOG -- действие, которое служит для журналирования отдельных пакетов и событий. В журнал могут заноситься заголовки IP пакетов и другая интересующая вас информация.

- MARK - используется для установки меток для определенных пакетов. Это действие может выполняться только в пределах таблицы mangle. Установка меток обычно используется для нужд маршрутизации пакетов по различным маршрутам, для ограничения трафика и т.п.

- MASQUERADE в основе своей представляет то же самое, что и SNAT только не имеет ключа --to-source. Причиной тому то, что маскарадинг может работать, например, с dialup подключением или DHCP, т.е. в тех случаях, когда IP адрес присваивается устройству динамически.

- REDIRECT - выполняет перенаправление пакетов и потоков на другой порт той же самой машины. К примеру, можно пакеты, поступающие на HTTP порт перенаправить на порт HTTP proxy. Действие REDIRECT очень удобно для выполнения " прозрачного" проксирования (transparent proxying), когда машины в локальной сети даже не подозревают о существовании прокси.

- RETURN - прекращает движение пакета по текущей цепочке правил и производит возврат в вызывающую цепочку, если текущая цепочка была вложенной, или, если текущая цепочка лежит на самом верхнем уровне (например INPUT), то к пакету будет применена политика по-умолчанию. Обычно, в качестве политики по-умолчанию назначают действия ACCEPT или DROP.

- SNAT используется для преобразования сетевых адресов (Source Network Address Translation), т.е. изменение исходящего IP адреса в IP заголовке пакета. Например, это действие можно использовать для предоставления выхода в Интернет другим компьютерам из локальной сети, имея лишь один уникальный IP адрес.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.