Stateful inspection firewall что это

Обновлено: 06.07.2024

В статье рассмотрена настройка межсетевого экрана с контекстной фильтрацией (stateful firewall) посредством iptables, с описанием основных правил и их назначения. Для удобства статья разбита на две части. В первой объясняется настройка межсетевого экрана на одиночной машине, во второй — настройка NAT-шлюза в дополнение к файрволу.

Важно: Правила ниже приводятся в порядке выполнения; такая настройка возможна только при локальном входе в систему. Если вы работаете с удалённой системой, то в процессе добавления правил соединение с ней будет потеряно. Чтобы этого избежать, используйте готовый файл настроек.

Contents

Требования

Примечание: Ядро Linux на вашей машине должно быть скомпилировано с поддержкой iptables. В стандартных ядрах Arch Linux поддержка iptables включена.

Прежде всего установите пакет iptables с набором пользовательских утилит, если он ещё не установлен.

В статье предполагается, что в настоящий момент не заданы никакие правила iptables. Узнать текущий набор правил можно командой:

Если всё же какие-то правила существуют, можно сбросить их, загрузив базовый набор:

Настройка межсетевого экрана

Примечание: Поскольку iptables проверяет правила в цепочке последовательно, сверху вниз, то имеет смысл переместить часто срабатывающие правила ближе к её началу. Разумеется, этот подход имеет свои ограничения, в зависимости от реализуемой логики. Кроме того, поскольку правила имеют определённую "стоимость" выполнения, не стоит изменять их порядок исключительно на основе эмпирических наблюдений за счётчиком байтов/пакетов.

Создание необходимых цепочек

Создадим две пользовательские цепочки, которые будут использоваться для открытия портов.

В дальнейшем при назначений правил для этих цепочек мы будем всякий раз указывать тип протокола (например, флагом -p tcp ). Этим обусловлен выбор названий цепочек, но вообще говоря, названия могут быть любыми.

Цепочка FORWARD

Цепочка OUTPUT

Цепочка OUTPUT может быть крайне полезной в деле фильтрации исходящего трафика, особено для серверов и других устройств, не использующих веб-браузеры и peer-to-peer программы для соединения с произвольными узлами сети Интернет. Тем не менее, правильная настройка цепочки OUTPUT требует понимания назначения конкретной системы. Наборы правил безопасности для настольной системы, ноутбука, облачного или домашнего сервера будут сильно отличаться.

В этом примере весь исходящий трафик разрешён, поэтому для цепочки OUTPUT задаётся политика ACCEPT. Этого недостаточно для полной безопасности, но будет работать на большинстве систем.

Цепочка INPUT

Назначаем политику DROP для цепочки INPUT на случай, если что-то каким-то образом проскочит мимо наших правил. Лучший способ создать надёжный файрвол — запретить весь трафик, отдельно указав то, что разрешено.

Важно: Если вы вошли в систему через SSH, следующий шаг немедленно прервёт SSH-сеанс. Чтобы этого избежать: (1) добавьте первое правило для цепочки INPUT, приведённое далее в этом же разделе; правило позволит сохранить существующее соединение, (2) добавьте обычное правило, разрешающее входящее SSH-подключение (чтобы иметь возможность восстановить соединение в случае потери связи) и только после этого (3) задайте политику.

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

Состояние соединения ESTABLISHED подразумевает одну из двух ситуаций: либо первичная ( --ctstate NEW ) попытка соединения была ранее одобрена другим правилом, либо соединение уже было активно (например, удалённое SSH-подключение) на момент задания правила.

Второе правило разрешит весь трафик от петлевого (loopback) интерфейса, который необходим многим приложениям и службам:

Примечание: Аналогичным образом можно добавить и другие доверенные интерфейсы (например, "enp2s0"), если вы не хотите, чтобы проходящий через них трафик обрабатывался межсетевым экраном. Тем не менее, вы должны понимать, весь этот трафик, вне зависимости от его происхождения, пройдёт дальше, невзирая ни на какие иные настройки.

