Поиск по сайту

Мнение экспертов

27.11.18

Firewall Policies (Политики брандмауэра)

Введение

В конце прошлой статьи мы подключили FortiGate к Интернету, однако не смогли получить доступ ни к одному веб сайту. Причина была в политиках брандмауэра (или межсетевой экран). Прежде чем настроить данные политики, кратко расскажем о том, что это такое, и как лучше использовать.


Что такое политики безопасности?

Каждая политика является четко определенным правилом и состоит из критериев. В обычной политике критерий один — адрес источника. В расширенных политиках, как правило, критериев больше. К ним относятся: адреса источника и приемника, тип протокола, к которому относится трафик, иногда даже порты, на которые идет трафик, или из которых он выходит. Также неотъемлемая часть любой политики — действие. В любом правиле указывается, что делать с данным трафиком, если он подходит под критерии данной политики. Мы ограничимся двумя действиями: разрешить или запретить трафик.

Эти правила располагаются строго по списку определенным администратором. И здесь уже возникают сложности: необходимо правильно структурировать этот список, чтобы добиться максимального результата. Причина в том, что, когда трафик приходит на FortiGate (или уходит с него), он проходит проверку данными политиками. Причем, важно запомнить: проходит он эту проверку с начала списка. И как только обнаруживается полное совпадение проверяемого трафика с критерием какой-либо политики, ее действие сразу же применяется на данный трафик. Другими словами, после того, как найдено совпадение, трафик больше не проходит проверку оставшимися политиками.

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


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

А теперь вернемся к нашей проблеме — почему подключение к сети активно, а доступа к веб сайтам нет? Обычно в фаерволах существует неявная политика, которая всегда находится в конце списка (см. рис.1).

 

Рисунок 1. Интерфейс политик безопасности

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


Создание политики безопасности с целью открытия веб страницы в браузере

Создадим политику, которая разрешит трафику проходить из интерфейса LAN в интерфейс WAN1. У каждой политики должно быть название, назовем нашу — Allow Access HTTP. В качестве адресов источника и назначения укажем заготовленный шаблон — all, что позволит источнику с любым IP адресом связываться с приемником, у которого также может быть любой IP адрес. В поле Schedule выберем шаблон always. При желании, в этом поле можно назначать расписание работы данного правила. Например, если Вам нужно ограничить трафик днем, но разрешить его ночью, Вы можете указать необходимое время в данном поле.

Теперь выберем сервисы, которым разрешим доступ в интернет. Пусть это будут протоколы HTTP и HTTPS. Осталось выбрать действие, в нашем случае — accept. Нажимаем OK (см. рис.2)

Рисунок 2. Пример настроек

Попробуем теперь открыть любую веб страницу, например, google.com. Как видим, у нас все получилось — страница открывается. Однако Вы можете задаться вопросом, почему мы создали только одну политику, ведь получается, что ответы от веб-сервера по-прежнему должны блокироваться. Почему этого не происходит? Дело в том, что FortiGate работает в режиме Stateful Packet Inspection (SPI). Если совсем кратко — когда пользователь обращается к определенному серверу, и FortiGate, основываясь на политиках, разрешает доступ к данному серверу, он в то же время запоминает данные этого обращения (сессию). И когда приходит ответ от сервера, он сравнивает эти данные, и, если они совпадают — пропускает данный ответ.


Как фильтровать доступы к веб страницам

Хорошо, веб страницы у нас теперь доступны. Попробуем пропинговать доступный нам веб сайт google.com.

Рисунок 3. Пинг не идет

Почему пинг не проходит? Потому что в поле service нашей политики мы разрешили доступ к внешним ресурсам только по протоколам HTTP и HTTPS.

Проведем эксперимент. Для начала упростим себе задачу, изменив доступные сервисы с HTTP и HTTPS на all. Предположим, что нам нужно закрыть доступ ко всем сервисам google, а доступ к остальным ресурсам разрешить. Создадим новую политику. Но ведь у самого google, а также у его сервисов, несчетное число IP адресов. Как нам указать в качестве назначения их все?

Для таких случаев в FortiGate присутствует база интернет сервисов. Заходим в поле Destination. Справа находится столбец Internet Service. Нажимаем на него. Появился список доступных интернет сервисов. Ищем там google, для удобства можно воспользоваться встроенным поиском. Выделяем все доступные сервисы google. Для быстроты можно выбрать первый в списке сервис, зажать клавишу shift и нажать на последний в списке сервис. Выбираем действие — Deny.  Не забываем давать политикам названия. Названия должны четко отражать суть политики. Это необходимо для того, чтобы в случае большого количества политик было проще ориентироваться между ними. Назовем политику DenyGoogle. Указываем интерфейсы и источник, аналогично настройкам прошлой политики. Нажимаем ОК.

 

Рисунок 4. Пример настройки политики Google

Теперь попробуем открыть google.com. Ничего не изменилось, он по-прежнему доступен. Посмотрим на наш список политик (см. рис. 5).

 

Рисунок 5. Список политик

Первой в данном списке стоит политика, разрешающая полный доступ по  всем доступным протоколам. Когда через нее проходят наши запросы к google сервисам, данная политика разрешает доступ, и следующая политика данный запрос уже не проверяет. Попробуем переместить нашу новую политику на первое место. Для этого зажмем нашу политику в поле ID левой кнопкой мыши и перенесем наверх (см. рис. 6).

 

Рисунок 6. Список политик после преобразования

Снова проверим доступность google сервисов. Ни почта, ни поисковик, ни другие сервисы не открываются. Для надежности проверим остальные веб ресурсы, например, Яндекс. Все работает.

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


Заключение

Политики безопасности, которые мы рассмотрели в этой статье — фундамент защиты. А что, если нам нужно больше? Об этом мы поговорим в следующей статье, в которой рассмотрим Security Profiles или Профили безопасности.