Фильтруем трафик по MAC/IP/портам. Нюансы Firewall.

FW Portfilter

В предыдущей статье был рассмотрен проброс портов и всё, что с ним связано. Теперь остановимся на фильтрации трафика (раздел Сетевой Экран / Firewall web-интерфейса) — как транзитного, так и обращенного к локальным сервисам маршрутизатора.

1. Настройки фильтрации транзитного трафика
Данный блок позволяет создать набор правил, регламентирующих (как запрещающих, так и разрешающих) прохождение трафика через маршрутизатор из глобальной сети в сторону клиентов и наоборот. Фильтрация может осуществляться по MAC адресам устройств, подключенных к роутеру, IP адресам устройств и внешних ресурсов, а также портам.
Чтобы начать работать с фильтрами, необходимо:

  • Включить фильтрацию (по умолчанию опция отключена).
  • Определиться, что будет происходить со всеми соединениями, не попадающими под правила. Варианта два: либо они пропускаются , либо блокируются. Грубо говоря, понять, какая задача стоит: разрешить доступ лишь к определенным ресурсам и определенному кругу лиц, а всё остальное — запретить; или напротив — в общем случае разрешать любые соединения всем пользователям, за определенными исключениями, оформленными в правила.
traffic filtering / firewall / фильтрация / файрвол

Включение фильтрации транзитного трафика на роутере

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

  1. Интерфейс, на который поступил трафик, обрабатываемый правилом. Если цель — фильтровать соединения, инициированные пользователями локальной сети, необходимо указать LAN, в случае соединений извне — WAN либо VPN в зависимости от типа подключения роутера к операторской сети.
  2. Протокол, на который будет распространяться правило. По умолчанию значение None, т.е любой трафик без уточнения. Но возможен выбор : TCP, UDP или ICMP.
  3. Если фильтрация осуществляется по MAC адресу источника соединения, то необходимо его указать.
  4. Также доступен вариант фильтрации по IP адресу источника соединения (как единственному, так и подсети).
  5. Порт, с которого производится соединение. Для ICMP протокола это поле недоступно.
  6. IP адрес назначения, т.е IP адрес, к которому устанавливается соединение. Это может быть как один адрес, так и подсеть.
  7. Порт назначения, на который производится соединение. Для ICMP протокола это поле недоступно.
  8. Политика, т.е определение того, что будет происходить с соединениями, попадающими под правило. Варианта два: правило может быть либо запрещающим, либо разрешающим.
  9. Комментарий в свободнонй форме, позволяющий не держать в голове, какое правило и зачем было создано.
  10. Действие, а именно — что вы хотите сделать с правилом: добавить (новое) либо удалить (уже существующее).
traffic filtering / firewall / фильтрация / файрвол

Настройка фильтрации трафика (firewall) на роутере

Важно: не обязательно заполнять все доступные поля. В этом случае, проверка соответствия не заполненному критерию просто не будет производиться.
Например, правило, рассмотренное на скриншоте, вида:

Интерфейс = LAN;
Протокол = ICMP;
MAC не указан;
IP источника (src) = 192.168.1.124, Маска не указана;
Порт ист. (src) / Порт назн. (dst) недоступны;
IP назначения (dst) = 8.8.8.8, Маска не указана;
Политика = Запретить;

приводит к тому, что мы теряем возможность пинговать адрес 8.8.8.8 (google dns) с устройства в локальной сети, расположенного по адресу 192.168.1.124 . К такому же результату приведет правило, в котором не будет указан IP источника, но будет указан MAC адрес этого устройства.

— Правила для LAN

Правила, созданные для интерфейса LAN, подразумевают, что в качестве источника выступает устройство, находящееся в локальной сети (т.е, инспектируемый трафик пришел на LAN интерфейс). Т.о, в качестве src (исходящего) IP будут выступать локальные IP адреса устройств , а src (исх) портами будут являться порты, с которых улетает пакет в сторону интерфейса LAN с локальных устройств.

Если необходимо ограничить доступ к определенным web-ресурсам пользователю или группе пользователей, то в IP источника (src) необходимо указать IP адрес пользователя, либо, если речь о группе, — маску, которая будет в себе содержать диапазон адресов пользователей, которых мы ограничиваем. В IP назначения (dst) необходимо будет указать адреса запрещаемого ресурса, также можно указать порты, соответствующие сервисам, которые стоит цель ограничить (например, стандартные 80, 8080 – http и 443 — https) — в случае, если заблокировать необходимо лишь часть сервисов, но не адрес целиком.
Важно: необходимо помнить, что одному доменному имени может соответствовать несколько IP адресов, а также — ограничиваемый сервис может быть доступен через не стандартные порты. Для определения IP адресов, соответствующих доменному имени, можно воспользоваться утилитой nslookup:

nslookup

Вывод nslookup

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

Если же стоит задача ограничить свободу пользователя до определенного набора разрешеных ресурсов и сервисов, то необходимо выбрать значение «Блокированы» для параметра «пакеты, которые не подходят ни под одно правило, будут:» (т.е, политика по умолчанию – запрещающая). В IP и портах назначения (dst) указываются данные (адреса/подсети и порты) тех ресурсов, которые должны быть доступны. Что касается IP адресов источников (src), то их можно не указывать вообще (тогда правило распространится на всех пользователей, работающих в локальной сети маршрутизатора), либо указать конкретный IP адрес, на который действует разрешающее правило (в этом случае, на всех, для кого не создано такое правило, по умолчанию будет действовать запрещающая политика на любую активность). Либо же — указать подсеть, если правило создается для группы пользователей (по аналогии с указанием одного адреса, на всех, кто не попал в подсеть, будет действовать общая запрещающая политика).