Третье правило будет отбрасывать все пакеты с состоянием INVALID. Существует четыре категории состояния (state): NEW, ESTABLISHED, RELATED и INVALID. Именно наличие категорий отличает межсетевой экран с контекстной фильтрацией от менее безопасного экрана без оной. Состояния отслеживаются модулями ядра nf_conntrack_* , которые загружаются автоматически после добавления правил.

Следующее правило разрешает входящие ICMP эхо-запросы (ECHO_REQUEST), известные как пинги. Только первый пакет будет считаться относящимся к категории NEW, остальные будут обрабатываться правилом "RELATED, ESTABLISHED". Если компьютер не является маршрутизатором, нет необходимости разрешать какой-либо другой ICMP-трафик с состоянием NEW.

Теперь мы прикрепим TCP- и UDP-цепочки к цепочке INPUT для обработки новых входящих соединений. Если соединение разрешено цепочкой TCP или UDP, оно обрабатывается правилом "RELATED, ESTABLISHED". TCP или UDP цепочки будут либо разрешать новые входящие соединения, либо вежливо отклонять их. Новые TCP соединения должны начинаться с SYN-сегмента.

Файл генерируется и сохраняется командой

Данный файл конфигурации можно использовать как исходный для дальнейших настроек в следующих разделах. Если вы настраиваете межсетевой экран удалённо через SSH, перед продолжением добавьте правило, разрешающее новые SSH-подключения (вместо порта 22 выберите нужный):

Цепочки TCP и UDP

Цепочки TCP и UDP содержат правила для разрешения новых TCP-соединений и UDP-потоков к определённым портам.

Открытие портов для входящих соединений

Разрешить удаленные SSH-соединения (на порт 22):

Разрешить входящие TCP/UDP запросы для DNS-сервера (порт 53):

Более сложные правила, вроде проверки по нескольким портам, можно найти в iptables(8) .

Port knocking

Port knocking — способ открыть извне порты, которые файрвол по умолчанию держит закрытыми. Port knocking заключается в создании последовательности попыток соединений с заранее выбранными закрытыми портами. При получении корректной последовательности "простукиваний" межсетевой экран открывает определенный порт и разрешает соединение. Подробнее см. Port knocking.

Защита от спуфинга

Примечание: В файле /usr/lib/sysctl.d/50-default.conf параметр rp_filter установлен в значение 2 , поэтому в описанных ниже действиях нет необходимости.

Если из внешней сети пришёл пакет с зарезервированным (т.е. локальным) адресом отправителя, то имеет место подмена адреса (address spoofing). Стандартный способ блокирования таких пакетов — установить с помощью sysctl параметр rp_filter (Reverse Path Filter) в значение 1 , что включит встроенную в ядро Linux проверку адреса отправителя пакета. Встроенная проверка будет работать лучше, чем отдельные правила iptables на каждый случай. Добавьте в файл /etc/sysctl.d/90-firewall.conf (подробнее см. sysctl) следующую строку:

То же самое можно сделать посредством netfilter, если необходимо ведение статистики и лог-файлов:

Примечание: Включать эту функцию одновременно в двух местах не нужно. Реализованная в netfilter проверка вполне удовлетворительна и, кроме того, работает с адресами IPv6.

Для случая асинхронной маршрутизации используйте значение rp_filter=2 . Флаг --loose в модуле rpfilter делает то же самое посредством netfilter.

Защита от обнаружения

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

Блокирование ping-запросов

Чтобы заблокировать эхо-запросы (echo requests), добавьте следующую строку в файл /etc/sysctl.d/90-firewall.conf (подробную информацию можно найти в статье sysctl):

Обман сканеров портов

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

Состояние INVALID в правилах iptables "позаботится" обо всех типах сканирования, за исключением сканирований UDP, ACK и SYN (флаги nmap -sU , -sA и -sS соответственно).

ACK-сканирование не используется для определения открытых портов, но зато покажет порты, защищённые межсетевым экраном. Подобно SYN-пакету в TCP-соединениях с состоянием NEW, каждый пакет ACK-сканирования будет отклонен с отправкой ответа TCP RESET по обратному адресу. Некоторые межсетевые экраны вместо этого просто отбрасывают такие пакеты, что позволяет атакующему определить действующие правила.

