NOTE: В данной статье показана настройка версий ОС NDMS 2.11 и более ранних. Настройка актуальной версии ПО представлена в статье "Как реализован межсетевой экран?".
Межсетевой экран (Firewall, сетевой экран) предназначен для защиты устройств локальной сети от атак извне. По умолчанию все компьютеры домашней сети скрыты от пользователей Интернета встроенным сетевым экраном и транслятором адресов NAT.
Механизм трансляции сетевых адресов NAT маскирует адреса компьютеров локальной сети за единственным адресом внешнего интерфейса, и работает непосредственно с содержимым кадров, подменяя адреса источника и назначения.
Сетевой экран действует на трафик уже после трансляции адресов и маршрутизации, и осуществляет контроль и фильтрацию трафика, в соответствии с заданными правилами на основе IP-адресов.
Встроенный сетевой экран интернет-центра разрешает устанавливать соединение из домашних интерфейсов (LAN) сети в публичные (WAN), и запрещает в обратную сторону. Пользовательскими настройками можно изменять параметры безопасности: разрешать или, наоборот, запрещать доступ к конкретным хостам или сервисам сети.
В предустановленных настройках по умолчанию публичным (внешним, public) является интерфейс, предназначенный для соединения с внешними сетями или для доступа в Интернет. Например, такими интерфейсами являются:
— подключение по выделенной линии Ethernet;
— беспроводное подключение по USB-модему мобильного Интернета 3G/4G/LTE;
— подключение с авторизацией на основе протоколов PPPoE/PPTP/L2TP.
Домашними (локальными, private) являются интерфейсы домашней сети (клиенты подключенные к интернет-центру по Ethernet и по Wi-Fi) и гостевой беспроводной сети.
По умолчанию Keenetic принимает сетевые подключения только с локальных интерфейсов. Из домашних интерфейсов разрешено устанавливать соединения в публичные интерфейсы, и на само устройство для управления и доступа к сервисам, которые включены на интернет-центре (FTP, Transmission, сетевое использование USB-накопителей и т.п.). Для клиентов гостевой сети закрыт доступ для управления интернет-центром и к его сервисам.
Между локальными интерфейсами устанавливать соединение запрещено по умолчанию, но при необходимости, доступ можно разрешить.
Из публичных интерфейсов запрещено устанавливать соединения на любые другие интерфейсы, а также на само устройство.
Внимание! По умолчанию доступ к управлению интернет-центром (к веб-конфигуратору) из внешней сети заблокирован.
1. Как реализован межсетевой экран?
Упрощенно, сетевой экран можно представить как набор преднастроенных и пользовательских фильтров, причем, правила, настроенные пользователем, имеют более высокий приоритет выполнения.
Сетевой экран оперирует следующими настройками:
— IP-параметры (основные критерии правил фильтрации): IP-адрес/Подсеть, Протокол, Номер порта;
— действия этих правил (Запретить или Разрешить) на пакеты сетевого трафика;
— привязка правил к конкретному интерфейсу.
Пользовательская часть сетевого экрана Keenetic выполняет правила фильтрации, созданные для конкретного интерфейса. При создании правила сетевого экрана очень важно правильно определить интерфейс, для которого оно будет создано. Дело в том, что в привязке правил к интерфейсу также задаётся направление потока трафика, к которому данные правила будут применены. Правила могут выполняться для входящего или исходящего потока WAN- или LAN-интерфейса.
Входящее направление (in) — всегда к устройству, исходящее (out) — от него.
Относительно интерфейса, направление потока определяется как:
– входящее (in) для трафика из внешней сети в локальную на WAN-порту, для LAN-интерфейсов это направление исходящее (out);
– поток из локальной сети во внешнюю для WAN-интерфейсов является исходящим (out), а для интерфейсов LAN входящим (in).
Согласно приведённой схеме, входящий пакет из внешней сети в локальную на WAN-интерфейсе — это входящее направление для правила сетевого экрана, но на LAN-интерфейсе правило для контроля этого трафика — уже исходящее (out).
Важно! В интернет-центрах серии Keenetic правила сетевого экрана действуют не «по-пакетно», а в рамках сессии (соединения). Поэтому при блокировке доступа куда-либо нужно запрещать прохождение пакетов со стороны инициатора запроса, а не ответы на эти запросы.
Например, для запрета доступа по протоколу HTTP с локальных хостов на внешний адрес 77.88.99.10 нужно создать одно правило на локальном интерфейсе LAN, т.к. инициатор установки сессии (входящий трафик) находится в локальной сети.
Также стоит отметить, что в случае когда сессия уже установлена, а ПОСЛЕ этого применена настройка правила сетевого экрана, касающаяся трафика в этой сессии, данную существующую сессию сетевой экран не будет контролировать. Правило начнёт действовать после разрыва текущей сессии – принудительного или по истечении времени жизни сессии.
Для корректной работы вновь созданного правила (для сброса текущих/активных соединений), интерфейс интернет-центра, к которому оно применимо, следует отключить и включить снова.
В устройствах профессионального класса (таких как аппаратные шлюзы доступа корпоративного применения), межсетевой экран обладает более широкими возможностями, в том числе и сбросом текущих/активных соединений при изменении правила сетевого экрана.
2. Настройка правил межсетевого экрана
Правила сетевого экрана выполняются в порядке их указания по списку: первое верхнее и далее вниз. Для любого правила (точнее, для их группы или списка управления доступом) должен быть определён интерфейс, на котором они будут выполняться.
В каждом из правил должны быть указаны:
— сети источника трафика и его назначения (IP-адреса хостов или подсетей);
— протокол, для которого будет действовать настройка (TCP, UDP, ICMP);
— для протоколов TCP и UDP обязательно должен быть указан номер порта;
— действие, которое нужно выполнить над пакетом: Запретить (deny) или Разрешить (permit).
Внимание! В Keenetic правила сетевого экрана обрабатываются после правил Трансляции сетевых адресов (NAT). Поэтому при создании правил сетевого экрана необходимо указывать IP-адрес хоста уже после трансляции адресов.
2.1. Настройка правил из веб-конфигуратора
Веб-интерфейс интернет-центра предлагает наиболее удобный способ управления правилами сетевого экрана. Но он имеет ограничение: созданные через веб-конфигуратор правила применяются только к входящему (in) направлению, настроить исходящее (out) направление невозможно! Через интерфейс командной строки (CLI) интернет-центра возможно создавать правила для любого направления.
Настройка правил сетевого экрана производится в разделе Безопасность на вкладке Межсетевой экран.
Для настройки правил следует выбрать интерфейс, на входящем направлении которого эти правила будут применяться. Для управления правилами в списке имеется возможность копировать их в список другого интерфейса, перемещать вверх и вниз по списку (изменять последовательность выполнения) и удалять.
При нажатии кнопки Удалить все правила из конфигурации будет полностью удален соответствующий данному интерфейсу список правил.
При добавлении или редактировании правила в окне настройки выбирается действие — Разрешить прохождение трафика или Запретить, и далее указываются критерии-условия, при совпадении которых эти действия будут выполняться.
Обращаем ваше внимание на следующие особенности:
– правила следует создавать для интерфейса, на котором фильтруемый трафик является инициирующим сессию;
– при создании отсеивающих фильтров, разрешающие правила (permit) должны располагаться выше запрещающих (deny);
– при настройке правил можно использовать только IP-адреса (при указании адреса источника или назначения нельзя использовать доменные имена). Диапазоны адресов требуется указывать при помощи масок. Если необходимо создать фильтр для разных диапазонов сетей, то потребуется создать несколько правил для каждого диапазона.
На скриншоте ниже показан пример правила на внешнем интерфейсе (WAN), разрешающего управление интернет-центром по протоколу HTTP из Интернета.
2.2. Исключения в работе межсетевого экрана
Некоторые приложения (сервисы), доступные в интернет-центрах серии Keenetic, самостоятельно изменяют политики безопасности для своей работы. К ним относятся, например, Сервер VPN, FTP, настройка проброса портов в NAT с внешнего интерфейса на компьютер в локальной сети или служба UPnP (механизм автоматического открытия портов на хосты в локальной сети). Со стороны пользователя при их использовании не требуется никаких дополнительных настроек, нужные разрешения добавляются автоматически (например, при настройке проброса портов в NAT, создание дополнительных правил в межсетевом экране не требуется, разрешения для доступа создаются автоматически).
Но при необходимости с помощью пользовательских правил можно ограничить трафик, который поступает через автоматически открытые направления, оставив только необходимый. Общая логика настройки таких ограничений — «разрешив нужное, запретим всё остальное».
Например, включенный сервер VPN открывает входящий порт tcp/1723 на каждом из активных интерфейсов устройства. Если нужно ограничить возможность подключения для обращений с определённых адресов в сети Интернет, на внешнем интерфейсе следует создать правила, разрешающие прохождение протокола TCP на порт назначения 1723 от требуемых адресов-источников, а затем — запрещающее протокол TCP на порт 1723 от любых других узлов.
Ограничим на внешнем интерфейсе ISP эту возможность лишь для адреса 9.20.165.170.
Для этого, создадим через веб-интерфейс сначала разрешающее правило для входящего трафика с адресом источника 9.20.165.170 на порт tcp/1723.
Следующим правилом, запретим любые другие обращения на порт 1723 на этом интерфейсе.
Эти два простые правила запрещают любые PPTP-подключения на интерфейсе ISP, кроме как с адреса 9.20.165.170.
2.3. Данный раздел предназначен только для опытных пользователей!
Настройка правил межсетевого экрана из интерфейса командной строки (CLI) интернет-центра
CLI предоставляет более расширенные и гибкие возможности настройки межсетевого экрана Keenetic, по сравнению с возможностями веб-конфигуратора. Подробное описание команд интерфейса CLI для каждой модели Keenetic можно найти в Справочнике команд, который размещён на сайте в разделе Файлы загрузки.
Сетевой экран интернет-центра Keenetic выполняет правила фильтрации, записанные в список правил доступа (Access Control List, access-list), на каждом интерфейсе, к которому привязан этот список. К одному интерфейсу может быть привязано несколько списков.
Для настройки сетевого экрана доступны следующие команды:
access-list {Имя_списка_правил} — осуществляет переход к управлению правилами в указанном списке доступа. Если списка не существует, он будет создан.
no access-list {Имя_списка_правил} — удаляет указанный список, если он существует.
Например, для перехода к редактированию списка MyList1 используется команда:
(config)> access-list MyList1
(config-acl)>
После создания списка доступа можно приступать к созданию его правил. Для этого используются команды deny и permit, соответствующие запрещающим и разрешающим правилам фильтрации. Формат этих команд одинаков и приведен в Справочнике команд.
Важно! Каждое правило может содержать фильтр только для одного из поддерживаемых протоколов.
Далее приведём примеры некоторых правил:
а. Команда, включающая фильтр для разрешения передачи TCP-пакетов с хоста 192.168.1.33 на любые адреса:
(config-acl)> permit tcp 192.168.1.33/32 0.0.0.0/32
ACL rule added
б. Команда для запрета пинга со всех хостов подсети 192.168.1.0/24 в любую другую подсеть:
(config-acl)> deny icmp 192.168.1.0/24 0.0.0.0/32
ACL rule added
в. Команда, включающая фильтр для запрета передачи IP-пакетов из подсети 192.168.1.0/24 на любые узлы:
(config-acl)> deny ip 192.168.1.0/24 0.0.0.0/32
ACL rule added
Обращаем ваше внимание, что команда (permit|deny ip) без указания типа протокола доступна только для версий микропрограмм V2.06 и выше. Она объединяет протоколы TCP и UDP в одну общую настройку (ip).
Для версий ниже V2.06 необходимо указывать правила для TCP и UDP отдельно. Например: deny tcp 192.168.1.0/24 0.0.0.0/32 и deny udp 192.168.1.0/24 0.0.0.0/32
г. Команда для разрешения подключения к веб-конфигуратору интернет-центра (192.168.1.1) по протоколу HTTP (tcp порт 80) с любых хостов из Интернета:
(config-acl)> permit tcp 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 port eq 80
ACL rule added
д. Чтобы удалить правило из списка, нужно повторить команду, задающую его, но перед ней указать no
Например:
(config-acl)> no permit tcp 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 port eq 80
ACL rule deleted
Для выхода из редактирования списка доступа используется команда exit
Сформированный список правил, при помощи приведенных выше команд, в файле конфигурации интернет-центра будет выглядеть следующим образом:
access-list MyList1
permit tcp 192.168.1.33/32 0.0.0.0/32
deny icmp 192.168.1.0/24 0.0.0.0/32
deny ip 192.168.1.0/24 0.0.0.0/32
Подготовив список правил доступа, нужно выполнить его привязку к требуемому интерфейсу устройства. Для этого служит команда ip access-group {Имя_Списка_Доступа} {направление in|out} в настройках каждого интерфейса.
Напоминаем, что для каждого списка на интерфейсе также задаётся направление потока трафика, к которому данные правила будут применены. Направление определяется относительно интерфейса (входящее направление in — всегда к устройству, а исходящее out — от него). Эта информация подробно была рассмотрена в пункте 1 «Как реализован межсетевой экран?» настоящей инструкции.
Например, привяжем созданные правила ко внешнему интерфейсу ISP:
(config)> interface ISP
(config-if)> ip access-group MyList1 out
access group applied
В исходящем (out) направлении интерфейса ISP (это направление от интернет-центра в сеть данного интерфейса) будет запрещена передача любого трафика на любые адреса.
Список правил, подобный нашему примеру, может быть полезен, когда нужно запретить доступ в Интернет через внешний интерфейс всем хостам локальной сети, кроме одного. В нашем примере доступ и пинг запрещён всем хостам подсети 192.168.1.0, кроме хоста с IP-адресом 192.168.1.33.
На интерфейсах интернет-центра предусмотрены настройки уровня доступа (security-level), которые определяют уровень безопасности (логику работы сетевого экрана).
Для версии микропрограммы V2.06 их три:
— private (частный, локальный);
— public (внешний, публичный);
— protected (защищённый, локальный).
Уровень protected доступен только в версии V2.06, а private и public есть во всех версиях.
Cхему разрешённых и запрещённых направлений передачи данных в интернет-центре серии Keenetic можно представить следующей диаграммой:
По умолчанию Keenetic принимает сетевые подключения только с интерфейсов private. Интерфейсам типа private разрешено устанавливать соединения в интерфейсы public, и на само устройство для управления и доступа к сервисам, работающим на интернет-центре. Для интерфейса гостевой сети закрыт доступ для управления интернет-центром и к его сервисам.
Между интерфейсами private и из private в protected устанавливать соединение запрещено по умолчанию, но при необходимости, доступ можно разрешить. Данная настройка зависит от установки параметра isolate-private. Если вам нужно разрешить соединения между интерфейсами типа private или между private и protected (т.е. не изолировать доступ), для этого выполните команду no isolate-private
Из интерфейсов типа public запрещено устанавливать соединения на любые интерфейсы, в том числе на другие интерфейсы типа public, а также на само устройство.
Интерфейсам типа protected разрешено устанавливать соединения только в интерфейсы public. По умолчанию доступ запрещён к устройствам интерфейсов private и других protected, а также к управлению устройством.
С помощью команды security-level public|private|protected можно управлять уровнями доступа на интерфейсах интернет-центра.
Например:
(config)> interface Bridge3
(config-if)> security-level protected
Interface set as protected
Определить действующий для интерфейса уровень безопасности, а также локальный это интерфейс или публичный, можно по результатам выполнения команды show interface {Имя_Интерфейса}, которая отображает данные указанного интерфейса.
Например:
(config)> show interface ISP
id: GigabitEthernet1
index: 1
type: GigabitEthernet
description: Broadband connection
link: up
connected: yes
state: up
mtu: 1500
tx-queue: 1000
address: 192.168.128.35
mask: 255.255.255.0
uptime: 41701
global: yes
defaultgw: no
priority: 700
security-level: public
mac: 58:8b:f3:65:85:ed
auth-type: none
В строке security-level указан уровень безопасности, соответственно которому работает преднастроенная политика сетевого экрана.
Важно! По умолчанию всем вновь созданным через командную строку интерфейсам присваивается уровень безопасности public.
Список названия интерфейсов устройства и их системные идентификаторы можно посмотреть следующим образом: впишите команду show interface и затем нажмите клавишу TAB на клавиатуре. На экран будет выведен список всех имеющихся на текущий момент интерфейсов устройства, включая предустановленные служебные.
Примечание
1. Интернет-центр серии Keenetic под управлением ОС NDMS V2 поддерживают работу с протоколами IPv6 и IPv4. Для управления межсетевым экраном IPv6 предусмотрены только минимальные настройки: включить или выключить.
Сделать это можно через CLI: ipv6 firewall (включить) и no ipv6 firewall (выключить).
По умолчанию межсетевой экран для протокола IPv6 включен.
2. В интернет-центрах Keenetic c микропрограммой NDMS V2.06 присутствует уровень доступа protected. Данный уровень доступа является аналогом уровня private, но без доступа к интернет-центру.
Тип protected устанавливается для интерфейса гостевой сети Wi-Fi, если в веб-интерфейсе в меню Домашняя сеть > Сегменты в настройках интерфейса GuestWiFi убрать галочку в поле Разрешить доступ к интернет-центру. По умолчанию доступ из гостевой сети к интернет-центру разрешён и для данного интерфейса установлен уровень private.
3. Информация для опытных пользователей!
В случае когда необходимо применить большое количество правил сетевого экрана, можно выполнять настройку правил путём редактирования файла конфигурации интернет-центра startup-config.txt с помощью любого текстового редактора. После сохранения изменений нужно загрузить файл обратно на устройство и перезагрузить его. Но редактировать файл конфигурации следует крайне осторожно, т.к. это может привести к невозможности управления устройством, потере работоспособности отдельных функций, некорректному отображению настроек в веб-интерфейсе.
В случае когда необходимо применить большое количество правил сетевого экрана, можно выполнять настройку правил путём редактирования файла конфигурации интернет-центра startup-config.txt с помощью любого текстового редактора. После сохранения изменений нужно загрузить файл обратно на устройство и перезагрузить его. Но редактировать файл конфигурации следует крайне осторожно, т.к. это может привести к невозможности управления устройством, потере работоспособности отдельных функций, некорректному отображению настроек в веб-интерфейсе.
Если ваше устройство после загрузки отредактированного файла конфигурации перестало корректно работать, советуем сбросить пользовательские настройки кнопкой СБРОС и настроить интернет-центр заново стандартными методами: с помощью мастера быстрой настройки, через веб-интерфейс или командную строку, либо загрузить заведомо рабочий резервный конфигурационный файл.
4. Правила сетевого экрана, настроенные через веб-интерфейс, записываются в файле конфигурации интернет-центра в списках доступа с именами вида: _WEBADMIN_{Имя_Интерфейса}
Например, для интерфейса домашней сети: _WEBADMIN_Home
Не рекомендуется перенастраивать такие списки при помощи команд CLI, вместо этого при необходимости выполнить дополнительные настройки следует создавать списки доступа с уникальными именами.
5. Различные примеры использования правил межсетевого экрана представлены в статье: «Использование правил Межсетевого экрана»
Пример настройки правил межсетевого экрана, в которых используется диапазон IP-адресов или портов, представлен в статье: «Настройка правил межсетевого экрана интернет-центра, в которых используется диапазон IP-адресов или портов»
KB-4937