Важно: если необходимо создать идентичные правила для нескольких IP адресов, то можно ограничиться одним правилом, если все адреса находятся в одной подсети. Например, указанный адрес 192.168.1.1 и маска 255.255.255.240 будут означать, что правило распространяется на адреса из диапазона 192.168.1.1-192.168.1.14. Если же невозможно объединить адреса, для которых распространяется правило, в подсеть, необходимо создавать несколько дублирующих правил для каждого IP-адреса.

— Правила для WAN / VPN

Правила, созданные для WAN или VPN интерфейса, регулируют политику относительно входящего трафика в сторону маршрутизатора из внешней сети.

Например, создавая запрещающее правило для интерфейса WAN, в котором выбран протокол TCP, указан исходящий адрес 217.118.91.73 и порт 433, мы подразумеваем, что все соединения в сторону маршрутизатора, устанавливаемые со стороны 217.118.91.73:433, будут отброшены (в том случае, если мы точно знаем, с какого порта будет устанавливаться соединение).

Аналогично, если необходимо запретить входящие соединения на конкретный адрес / к конкретной службе в локальной сети, правило будет содержать адрес и порт назначения, которые нам необходимо «закрыть» снаружи.

Пример:

фильтрация трафика / фаервол / firewall / traffic filtering

Запрещающее правило фильтрации транзитного трафика

Данное правило будет означать, что вне зависимости от исходящего адреса в глобальной сети, соединения, назначением которых является 80 порт устройства, проживающего по адресу 192.168.1.124, будут отброшены. В предыдущей статье мы настраивали проброс портов с WAN / 8888 на 192.168.1.124:80, таким образом отбрасываться будут соединения , устанавливаемые на 8888 порт глобального адреса маршрутизатора.

Важно: если добавленные правила противоречат друг другу , то применено будет первое, под которое попадет трафик. Порядок прохождения правил при фильтрации соответствует порядку следования этих правил в web интерфейсе.
Пример: мы хотим ограничить доступ к web интерфейсу устройства с адресом в локальной сети 192.168.1.124 (пример выше) для всех внешних соединений, кроме одного доверенного IP адреса источника. В этом случае, мы создаем два правила:

фильтрация трафика / фаервол / firewall / traffic filtering

Создание двух противоречащих друг другу правил Firewall

первое из них разрешает доступ к web интерфейсу 192.168.1.124 с внешнего IP адреса 217.118.91.73, второе — запрещает все без исключения соединения извне. Таким образом, если мы с адреса 217.118.91.73 обратимся на http://my_ip:8888предыдущей статье мы настроили проброс портов следующим образом: при обращении по адресу http://Ваш_IP_адрес:8888 либо http://Ваш_Домен:8888 весь TCP трафик будет перенаправляться на устройство, имеющее IP адрес 192.168.1.124 в Вашей локальной сети, а именно — на 80 порт), то на соединение распространится первое в списке правило (разрешающее) , и соединение будет установлено. Если же поменять правила местами, т.е , первым в списке сделать правило, запрещающее все соединения к 80 порту 192.168.1.124, то соединение с 217.118.91.73 будет отклонено , попросту не дойдя до разрешающего правила, под которое попадает.

2. Подключение к локальным сервисам

Для лимитирования доступа к локальным сервисам самого маршрутизатора (не транзитного трафика!) выделен блок настроек «Подключение к локальным сервисам». По умолчанию сервис выключен. Для включения необходимо перейти в Сетевой экран → Сетевой экран → Подключение к локальным сервисам → Разрешить подключение → Включить.

фильтрация трафика / фаервол / firewall / traffic filtering

Включение фильтрации трафика, обращенного к локальным сервисам маршрутизатора

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

По аналогии с правилами для транзитного трафика необходимо указать данные:

  1. Интерфейс, со стороны которого устанавливается соединение, которое необходимо разрешить. WAN, VPN или LAN.
  2. Протокол, на который будет распространяться правило. По умолчанию значение None, т.е любой трафик без уточнения. Но возможен выбор : TCP, UDP или ICMP.
  3. MAC адрес источника соединения.
  4. IP адрес, с которого устанавливается соединение.
  5. Подсеть, с которой устанавливается соединение.
  6. Порт, с которого производится соединение (src / ист). Для ICMP протокола это поле недоступно.
  7. Порт, на который устанавливается соединение (dst / назн). Для ICMP протокола это поле недоступно.
  8. Комментарий в свободнонй форме.
  9. Действие, а именно — что вы хотите сделать с правилом: добавить (новое) либо удалить (уже существующее).
фильтрация трафика / фаервол / firewall / traffic filtering

Настройка правил подключения к локальным сервисам

Пример:
На маршрутизаторе запущен UDP Proxy (udpxy) на 81 порту. С целью обеспечения безопасности, соединение разрешено только со стороны LAN.

udpxy / udp http proxy

Включение UDPXY на роутере

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

udpxy / udp http proxy / filtering / firewall

Правило, регулирующее доступ к локальному сервису маршрутизатора udpxy

Созданное правило означает, что соединения, устанавливаемые с WAN с IP адреса 217.118.91.120 на 81 порт маршрутизатора не будут отклоняться, несмотря на то, что в общем случае, политика доступа к udpxy на 81 порт доступны только для LAN интерфейса. Т.е, клиент находящийся на указанном IP-адресе сможет в порядке исключения пользоваться сервисом.

Важно: данный блок в частности призван управлять разрешениями доступа для сервисов, установленных из Entware, т.к по умолчанию все они имеют политику drop без каких-либо разрешающих правил и исключений. Следовательно, для сервисов из entware всегда необходимо создавать правила доступа, в противном случае доступ по умолчанию будет закрыт.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.