Модуль recent поможет обмануть остальные типы сканирования портов. Он добавляет хосты к списку недавних соединений, который используется для обнаружения и блокирования попыток атак. Просмотреть списки недавних соединений можно в каталоге /proc/net/xt_recent/ .

  • Система станет уязвимой к разновидности DoS-атаки. Атакующий посылает пакеты с подменёными IP-адресами, чтобы добиться их блокировки вашими службами.
  • Может оказаться заблокированным обычный IP-адрес, если несколько пакетов с этого адреса на порт получателя будут признаны INVALID модулем conntrack. Чтобы избежать занесения в чёрный список, следует разрешить все пакеты, поступающие на этот порт.
SYN-сканирование

При SYN-сканировании сканер портов посылает синхронизационные пакеты на каждый порт с целью создать TCP-соединение. Если порт закрыт, то возвращается ответ TCP RESET, межсетевой экран просто отбрасывает входящий пакет, а открытый порт возвращает ответ SYN ACK.

Модуль recent может использоваться для отслеживания хостов с отклонёнными попытками соединения и возвращения ответа TCP RESET для каждого SYN-пакета, поступившего на открытый порт, как если бы порт был закрыт. Если открытый порт оказался первым в порядке сканирования, то будет возвращён ответ SYN ACK, поэтому приложения вроде ssh следует размещать на нестандартных портах.

Сначала добавьте правило в начало цепочки TCP. Это правило будет отвечать пакетом TCP RESET любому хосту, входившему в список TCP-PORTSCAN в течение последних 60 секунд. Флаг --update управляет периодическим обновлением списка.

Затем необходимо модифицировать правило отклонения TCP-пакетов, чтобы добавлять все хосты с отклонёнными пакетами к списку TCP-PORTSCAN :

UDP-сканирование

Сначала добавляем правило отклонения пакетов от хостов из списка UDP-PORTSCAN в начало цепочки UDP:

Затем модифицируем правило отклонения пакетов для UDP:

Восстановление последнего правила

Если вы применили хотя бы один из способов защиты выше, бывшее последним правило цепочки INPUT более таковым не является. Теперь оно находится перед правилами защиты от сканирования и те по сути бесполезны. Просто удалите ( -D ) это правило, а затем добавьте его снова ( -A ), это переместит его в конец цепочки.

Защита от других типов атак

Атака полным перебором

Важно: Защита посредством занесения адресов в чёрный список остановит простые атаки, но она полагается на дополнительный демон и успешное логирование (в случае мощной атаки может закончиться свободное место разделе, содержащем каталог /var с лог-файлами). Кроме того, узнав ваш IP-адрес, атакующий может посылать пакеты с подменённым адресом отправителя, чтобы добиться вашей блокировки. Элегантное решение этой проблемы заключается в использовании ключей SSH.

Приложения Fail2ban и (в случае sshd ) Sshguard используются для блокировки IP-адресов при превышении допустимого количества попыток аутентификации. Суть их работы состоит в обновлении правил iptables с целью временно или навсегда воспрепятствовать будущим соединениям атакующих.

Ниже представлен пример правил iptables для предотвращения атак полным перебором на сервис SSH.

Предложенные выше правила могут использоваться для защиты любой службы, но демон SSH нуждается в ней наиболее часто.

Необходимо также убедиться, что правило -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -j IN_SSH находится в верной позиции в последовательности iptables, перед точкой прикрепления цепочки TCP к цепочке INPUT. Это позволит успешно перехватывать новые попытки установления SSH-соединений. Если вы выполнили все предыдущие шаги в этой статье, порядок правил должен быть следующим:

Если вы не используете протокол IPv6, то лучше будет его отключить. В противном случае стоит создать соответствующий набор правил межсетевого экрана.

Скопируйте созданные ранее правила для протокола IPv4 и замените все IPv4-адреса на адреса формата IPv6:

Коды ошибок ICMPv6 перечислены в RFC 4443, согласно которому при блокировке межсетевым экраном попыток установления соединения необходимо использовать код --reject-with icmp6-adm-prohibited . Это проинформирует удалённую систему о том, что соединение было отклонено брандмауэром, а не прослушивающей порт службой.

