На этой странице представлено введение в файервол Huawei USG и простая методика ограничения доступа в Интернет по URL. Это описание нужно рассматривать как часть базовой конфигурации USG, которая представлена тут.
Раздел Security Policy (политики безопасности) в Huawei USG – это и есть классический «firewall ruleset». Тут он так называется. Для сравнения в MikroTik это IP >> Firewall >> Filter Rules, или ACL в Cisco ASA. Это основной раздел, в котором настраиваются правила фильтрации трафика между зонами безопасности. Здесь определяются, какие типы трафика (например, по IP, протоколам или портам) могут проходить, а какие блокируются.
Политики это ключевой механизм фильтрации трафика, но работает он только между зонами безопасности, и правила применяются не в первую очередь.
Иерархия принятия решения в Huawei USG следующая:
1.Зоны безопасности (Security Zones).
2.Маршрутизация (Routing).
3.NAT
4.Политики безопасности (Security Policies).
5.Состояния сессий (Stateful Inspection).
Когда на файервол поступает первый пакет нового соединения, он проходит эти этапы в строгом порядке, чтобы определить, разрешить ли трафик и создать ли сессию. Такое поведение описано в этом документе.
Зоны безопасности.
Security Zones в данном USG – это первичный и более фундаментальный механизм, чем политики безопасности. Зоны – задают границы между сегментами сети и определяют, с какими интерфейсами связан трафик (zone-based firewall). Без перехода между зонами вообще не начинается работа политики. То есть Security Policies применяется только при межзоновом трафике.
Файервол рассматривает только те пакеты, которые входят через один интерфейс, например, в зоне untrust, и должны выйти через другой интерфейс, например, в зоне trust.
Если трафик остаётся внутри одной зоны, и для неё не разрешены Intra-zone политики – политика безопасности не применяется вообще, и трафик по умолчанию блокируется. Или если не определено, между какими зонами происходит трафик – политика не применяется, и пакет отбрасывается.
Каждой зоне присваивается уровень доверия (trust level), численно выражаемый от 0 до 100, где:
100 – максимальное доверие (Local, Trust)
0-49 – минимальное доверие (Untrust, DMZ)
Назначение зон.
Local (100) – используется для интерфейсов управления (доступ через HTTP, SSH).
Trust (85) – зона с высокой степенью доверия. Разрешен почти весь трафик в другие зоны с меньшим уровнем доверия.
DMZ (50) – промежуточная зона. Предназначена для серверов, которые доступны как изнутри, так и снаружи.
Untrust (5) – зона с самым низким уровнем доверия. Входящий трафик требует строгих правил фильтрации и NAT.
Можно создавать собственные зоны для более гибкого управления в сети.
Маршрутизация.
После попадания трафика в firewall, через интерфейс и зоны, до применения политик безопасности, определяется маршрут трафика, проверяются таблицы маршрутизации, определяется интерфейс выхода, чтобы понять в какую зону пойдет трафик. Есть ли вообще путь до адресата. Если нет – пакет сразу отбрасывается. Это критично для корректного применения Security Policy.
NAT
NAT применяется до Security Policy, но политики пишутся по до-натированным адресам, если не указано явно post-nat. И то не всегда это выполняется. Например, DST-NAT применяется до маршрутизации и политики, SRC-NAT применяется после политики и маршрутизации. Об этом можно убедиться в диаграмме движения трафика. support.huawei.com
Политики безопасности.
По первоначальной настройке всегда создана одна политика default. Все её значения any (любой), а действие – Permit (разрешение). Т.е. эта политика разрешает всё и всем.
FW по умолчанию не пускает входящий трафик из WAN. Это кажется противоречием с политикой default. Но тут, согласно иерархии сперва проверяются зоны. Трафик между зонами по умолчанию не разрешён, пока явно не создано правило. А такого правила нет. На странице базовой конфигурации мы указывали в WAN-интерфейсе зону untrust, в LAN зону trust и больше ничего. Это означает, что можно выйти в Интернет из локальной сети и нельзя зайти из Интернета в локальную сеть.
Получается что если правильно назначены зоны, то для локальной сети файервол становится нормально открытый – разрешено все, что не запрещено. Для внешней сети нормально закрытый файервол – запрещено все, кроме того, что явно разрешено (если что-то разрешить, например проброс портов). Это доп. защита для начинающих админов, которые не вникают в политики. Назначил зоны для WAN и LAN интерфейсов и можно подключаться в Интернет. Ни кто внутрь не проникнет. Если нужно более конкретно распределить доступы, тогда необходимо создавать дополнительные более специфичные правила.
General Settings – общие настройки.
Name – имя политики (обязательное поле).
Description – произвольное описание.
Policy Group – привязка политики к определённой группе политик. Используется для структурирования политик по функционалу, проектам или зонам. Удобно при массовом управлении или просмотре: можно быстро видеть, какие политики относятся к какому направлению. Например, все правила, связанные с доступом в Интернет, объединены в группу Internet_Access_Policies.
Tag – это произвольная метка, которую можно присвоить политике для дополнительной фильтрации или поиска.
Source and Destination – Источник и Назначение.
Source Zone – выбор зоны источника трафика.
Destination Zone – выбор зоны назначения трафика.
Source Address/Region/Destination Address/Region – конкретные IP-адреса или регионы источника и назначения. Выбираются из объектов.
VLAN ID – позволяет ограничить применение правила только к трафику из определённого VLAN, даже если он входит в ту же зону.
User and Service – пользователь и служба.
User – конкретный пользователь, к которому применяется правило. Это работает только при включённой функции аутентификации пользователей. Можно разрешить доступ в интернет только пользователям, прошедшим аутентификацию, и заблокировать всех остальных. Пользователи должны быть либо в локальной базе USG, либо во внешней базе (AD, RADIUS и т.п.).
Access Mode – это поле применяется только при использовании авторизации пользователей, и оно указывает, как именно пользователь был авторизован. Вот расшифровка.
any – любой способ авторизации, без ограничения.
wireless-802.1x – авторизация по протоколу 802.1X по Wi-Fi (через точку доступа).
wired-802.1x – авторизация по 802.1X по Ethernet (по проводу).
wired-portal – Web-портал авторизации через проводное подключение.
wireless-portal – Web-портал авторизации через Wi-Fi.
Device – позволяет применять политику в зависимости от типа конечного устройства, с которого осуществляется подключение. Это может быть, например ПК или мобильное устройство. Для работы нужно, чтобы была включена функция Device Identification и включён сбор соответствующей информации.
Service – определяет тип трафика по протоколу и порту, и позволяет применять правило только к определённым сервисам.
Application – позволяет применять политику к конкретному приложению, которое распознаётся системой с помощью Deep Packet Inspection (DPI). Использует встроенный движок идентификации приложений (Application Identification), который умеет распознавать трафик по сигнатурам, независимо от порта. (может снизить производительность). Необходимо регулярное обновление сигнатур приложений.
URL Category – предназначено для фильтрации веб-доступа по URL-категориям сайтов.
Schedule – расписание действия политики. Any или пустое поле – действует всегда.
Action – действие.
Permit – разрешить.
Deny – запретить.
Параметры reset client, reset server и ICMP unreachable определяют какой ответ получит клиент или сервер, когда трафик блокируется политикой с действием Deny.
reset client – сброс TCP-сессии со стороны клиента. USG отправляет TCP RST (Reset) пакет клиенту. На клиенте браузер или программа немедленно получает сообщение «Connection reset by peer» или «Сервер сбросил соединение». Используется когда нужно, чтобы клиент сразу узнал, что соединение не состоится. Самая быстрая реакция клиента. Применимо при TCP. Для UDP игнорируется.
reset server – сброс TCP-сессии со стороны сервера. USG отправляет TCP RST серверу, как будто клиент сбросил соединение. Клиент, скорее всего, будет просто ждать таймаута или получит ошибку позже. Используется чтобы сервер не ждал напрасно ответа от клиента. Часто комбинируется с reset client.
ICMP unreachable – сообщение недостижимости. USG отправляет ICMP Destination Unreachable обратно клиенту. Клиент немедленно получает ICMP-ошибку и может перестать пытаться подключаться. Чаще используется при блокировке UDP-трафика, где нет TCP-сессии и RST невозможен.
Content Security – контентная безопасность (безопасность содержания). Здесь можно подключить модули глубокой фильтрации и анализа контента.
Antivirus – подключение антивирусного сканирования трафика.
Intrusion Prevention – система предотвращения вторжений, анализирует трафик на наличие вредоносной активности.
URL Filtering – выбор профиля, в котором задаются правила обработки URL. Настраивается и применяется отдельно от URL Category. Позволяет выполнять более гибкие настройки по черному/белому спискам и другим вариантам.
File Blocking – блокировка загрузки файлов определённых типов (например, .exe, .zip).
Data Filtering – фильтрация по ключевым словам или содержимому (DLP — защита от утечки данных).
Application Behavior Control – контроль поведения приложений, блокировка или разрешение действий приложений.
Cloud Access Security Awareness (CASA) – мониторинг и контроль доступа к облачным приложениям.
Email Filtering – фильтрация электронной почты по содержимому, вложениям, адресатам.
DNS Filtering – блокировка по доменам через DNS-запросы.
Other Options – прочие параметры.
Record Traffic Logs – выбор журнала для записи событий трафика по этой политике.
Record Policy Matching Logs – включить запись логов при совпадении трафика с этой политикой.
Record Session Logs – включить запись логов сессий, соответствующих политике.
Session Aging Time – время жизни сессии в секундах. После этого она будет удалена (по умолчанию около 1800 секунд = 30 мин).
User-Defined Persistent Connection – сохранение сессий (например, для VoIP или сервисов, требующих постоянного соединения).
Поле ниже (168) – время хранения постоянных соединений (в часах), если выше включено.
Кнопки.
OK – сохранить правило.
OK and Copy – сохранить и создать копию правила (удобно для шаблонов).
Command Preview – показывает CLI-команды, которые будут выполнены.
Cancel – отмена без сохранения.
Порядок обработки правил.
Правила Security Policies обрабатываются сверху вниз, по порядку. Первое совпадающее правило применяется. Остальные правила не проверяются, если уже найдено совпадение.
default policy всегда создается по умолчанию. Если нет ни одного подходящего пользовательского правила, трафик проходит через default policy. Если default policy настроена на deny, а никаких других правил выше нет – весь трафик будет блокироваться. Чем меньше правил в файерволе, тем выше производительность. Если политика безопасности разрешает трафик, создаётся новая сессия для последующих пакетов.
Состояния сессий.
Stateful Inspection (также известный как Stateful Packet Inspection или SPI) – это метод фильтрации трафика, который отслеживает состояние активных соединений и принимает решения о пропуске или блокировке пакетов на основе состояния, контекста и правил. Это аналог Connection Tracking в MikroTik. Можно мониторить соединения через GUI или CLI.
Через CLI.
1 2 |
system-view display firewall session table |
На Huawei USG stateful firewall по умолчанию – файервол с отслеживанием состояний. Stateful Inspection всегда включена.
Сетевой экран автоматически отслеживает сессии, запоминает каждое соединение, кто его инициировал, на какой IP-адрес/порт, по какому протоколу. Ответный трафик с сайта в Интернете обратно в локальную сеть разрешается автоматически, если сессия уже открыта. Контролируется логика TCP/UDP/ICMP – если что-то «нелогично» (например, пришёл SYN-ACK без SYN), оно будет заблокировано как invalid. USG защищён от RST-флуда, TCP-фрагментации, SYN-атаки, сканирования. Это часть встроенного механизма Intrusion Prevention и Basic Protection.
Виды трафика.
Если сравнить с Микротик, то в Huawei USG – нет прямой аналогии с цепочками INPUT, FORWARD, OUTPUT. Вместо этого используется файервол на основе зон. То есть в Huawei нет логики в терминах «входящий пакет на сам маршрутизатор или через него», а в терминах «какой трафик из какой зоны в какую». default policy в Huawei действует на межзонный трафик, это аналог трафика FORWARD в MikroTik. default policy не контролирует доступ к самому USG, в смысле к девайсу. За доступ к USG (аналог INPUT) отвечает отдельный механизм service-manage + ACL.
Доступ к USG.
Доступ к USG, service-manage и права админам нужно рассматривать как отдельную тему. Если кратко:
-из внешней сети (WAN) – доступ по умолчанию запрещен.
-из локальной сети (LAN) – доступ по умолчанию тоже запрещен, пока явно не включить service-manage на интерфейсе.
Первоначально доступ к устройству есть только через Console-порт и Service-порт. Доступ сначала используют через один из этих портов и затем разрешают доступ с нужных интерфейсов.
Ограничение доступа в Интернет.
Так как сетевой экран устанавливается в организации, то один из вариантов его настройки – запретить полный доступ из локальной сети в Интернет, кроме того, что явно разрешать (нужные для работы сайты). Определенным пользователям можно разрешить полный доступ. Выполним блокировку по IP-адресу пользователя. Среди других вариантов подобной блокировки, например, можно настроить привязку доступа в Интернет к доменной учетной записи пользователя, в случае если пользователь ходит по разным компьютерам и IP-адрес меняется. Но доменной сети у кого-то может не быть, поэтому сделаем настройку на более низком уровне, чтоб идти от простого к сложному.
Выполним следующие действия.
-добавим IP-адреса всех кому разрешен полный доступ в Интернет в Объекты;
-создадим группу и добавим в нее объекты созданных IP-адресов;
-создадим категорию и добавим в нее разрешенные URL;
-создадим разрешающую политику и добавим в нее группу с теми, кому можно в Интернет;
-создадим политику, которая пропускает в Интернет только по URL-категориям;
-создадим запрещающую политику, которая блокирует весь остальной трафик.
Объекты IP-адресов.
По терминологии Huawei перечни адресов и всего остального называются объекты, а не списки (object-based model). Добавляем IP-адреса всех пользователей, кому разрешен полный доступ в Интернет.
Если адрес участвует в группе, то его нельзя удалить до удаления из группы.
Через CLI.
1 2 3 4 |
system-view ip address-set admin-1 type object address 0 192.168.100.215 mask 32 quit |
Просмотр.
1 |
display current-configuration configuration object-address-set |
Группа IP-адресов.
Создаем группу, которой разрешен полный доступ в Интернет. В группу сразу можно добавить доступные объекты IP-адресов.
Если группа используется в политике, то ее нельзя удалить до удаления из политики.
Через CLI.
1 2 3 4 5 |
system-view ip address-set INTERNET-ACCESS type group description for URL allow Policy address 0 address-set admin-1 quit |
Просмотр.
1 |
display current-configuration configuration group-address-set |
URL-категория.
Создаем URL-категорию и добавим в нее разрешенные домены.
Поддерживается использование IP-адресов, а не только URL.
Через CLI.
1 2 3 4 5 6 7 8 |
system-view url-filter category user-defined name ALLOWED_URL_LIST description Allowed URLs add url example.com add url pc360.ru add host 213.180.193.56 add host 172.217.16.14 quit |
Просмотр добавленных категорий URL.
1 |
display url-filter category user-defined |
Политики безопасности.
Создаем Security Policy, которая разрешает доступ в Интернет для созданной группы.
Через CLI.
1 2 3 4 5 6 7 8 9 |
system-view security-policy rule name FULL-INTERNET-ACCESS description Full Internet access for a selected group source-zone trust destination-zone untrust source-address address-set INTERNET-ACCESS action permit quit |
Создаем политику безопасности, которая разрешает трафик для всех остальных пользователей только по URL-категории.
Через CLI.
1 2 3 4 5 6 7 8 9 10 |
system-view security-policy rule name URL-LIMITED-ACCESS description access only to url from the list source-zone trust destination-zone untrust service http https url user-defined sub-category ALLOWED_URL_LIST action permit quit |
Создаем политику, которая блокирует весь остальной трафик.
Через CLI.
1 2 3 4 5 6 |
rule name BLOCK-ALL-OTHER description Block all other traffic source-zone trust destination-zone untrust action deny quit |
Сохраняем настройку.
1 2 3 4 |
quit quit save y |
Нелогичная логика Huawei USG состоит в том, что после правила блокировки всего остального трафика должно находиться правило default-политики, которое всё разрешает. Без этого правила перестает работать NAT.
Такая конструкция безопасна, потому что правильно указаны зоны на интерфейсах. Межзоновые фильтры в Huawei действуют жёстко: если нет явного permit из untrust в trust – трафик блокируется, несмотря на глобальную default-политику. support.huawei.com
Просмотр конфигурации созданной политики.
1 |
display current-configuration configuration policy-security |
Как это работает.
Трафик от пользователя admin-1 (добавленного в группу) заходит в firewall. Попадает в первое правило. Проверяется IP-адрес – совпадает (есть в группе). Разрешается весь трафик. admin1 получает доступ в Интернет без ограничений.
Трафик от произвольного User1. Попадает в первое правило – не совпадает (нет в группе). Переходит ко второму правилу – совпадает так как там разрешены все IP-адреса. Проверяется URL:
-если URL разрешён в списке – трафик разрешается;
-если не входит в список – правило не совпадает, переход на следующее правило.
Следующее правило блокирует весь остальной трафик, и как результат – доступ в Интернет для User1 запрещен.
По мере необходимости пользователь обращается к админу (через служебную записку, естественно) и админ открывает доступ к дополнительному URL или переносит пользователя в группу с полным доступом.
О том, что политики срабатывают, можно убедиться по счетчикам в столбце Hits.
Счетчик показывает сколько раз данная политика была применена к трафику. То есть, каждый раз, когда входящий или исходящий пакет соответствует условиям политики и обрабатывается по ней счётчик Hits увеличивается на 1. Это касается первого пакета, который создаёт сессию. Пакеты в рамках уже установленной сессии не увеличивают счётчик повторно.
Перед началом проверки нужно нажать Reset All Statistics в полоске кнопок над политиками, чтоб сбросить предыдущие значения счетчиков и не путать их с новыми. В этой же строке есть и другие полезные кнопки, с помощью которых можно копировать политики, удалять, передвигать, отключать и тп.
Кроме разделов Secure Policy и NAT, с которыми уже немного познакомились, в секции Policy есть и другие разделы. Вот их краткое назначение.
Bandwidth Management – управление пропускной способностью. Здесь настраивается ограничение или гарантирование скорости доступа для определённых пользователей, приложений, сервисов или направлений трафика.
Quota Control Policy – политики управления квотами. Позволяет ограничивать объём передаваемых данных (трафик) для пользователей, IP-адресов, приложений и сервисов.
Encrypted Traffic Detection – обнаружение зашифрованного трафика. Тут настраивается выявления зашифрованного трафика SSL или TLS для возможной дальнейшей обработки или применения политик на уровне зашифрованного трафика. Т.е. трафик не расшифровывается, а анализируются его поведенческие признаки, выявляются аномалии.
Security Protection – защита безопасности. Это унифицированный центр настройки защитных политик. Раздел включает в себя настройки для защиты от различных угроз, таких как атаки, вирусы и другие вредоносные программы.
ASPF Configuration – Настройка ASPF — Anti-Spoofing Protection. В этом разделе настраивается анти-спуфинг, то есть защита от подделки IP-адресов.
Еще есть антивирус, IPS и много других способов защиты. Файервол очень большой и многофункциональный. Все его возможности раскрыть за одну инструкцию невозможно. Представленное описание это вводный инструктаж для дальнейшей работы.