Что такое stateful firewall?
Почему маршрутизаторы класса soho не советуют для применения для защиты даже обычного офиса на несколько человек?
Зачастую рекомендуют для применения устройства более высокого класса, чем необходимо. В этой статье заденем часть функционала, из-за которого эти советы возникают. Основная это обслуживание границы внутренней и внешней сетей, и использование технологии NAT. Точнее, в большинстве случаев подразумевается подвид nat-трансляции Port Address Translation (PAT), но все привыкли и этот случай называть NAT, и мы не будем выбиваться из общих тенденций.
Итак, трансляция заголовков пакетов при пересечении административных доменов.
У нас есть условный пользователь внутренней сети, который будет обращаться к внешним сервисам, и разновидности NAT мы будем рассматривать на его примере.
Рассмотрим использование stateless-роутера например с подобной конфигурацией:
access-list 10 permit ip 192.168.0.0 0.0.0.255 any
ip nat pool POOL1 1.1.1.1 1.1.1.1 255.255.255.0
ip nat inside source list 10 pool POOL1 overload
interface gig 0/1.100
ip nat inside
interface gig 0/1.200
ip nat outside
И исходные данные просты – NAT настроен, и клиентское ПО создаёт обращение на некий сервер в интернете с адресом 2.2.2.2, скорее всего по протоколу https.
При маршрутизации клиентского пакета через наш роутер произойдёт трансляция, в ходе которой вместо клиентского адреса будет изменён source ip в tcp-пакете на 1.1.1.1, и скорее всего будет изменён source port, если он уже был занят другой трансляцией.
При этом для ответных пакетов в таблице трансляций роутера создаётся так называемый pinhole – «дырка», которая позволяет ответному пакету от сервера 2.2.2.2 при получении роутером в таблице трансляций найти первоначальную, и восстановить destination ip и destination port, с дальнейшей обработкой пакета по правилам маршрутизации и передаче этого пакета конечному клиенту.
И тут, в зависимости от реализации NAT конечного устройства всплывают разные нюансы.
Во многих soho-устройствах производитель экономит на размере таблицы трансляций: source address для входящих внешних пакетов не проверяется, в результате - pinhole на практике позволяет при обращении на внешний порт от любого айпи-адреса отослать пакет на клиентское устройство. И, например, при том что многие мобильные устройства зачастую не имели встроенного фаервола – это было чревато потенциальным получением доступа.
Даже если мы используем роутер Cisco или подобное устройство с корректной работой NAT/PAT , и условие проверки source address для входящего внешнего пакета выполняется – и это не облегчает безопасность айти-инфраструктуры. Для любого stateless nat-преобразования не выполняется проверка корректности транзитных пакетов. При установлении корректного соединения, в нашем случае tcp, должна пройти так называемая процедура тройного рукопожатия, и в случае stateless-устройства ответные внешние пакеты не будут проверены на корректность соответствия этой процедуре.
Если стоит вопрос безопасности предприятия – рекомендуем в первую очередь рассматривать устройства уровня Cisco ASA/Firepower. Кроме строгоой проверки трафика, эти устройства дадут и другие интересные возможности, например отслеживание обслуживаемых внутренних хостов на возможное участие в ботнетах, проверка сгружаемых файлов антивирусом, и много, много другой радости для системного администратора.
Полезные мелочи, которые полезно учитывать.
- На софт-роутерах Cisco есть возможность использования domainless NAT. В таком случае у будут отсутствовать направления inside/outside, и трансляция будет производиться в зависимости от заданного направления прохождения пакетов. Для указания возможности принятия (саб)интерфейсов в трансляции адресов используется директива
ip nat enable
. - При использовании SLA для переключения внешних каналов доступа, не забывайте после замены конфигурации очищать таблицу NAT-трансляций – пакет от клиента для уже устанавливавшегося соединения уйдёт в неактивный сабинтерфейс в соответствии с имеющейся записью в таблице трансляций.
- Не забывайте использовать инструкцию
ip nat translation max-entries all-host
, которая ограничивает максимальное трансляций на адрес. В случае заражения и рассылки спама, или при запуске сотрудником битторент-клиента работа офиса может быть парализована, при кажущемся отсутствии нагрузки. Особенно стоит обратить внимание, если используется проброс внешнего порта для какого-либо внутреннего сервиса. - Возможно, вы видели таблицу с максимально возможной пропускной способностью выбранной модели маршрутизатора Cisco поколения G1, которые до сих пор популярны. Стоит учесть, что данные были получены буквально в лабораторных условиях, при использовании NAT и других ёмких сервисов, например IPSec, максимальная пропускная способность будет меньше. Для последних моделей производительность публикуется для трафика IMIX, и указывается производительность в сочетании с другими сервисами, что более приближено к реальным условиям.