This article or section needs expansion.

Следующее правило для протокола IPv6 настроит поведение межсетевого экрана по отношению к новым входящим пингам (ICMP echo requests):

Модуль conntrack не отслеживает действия ICMPv6 Neighbor Discovery Protocol (аналог протокола ARP), поэтому необходимо разрешить трафик ICMPv6 вне зависимости от его состояния для всех прилежащих подсетей. Следующее правило нужно вставить после правила отбрасывания некорректных пакетов --ctstate INVALID , но перед любыми другими правилами DROP или REJECT. Создаётся по одному правилу на каждую подсеть:

Если вы желаете включить DHCPv6, разрешите входящие соединения на UDP-порт 546:

Поскольку в ядре Linux нет встроенной фильтрации по обратному маршруту (reverse path filter) для протокола IPv6, то стоит включить её посредством ip6tables:

Сохранение правил

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

Сохраняем правила IPv4 и IPv6 командами:

В завершение включите и запустите службы iptables.service и ip6tables.service . Проверьте статус служб, чтобы убедиться, что правила загрузились корректно.

Настройка NAT-шлюза

В этом разделе рассмотрена настройка межсетевого экрана для NAT-шлюза. Предполагается, что вы уже прочитали первую часть данного руководства и настроили цепочки INPUT, OUTPUT, TCP и UDP как было предложено. До этого момента созданные правила относились к таблице filter, при настройке NAT-шлюза нам также понадобится таблица nat.

Таблица filter

Создание необходимых цепочек

Цепочка FORWARD

Настройка цепочки FORWARD схожа с настройкой цепочки INPUT в первой части.

Сначала добавляем правило с модулем conntrack, идентичное правилу из цепочки INPUT:

Затем включаем пересылку для доверенных интерфейсов и пропускаем все пакеты через цепочку fw-open:

Цепочки fw-interfaces и fw-open

Назначение цепочек fw-interfaces и fw-open будет объяснено позже, когда мы будем работать с цепочками POSTROUTING и PREROUTING соответственно в таблице nat.

Таблица nat

В этом разделе предполагается, что исходящий интерфейс (с публичным IP-адресом) носит имя ppp0. Если ваш интерфейс называется иначе, то во всех приведённых ниже правилах следует заменить название на настоящее.

Цепочка POSTROUTING

Сначала мы должны определить, кому разрешено подключаться к сети Интернет. Предположим, имеется подсеть 192.168.0.0/24 (т.е. в неё входят все адреса в диапазоне 192.168.0.0-255), подключённая к интерфейсу eth0. Чтобы разрешить исходящие соединения хостам в этой подсети, настраиваем цепочку fw-interfaces в таблице FORWARD:

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

Не забудьте указать параметр -o ppp0 , потому что в противном случае сеть не будет функционировать.

Предположим, что есть другая подсеть, 10.3.0.0/16 (с адресами 10.3.*.*), подключённая к интерфейсу eth1. Добавляем аналогичные правила:

Наконец, нужно разрешить пересылку пакетов (если она ещё не включена).

Хосты данных подсетей теперь могут использовать вашу NAT-систему в качестве шлюза. Возможно, вы также захотите настроить DNS- и DHCP-сервер, например, dnsmasq или комбинацию BIND и dhcpd, с целью упрощения настройки разрешения имён (DNS resolving) на клиентских машинах, но эта тема выходит за рамки данного руководства.

Цепочка PREROUTING

В некоторых случаях может понадобиться изменить адрес получателя в заголовке входящего пакета с адреса шлюза на адрес хоста в локальной сети. Для этого нужно настроить созданную ранее цепочку fw-open, а также цепочку PREROUTING таблицы nat.

Например, чтобы изменить адрес получателя входящих SSH-пакетов (порт 22) на адрес ssh-сервера 192.168.0.5 выполните команды:

Во втором примере меняется не только адрес получателя, но и порт. Порт входящего соединения 8000 заменяется на порт 80 веб-сервера по адресу 192.168.0.6:

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

Сохранение правил

Чтобы сохранить новые правила межсетевого экрана для NAT-шлюза, выполните:

Технологии Интернет изменяют не только подходы организаций к ведению бизнеса, но и их отношение к обеспечению сетевой безопасности. Границы корпоративных сетей теперь не определяются установленным оборудованием. Сейчас эти границы определяются в основном той политикой безопасности, которой придерживаются участники информационного обмена. Для того, чтобы такая политика безопасности была эффективной, она должна включать в себя широкий спектр технологий обеспечения информационной безопасности, которые управляют доступом к информационным ресурсам, контролируют целостность и подлинность информации и сетевых соединений, проходящих как через Интернет, так и через внутренние сети организации и ее партнеров. Check Point Software Technologies предлагает комплексное решение, соответствующее этим новым и постоянно возрастающим требованиям.

Комплект продуктов сетевой безопасности, называемый Check Point FireWall-1, обеспечивает контроль доступа в сетях Интернет, Интранет, Экстранет, а также удаленного доступа с расширенными функциями авторизации и установления подлинности пользователей. FireWall-1 позволяет транслировать сетевые адреса (NAT) и сканировать потоки данных на наличие недопустимой информации и вирусов. Широкий набор основных и сервисных функций дает возможность реализовать интегрированное решение по обеспечению сетевой и информационной безопасности, полностью отвечающее современным требованиям любых организаций, как крупных, так и небольших. Набор продуктов, называемых Check Point «Открытой платформой безопасного взаимодействия предприятий» [OPSEC - Open Platform for Secure Enterprise Connectivity] - основывается на концепции объединения технологий защиты информации вокруг единого средства представления информационной безопасности предприятия в виде единой, комплексной политики безопасности. Такой подход позволяет реализовать более тесную интеграцию продуктов других производителей на базе FireWall-1. Это обеспечивает централизованное слежение за функционированием этих систем, управление ими и конфигурирование.

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

Имея тысячи инсталляций в различных организациях по всему миру, Check Point FireWall-1 является самым распространенным и наиболее оттестированным продуктом сетевой защиты на сегодняшний день.

Основываясь на технологии инспекции пакетов с учетом состояния протокола, являющейся передовым методом контроля сетевого трафика, разработанного и запатентованного компанией Check Point, FireWall-1 обеспечивает наивысший уровень безопасности. Данный метод обеспечивает сбор информации из пакетов данных, как коммуникационного, так и прикладного уровня, что достигается сохранением и накоплением ее в специальных контекстных таблицах, которые динамически обновляются.. Такой подход обеспечивает полный контроль даже за уровнем приложения без необходимости введения отдельного приложения-посредника (proxy) для каждого защищаемого сетевого сервиса.

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

Check Point FireWall-1 поставляется с поддержкой сотен предопределенных сетевых сервисов, протоколов и приложений. В дополнение к имеющимся сервисам и протоколам FireWall-1 позволяет быстро и эффективно создавать свои собственные обработчики протоколов, используя встроенный язык высокого уровня INSPECT. Виртуальная машина INSPECT составляет основу технологии Check Point FireWall-1.

Check Point FireWall-1 использует распределенную архитектуру клиент-сервер, что обеспечивает уникальные возможности по наращиванию системы, а также централизованному управлению развернутым комплексом.

Поддержка компонентами продукта платформ Windows 95, Windows NT, UNIX, маршрутизаторов, коммутаторов, устройств удаленного доступа (через OPSEC партнеров Check Point) и возможность межплатформенного взаимодействия обеспечивает наилучшую в отрасли гибкость и удобство при развертывании систем.

Что необходимо принять во внимание?

Check Point Software Technologies предоставляет наборы программных средств, ориентированные на небольшие, среднего уровня и большие компании, обеспечивая комплексную систему информационной безопасности для всей сети предприятия в соответствии с тем, как определены границы этой сети.

Немного о взломщиках.

На сегодня известно, хорошо изучено и документировано достаточно много различных атак, но, тем не менее, новые атаки появляются практически каждый день. Поэтому небольшим организациям, использующим доморощенне системы защиты сетей, практически невозможно поддерживать их в адекватном состоянии. Компания Check Point Software Technologies, занимающаяся только разработкой системы сетевой защиты и имеющая необходимую инфраструктуру для обнаружения и анализа новых методов взлома систем сетевой безопасности, в состоянии поддерживать свой продукт на должном уровне. Уникальная быстрота реакции и простота внедрения новых способов защиты во многом достигается благодаря использованию технологии инспекции пакетов с учетом состояния протоколов и гибких возможностей языка INSPECT.

Что такое Stateful Inspection?

Stateful inspection или технология инспекции пакетов с учетом состояния протокола на сегодня является передовым методом контроля трафика. Он разработан и запатентован компанией Check Point Software Technologies.

Данная технология позволяет контролировать данные вплоть до уровня приложения, не требуя при этом отдельного приложения посредника или proxy для каждого защищаемого протокола или сетевой службы. В результате достигаются уникальные показатели производительности, высокая гибкость решений и возможность быстро и достаточно просто адаптировать систему под новые нужды. Все большее количество производителей систем защиты используют эту технологию в своих решениях. Этот факт хорошо отражает цитата из отчета Giga Information Group в издании Gigawire за 17 марта 1997 года - "We believe that stateful inspection will be adopted by a broad segment of the computer industry as the standard way to provide gateway security in the future".

Исторически эволюция средств firewall проходила от пакетных фильтров общего назначения, затем стали появляться программы посредники для отдельных протоколов, и, наконец, была разработана технология stateful inspection.

Предшествующие технологии только дополняли друг друга, но всеобъемлющего контроля за соединениями не обеспечивали.

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

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

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

Запатентованная реализация stateful inspection в продукте Check Point FireWall-1 обеспечивает максимально возможный уровень контроля и безопасности. FireWall-1 контролирует соединения на уровнях от 3 до 7 сетевой модели OSI, тогда как proxy посредники могут контролировать только с 5 по 7 уровень.

Тем самым Check Point FireWall-1 имеет уникальную информацию о содержимом сетевых пакетов, соединениях и приложениях. Эти совокупные данные о состоянии соединения, контекста приложения, топологии сети вместе с правилами политики безопасности используются для обеспечения политики безопасности масштаба предприятия. Дополнительная защита обеспечивается и самому компьютеру с FireWall-1, так как данное программное обеспечение перехватывает, анализирует, предпринимает необходимые действия в отношении всех соединений и лишь затем пропускает эти информационные пакеты в операционную систему компьютера шлюза, что избавляет операционную систему от несанкционированного доступа.

Реализация технологии stateful inspection компании Check Point ориентирована на работу в высокоскоростных сетях передачи данных, и по результатам различных тестов практически не вносит замедления в работу таких сетей. Основанный на виртуальном процессоре INSPECT, Check Point FireWall-1 показывает существенно лучшие результаты, чем лидирующие продукты, в основе которых лежат программы-посредники (proxy). Данное утверждение неоднократно подтверждалось различными, независимыми тестами, как, например, Data Communications, 21 марта 1997 года.

В реализации технологии stateful inspection компании Check Point используются динамические таблицы для хранения информации о контексте соединений как активных, так и существовавших ранее. Содержимое этих таблиц, проверяется при обработке попытки соединения. Такой подход обеспечивает прекрасную производительность и гарантирует, что соединение будет обработано с учетом самой последней информации о состоянии коммуникаций. Таблицы состояний расположены в ядре операционной системы и не могут быть повреждены или перезаписаны, как, например, файлы на диске. В случае же перезагрузки системы FireWall-1 начинает формировать новые таблицы, что предотвращает возможность оперировать поврежденными данными. Очистка таблиц эквивалентна полному запрещению соединений, что гарантирует безопасность сети в таких случаях. [View TECH NOTE]

Что такое OPSEC?

Open Platform for Secure Enterprise Connectivity [OPSEC] - это концепция, предложенная Check Point, в основе которой лежит идея создания единой, базовой платформы для интегрирования и управления всеми аспектами информационной безопасности предприятия путем подключения различных дополнительных компонент посредством стандартных интерфейсов. Различные производители приложений в области информационной безопасности теперь могут встраивать свои системы в рамках OPSEC, используя опубликованные программные интерфейсы приложений (API), стандартные для индустрии протоколы и язык INSPECT. Будучи встроенными таким образом, все приложения могут управляться и настраиваться с административной консоли оператора безопасности с использованием общего редактора политики безопасности.

Как можно создать единую политику безопасности для различных платформ?

Check Point FireWall-1 реально использует распределенную архитектуру клиент-сервер, что позволяет создавать политику безопасности в центре управления и затем автоматически распространять ее на все точки инспекции трафика. В дополнение к этому, поддерживается многопользовательский доступ к управлению системой безопасности в соответствии с назначенными привилегиями. Средства управления достаточно просты и наглядны, имеют интуитивный графический интерфейс пользователя, существенно упрощающий понимание политики безопасности.

Созданная же политика безопасности конвертируется системой в инспекционный сценарий на языке INSPECT, который затем распространяется на все необходимые узлы проверки трафика в сети. Так как язык INSPECT не зависит от платформы, любая система потенциально может выполнять функции firewall.

Какая платформа наилучшим образом подходит для FireWall-1?

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

Check Point Software Technologies считает, что все точки доступа к сети должны быть защищены в соответствии с требованиями используемой платформы и решаемых задач. Но использование для этих целей специально спроектированных аппаратно - программных комплексов во многих случаях не оправдано. Поэтому Check Point FireWall-1 поддерживает различные платформы и операционные системы, включая NT и UNIX, маршрутизаторы, коммутаторы и другие сетевые устройства. Важно, что все эти устройства используют одно и то же программное обеспечение и могут управляться с использованием общего графического интерфейса пользователя из административного центра. Основным параметром при выборе платформы может стать количество сетевых интерфейсов, поддерживаемых ей. Например, платформы только с двумя сетевыми интерфейсами не могут поддерживать демилитаризованную зону сети, поэтому такие платформы категорически не рекомендуется использовать из соображений безопасности.

Нужно ли планировать демилитаризованную зону сети (DMZ)?

DMZ (De-Militarized Zone) - это специальная защищенная часть сети, подключенная непосредственно к устройству разграничения доступа. Обычно это сеть, связанная с дополнительным сетевым интерфейсом на компьютере, - шлюзе с запушенным на нем приложением безопасности. Использование такого решения обеспечивает прохождение любого трафика DMZ через устройство разграничения доступа и контроля, что позволяет реализовать необходимые методы защиты, направленные против атак взломщиков.

Без DMZ, располагая серверы публичного доступа в защищаемой сети, мы подвергаем всю сеть потенциальной опасности: взломщики могут воспользоваться особенностями программного обеспечения сервера, получить доступ к нему, а затем и ко всей сети.

Заметим, что доступ взломщика к ресурсам внутренней сети не будут детектироваться firewall, так как доступ осуществляется в пределах защищенной сети.

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

Stateful Inspection firewall ’ы являются пакетными фильтрами , которые анализируют содержимое 4-го уровня ( Transport ) модели OSI .

Stateful inspection разрабатывались исходя из необходимости рассматривать основные особенности протоколов TCP/IP . Когда ТСР создает сессию с удаленной системой, также открывается порт на исходной системе для получения сетевого трафика от системы назначения. В соответствии со спецификацией ТСР, данный порт источника клиента будет некоторым числом, большим, чем 1023 и меньшим, чем 16384. Порт назначения на удаленном хосте, как правило, имеет фиксированный номер. Например, для SMTP это будет 25.

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

В таблице 1.6 показана первая строчка набора правил пакетного фильтра из приведенной выше таблицы, которая разрешает любое входящее соединение, если порт назначения больше 1023. Stateful inspection firewall ’ы решают эту проблему созданием таблицы для исходящих ТСР-соединений, соответствующих каждой сессии. Эта " таблица состояний" затем используется для проверки допустимости любого входящего трафика. Решение stateful inspection является более безопасным, потому что отслеживать используемые порты каждого клиента лучше, чем открывать для внешнего доступа все порты "с большими номерами".

В сущности, stateful inspection firewall ’ы добавляют понимание уровня 4 в архитектуру пакетного фильтра . Stateful inspection firewall ’ы разделяют сильные и слабые стороны пакетных фильтров , но вследствие реализации таблицы состояний stateful inspection firewall ’ы обычно считаются более безопасными, чем пакетные фильтры . В таблице 1.7 показан пример таблицы состояний firewall ’а stateful inspection .

Преимущества stateful inspection firewall’а:

  • Разрешает прохождение пакетов только для установленных соединений;
  • Прозрачен для клиентов и серверов, так как не разрывает ТСР-соединение.

Недостатки stateful inspection firewall’а:

  • Реально используется только в сетевой инфраструктуре TCP/IP. Хотя, надо отметить, что stateful inspection firewall можно реализовать в других сетевых протоколах тем же способом, что и пакетные фильтры .

Host-based firewall’ы

Пакетные фильтры реализованы в некоторых ОС, таких как Unix/Linux; в частности, они могут использоваться только для обеспечения безопасности хоста, на котором они функционируют. Это может быть полезно при совместном функционировании с различными серверами; например, внутренний web - сервер может выполняться на системе, на которой функционирует host-based firewall .

Stateful inspection, или технология инспекции пакетов с учетом состояния протокола, на сегодня является передовым методом контроля трафика. Он разработан и запатентован компанией Check Point Software Technologies.

Эта технология позволяет контролировать данные вплоть до уровня приложения, не требуя при этом отдельного приложения посредника или proxy для каждого защищаемого протокола или сетевой службы. В результате, достигаются уникальные показатели производительности, высокая гибкость решений и возможность быстро и достаточно просто адаптировать систему под новые нужды. Все большее количество производителей систем защиты используют эту технологию в своих решениях. Этот факт хорошо отражает цитата из отчета Giga Information Group в издании Gigawire от 17 марта 1997 года - "We believe that stateful inspection will be adopted by a broad segment of the computer industry as the standard way to provide gateway security in the future".

Исторически эволюция средств firewall проходила от пакетных фильтров общего назначения, затем стали появляться программы-посредники для отдельных протоколов, и, наконец, была разработана технология stateful inspection.

Предшествующие технологии только дополняли друг друга, но всеобъемлющего контроля за соединениями не обеспечивали.

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

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

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

Запатентованная реализация stateful inspection в продукте Check Point FireWall-1 обеспечивает максимально возможный уровень контроля и безопасности. FireWall-1 контролирует соединения на уровнях от 3 до 7 сетевой модели OSI, тогда как proxy посредники могут контролировать только с 5 по 7 уровень.

Тем самым Check Point FireWall-1 имеет уникальную информацию о содержимом сетевых пакетов, соединениях и приложениях. Эти совокупные данные о состоянии соединения, контекста приложения, топологии сети вместе с правилами политики безопасности используются для обеспечения политики безопасности масштаба предприятия. Дополнительная защита обеспечивается и самому компьютеру с FireWall-1, так как данное программное обеспечение перехватывает, анализирует и предпринимает необходимые действия в отношении всех соединений, и лишь затем пропускает эти информационные пакеты в операционную систему компьютера шлюза, что избавляет операционную систему от несанкционированного доступа.

В реализации технологии stateful inspection компании Check Point используются динамические таблицы для хранения информации о контексте соединений как активных, так и существовавших ранее. Содержимое этих таблиц проверяется при обработке попытки соединения. Такой подход обеспечивает прекрасную производительность и гарантирует, что соединение будет обработано с учетом самой последней информации о состоянии коммуникаций. Таблицы состояний расположены в ядре операционной системы и не могут быть повреждены или перезаписаны, как, например, файлы на диске. В случае же перезагрузки система FireWall-1 начинает формировать новые таблицы, что предотвращает возможность оперировать поврежденными данными. Очистка таблиц эквивалентна полному запрещению соединений, что гарантирует безопасность сети в таких случаях.

Читайте также: