Фильтрация портов что это в роутере

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.

Секреты маршрутизаторов для небольших сетей

Конструкция маршрутизатора

Брандмауэр (firewall)

   Пакетные фильтры

   Шлюзы сеансового уровня

   Шлюзы прикладного уровня

   SPI-брандмауэры

Протокол NAT

Перенаправление портов (Port mapping)

DMZ-зона

Методы аутентификации

DHCP-сервер

Виртуальные сети VPN

   PPTP

   L2TP

   IPsec

   Режимы функционирования VPN

Заключение

Средств
для защиты от разного рода атак извне (то есть из Интернета) на локальную сеть
разработано очень много, но все они имеют один серьезный недостаток: чтобы реализовать
такого рода защиту, необходимо выделить ПК, на котором будет установлено и настроено
специализированное ПО. Если речь идет о достаточно крупной сети, насчитывающей
не менее сотни ПК, то такое решение вполне оправданно, в случае же небольших
сетей класса SOHO выделять компьютер для организации защиты сети весьма накладно.
Кроме того, необходимо помнить, что профессиональные пакеты, реализующие защиту
сети, стоят довольно дорого, поэтому для сегмента SOHO, возможно, имеет смысл
обратиться к альтернативным решениям. Речь идет о маршрутизаторах класса SOHO,
которые называют также Интернет-серверами и Интернет-маршрутизаторами. В настоящее
время на рынке представлено огромное количество подобных маршрутизаторов, отличающихся
друг от друга функциональными возможностями и ценой. Для того чтобы сделать
правильный выбор, нужно четко представлять себе возможности и функции современных
маршрутизаторов.

Конструкция маршрутизатора

Поскольку
маршрутизаторы являются пограничными сетевыми устройствами, то есть устанавливаются
на границе между двумя сетями или между локальной сетью и Интернетом, выполняя
роль сетевого шлюза, то они должны иметь как минимум два порта (см. рисунок).
К одному из этих портов подключается локальная сеть, и этот порт называется
внутренним LAN-портом. Ко второму порту подключается внешняя сеть (Интернет),
и этот порт называется внешним WAN-портом. Как правило, маршрутизаторы класса
SOHO имеют один WAN-порт и несколько (от одного до четырех) внутренних LAN-портов,
которые объединяются в коммутатор. В большинстве случаев WAN-порт коммутатора
имеет интерфейс 10/100Base-TX, и к нему может подключаться xDSL-модем с соответствующим
интерфейсом либо сетевой Ethernet-кабель.

В некоторых моделях маршрутизаторов, кроме WAN-порта, есть последовательный
порт для подключения аналогового модема. Как правило, этот порт предназначен
для создания резервного низкоскоростного соединения по коммутируемой линии с
провайдером.

Учитывая широкое распространение беспроводных сетей, создан целый класс так
называемых беспроводных маршрутизаторов. Эти устройства, кроме классического
маршрутизатора с WAN- и LAN-портами, содержат интегрированную точку беспроводного
доступа, поддерживающую протокол IEEE 802.11a/b/g. Беспроводной сегмент сети,
которую позволяет организовать точка доступа, относится к внутренней сети с
точки зрения маршрутизатора, и в этом смысле компьютеры, подключаемые к маршрутизатору
беспроводным образом, ничем не отличаются от компьютеров сети, подключенных
к LAN-порту.

Типичная схема использования маршрутизатора класса SOHO

Типичная схема использования маршрутизатора класса SOHO

Любой маршрутизатор, как устройство сетевого уровня, имеет свой IP-адрес. Кроме
того, IP-адрес есть и у его WAN-порта. К примеру, маршрутизатор может иметь
следующий IP-адрес:

• IP-адрес: 192.168.1.254;

• маска подсети: 255.255.255.0.

При этом у его WAN-порта может быть такой адрес:

• IP-адрес: 10.0.0.254;

• маска подсети: 255.255.255.0.

Компьютеры, подключаемые к LAN-портам маршрутизатора, должны иметь IP-адрес
той же подсети, что и сам маршрутизатор. Кроме того, в сетевых настройках этих
ПК необходимо задать адрес шлюза по умолчанию, совпадающий с IP-адресом маршрутизатора.
К примеру, в рассмотренном выше случае сетевые настройки ПК, подключаемого к
LAN-порту, могут быть следующими:

• IP-адрес: 192.168.1.10;

• маска подсети: 255.255.255.0;

• шлюз по умолчанию: 192.168.1.254.

Устройство, подключаемое к WAN-порту со стороны внешней сети, должно иметь IP-адрес
из той же подсети, что и WAN-порт маршрутизатора. В нашем случае это могут следующие
сетевые настройки:

• IP-адрес: 10.0.0.10;

• маска подсети: 255.255.255.0.

В рассмотренном выше примере использовался так называемый статический способ
задания IP-адреса (Static IP), который поддерживают все маршрутизаторы. Его
следует применять для ознакомления с возможностями работы маршрутизатора или
для его тестирования. Однако в реальных условиях чаще используется динамический
(Dynamic IP) способ задания IP-адреса, когда маршрутизатор выступает в роли
DHCP-клиента, автоматически получая IP-адрес, адрес шлюза по умолчанию и сервера
DNS от провайдера (DHCP-сервера). Этот способ обеспечивает провайдеру достаточную
гибкость при конфигурировании своей сети и поддерживается всеми провайдерами.

Брандмауэр (firewall)

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

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

Брандмауэры способны осуществлять фильтрацию сетевых пакетов, основываясь на
адресах отправителя и получателя и номерах портов, — данная функция называется
адресной фильтрацией. Кроме того, брандмауэры могут фильтровать специфические
типы сетевого трафика, например HTTP, ftp или telnet, а также способны фильтровать
трафик, основываясь на анализе атрибутов сетевых пакетов.

Существуют две методологии функционирования брандмауэров: согласно первой брандмауэр
пропускает через себя весь трафик, за исключением того, который отвечает определенным
критериям; вторая заключается в том, что брандмауэр, наоборот, блокирует весь
трафик, кроме соответствующего определенным критериям.

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

Напомним, что модель OSI (Open System Interconnection) включает семь уровней
сетевой архитектуры. Первый, самый нижний уровень — физический. За ним следуют
канальный, сетевой, транспортный, сеансовый уровни, уровень представления и
прикладной уровень, или уровень приложений.

Для того чтобы обеспечивать фильтрацию трафика, брандмауэр должен работать как
минимум на третьем уровне модели OSI, то есть на сетевом уровне. На этом уровне
происходит маршрутизация пакетов на основе преобразования MAC-адресов в сетевые
адреса. С точки зрения протокола TCP/IP этот уровень соответствует уровню IP
(Internet Protocol). Получая информацию сетевого уровня, брандмауэры способны
определить адрес источника и получателя пакета и проверить, допустима ли передача
трафика между данными адресатами. Однако информации сетевого уровня недостаточно
для анализа содержимого пакета. Брандмауэры, функционирующие на транспортном
уровне модели OSI, получают больше информации о пакетах и являются более интеллектуальными
схемами защиты сетей. Если брандмауэры работают на уровне приложений, им доступна
полная информация о сетевых пакетах, поэтому такие брандмауэры обеспечивают
наиболее надежную сетевую защиту.

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

Все брандмауэры можно условно разделить на четыре категории в соответствии с
теми уровнями модели OSI, на которых они работают:

• пакетный фильтр (packet filter);

• шлюз сеансового уровня (circuit-level gateway);

• шлюз прикладного уровня (application-level gateway);

• Stateful Packet Inspection.

Пакетные фильтры

Брандмауэры типа пакетных фильтров являются самыми простыми наименее интеллектуальными.
Они работают на сетевом уровне модели OSI или на IP-уровне стека протоколов
TCP/IP. Такие брандмауэры в обязательном порядке присутствуют в любом маршрутизаторе,
поскольку все маршрутизаторы могут работать как минимум на третьем уровне модели
OSI.

В пакетных фильтрах каждый пакет, прежде чем быть переданным, анализируется
на предмет соответствия критериям передачи или блокировки передачи. В зависимости
от пакета и сформированных критериев передачи брандмауэр может передать пакет,
отвергнуть его или послать уведомление инициатору передачи. Критерии, или правила,
передачи пакетов могут формироваться на основе IP-адресов источника и получателя,
номеров портов источника и получателя и используемых протоколов.

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

Шлюзы сеансового уровня

Шлюзы сеансового уровня — это брандмауэры, работающие на сеансовом уровне модели
OSI или на уровне TCP (Transport Control Protocol) стека протоколов TCP/IP.
Они отслеживают процесс установления TCP-соединения (организацию сеансов обмена
данными между узлами сети) и позволяют определить, является ли данный сеанс
связи легитимным. Данные, передаваемые удаленному компьютеру во внешней сети
через шлюз на сеансовом уровне, не содержат информации об источнике передачи,
то есть все выглядит таким образом, как будто данные отправляются самим брандмауэром,
а не компьютером во внутренней (защищаемой) сети. Все брандмауэры на основе
NAT-протокола являются шлюзами сеансового уровня (протокол NAT будет описан
далее).

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

Шлюзы прикладного уровня

Шлюзы прикладного уровня, которые также называются proxy-серверами, функционируют
на прикладном уровне модели OSI, отвечающем за доступ приложений в сеть. На
этом уровне решаются такие задачи, как перенос файлов, обмен почтовыми сообщениями
и управление сетью. Получая информацию о пакетах на прикладном уровне, такие
шлюзы могут реализовывать блокировку доступа к определенным сервисам. Например,
если шлюз прикладного уровня сконфигурирован как Web-proxy, то любой трафик,
относящийся к протоколам telnet, ftp, gopher, будет заблокирован. Поскольку
данные брандмауэры анализируют пакеты на прикладном уровне, они способны осуществлять
фильтрацию специфических команд, например http:post, get и т.д. Эта функция
недоступна ни пакетным фильтрам, ни шлюзам сеансового уровня. Шлюзы прикладного
уровня могут также использоваться для регистрации активности отдельных пользователей
и для установления ими сеансов связи. Эти брандмауэры предлагают более надежный
способ защиты сетей по сравнению со шлюзами сеансового уровня и пакетными фильтрами,
однако в значительно большей степени оказывают влияние на уменьшение скорости
маршрутизации.

SPI-брандмауэры

Брандмауэы типа Stateful Packet Inspection (SPI) объединяют в себе преимущества
пакетных фильтров, шлюзов сеансового уровня и шлюзов прикладного уровня. Фактически
это многоуровневые брандмауэры, которые работают одновременно на сетевом, сеансовом
и прикладном уровнях.

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

SPI-брандмауэры обеспечивают наиболее надежную защиту сетей и применяются во
многих современных маршрутизаторах.

Протокол NAT

Б
ольшинство
современных маршрутизаторов поддерживают протокол NAT (Network Address Translation),
базирующийся на сеансовом уровне и по сути представляющий собой протокол трансляции
сетевых адресов. NAT позволяет реализовать множественный доступ компьютеров
локальной (частной) сети (каждый из которых имеет собственный внутренний IP-адрес)
в Интернет, используя всего один внешний IP-адрес WAN-порта маршрутизатора.
При этом все компьютеры во внутренней локальной сети становятся невидимыми извне,
но для каждого из них внешняя сеть является доступной. Протокол NAT пропускает
в сеть только те данные из Интернета, которые поступили в результате запроса
от компьютера из локальной сети.

Протокол NAT решает две главные задачи:

• помогает справиться с дефицитом IP-адресов, который становится все более острым
по мере роста количества компьютеров;

• обеспечивает безопасность внутренней сети — компьютеры локальной сети, защищенные
маршрутизатором с активированным NAT-протоколом (устройством NAT), становятся
недоступными из внешней сети.

Хотя протокол NAT не заменяет брандмауэр, он все же является важным элементом
безопасности.

Принцип работы протокола NAT достаточно прост. Когда клиент внутренней сети
устанавливает связь с сервером внешней сети, открывается сокет, определяемый
IP-адресом источника, портом источника, IP-адресом назначения, портом назначения
и сетевым протоколом. Когда приложение передает данные через этот сокет, то
IP-адрес источника и порт источника вставляются в пакет в поля параметров источника.
Поля параметров пункта назначения будут содержать IP-адрес сервера и портсервера.

Устройство NAT (маршрутизатор) перехватывает исходящий из внутренней сети пакет
и заносит в свою внутреннюю таблицу сопоставления портов источника и получателя
пакета, используя IP-адрес назначения, порт назначения, внешний IP-адрес устройства
NAT, внешний порт, сетевой протокол, а также внутренние IP-адрес и порт клиента.
Затем устройство NAT транслирует пакет, преобразуя в пакете поля источника:
внутренние IP-адрес и порт клиента заменяются внешними IP-адресом и портом устройства
NAT.

Преобразованный пакет пересылается по внешней сети и в итоге попадает на заданный
сервер. Получив пакет, сервер будет направлять ответные пакеты на внешний IP-адрес
и порт устройства NAT (маршрутизатора), указывая в полях источника свои собственные
IP-адрес и порт.

Устройство NAT принимает эти пакеты от сервера и анализирует их содержимое на
основе своей таблицы сопоставления портов. Если в таблице будет найдено сопоставление
порта, для которого IP-адрес источника, порт источника, порт назначения и сетевой
протокол из входящего пакета совпадают с IP-адресом удаленного узла, удаленным
портом и сетевым протоколом, указанным в сопоставлении портов, то NAT выполнит
обратное преобразование: заменит внешний IP-адрес и внешний порт в полях назначения
пакета на IP-адрес и внутренний порт клиента внутренней сети. Однако если в
таблице сопоставления портов не находится соответствия, то входящий пакет отвергается
и соединение разрывается.

В некоторых маршрутизаторах возможно отключение NAT-протокола. Однако имеются
модели, где NAT-протокол активирован и отключить его невозможно. При этом важно,
чтобы маршрутизатор мог частично обойти ограничения NAT-протокола. Дело в том,
что не все сетевые приложения пользуются протоколами, способными взаимодействовать
с NAT. Поэтому все маршрутизаторы имеют функции, позволяющие наложить ограничения
на использование протокола NAT. Сервер, устанавливаемый во внутренней сети и
являющийся прозрачным для протокола NAT, называют виртуальным сервером (Virtual
Server). Прозрачным для протокола NAT может быть не весь сервер, а лишь определенные
приложения, запускаемые на нем. Для того чтобы реализовать виртуальный сервер
во внутренней сети, на маршрутизаторе используется технология перенаправления
портов.

Перенаправление портов (Port mapping)

Для
того чтобы сделать доступными из внешней сети определенные приложения, запускаемые
на сервере во внутренней сети (например, Web-сервер или ftp-сервер), в маршрутизаторе
необходимо задать соответствие между портами, используемыми определенными приложениями,
и IP-адресами тех виртуальных серверов внутренней сети, на которых эти приложения
работают. В этом случае говорят о перенаправлении портов (Port mapping). В результате
любой запрос из внешней сети на IP-адрес WAN-порта маршрутизатора (но не виртуального
сервера) по указанному порту будет автоматически перенаправлен на указанный
виртуальный сервер.

Существует несколько способов конфигурирования виртуального сервера. В простейшем
случае задается статическое перенаправление портов, то есть IP-адрес виртуального
сервера, разрешенный порт приложения на этом виртуальном сервере (Private Port)
и порт запроса (Public Port). Если, к примеру, открыт доступ к Web-серверу (порт
80), расположенному во внутренней сети с IP-адресом 192.168.1.10, то при обращении
из внешней сети по адресу 10.0.0.254 (адрес WAN-порта) по 80-му порту этот пакет
будет перенаправлен маршрутизатором на Web-сервер. Если же происходит обращение
по тому же адресу, но по 21-му порту, то такой пакет будет отвергнут маршрутизатором.

Маршрутизаторы позволяют создавать несколько статических перенаправлений портов.
Так, на одном виртуальном сервере можно открыть сразу несколько портов или создать
несколько виртуальных серверов с различными IP-адресами. Однако при статическом
перенаправлении портов нельзя перенаправлять один порт на несколько IP-адресов,
то есть порт может соответствовать только одному IP-адресу. Таким образом, невозможно,
например, сконфигурировать несколько Web-серверов с разными IP-адресами — для
этого придется менять порт Web-сервера по умолчанию и при обращении по 80-му
порту в настройке маршрутизатора в качестве Private Port указывать измененный
порт Web-сервера.

Большинство моделей маршрутизаторов позволяют также задавать статическое перенаправление
группы портов, то есть ставить в соответствие IP-адресу виртуального сервера
сразу группу портов. Такая возможность полезна в том случае, если необходимо
обеспечить работу приложений, использующих большое количество портов, например
игр или аудио/видеоконференций. Количество перенаправляемых групп портов в разных
моделях маршрутизаторов различно, но, как правило, их не менее десяти.

Статическое перенаправление портов позволяет лишь отчасти решить проблему доступа
из внешней сети к сервисам локальной сети, защищаемой NAT-устройством. Однако
существует и обратная задача — обеспечить пользователям локальной сети доступ
во внешнюю сеть через NAT-устройство. Дело в том, что некоторые приложения (например,
Интернет-игры, видеоконференции, Интернет-телефония и другие, требующие одновременного
установления множества сессий) не совместимы с NAT-технологией. Для того чтобы
решить эту проблему, используется так называемое динамическое перенаправление
портов, которое задается на уровне отдельных сетевых приложений.

В случае если маршрутизатор поддерживает данную функцию, необходимо задать номер
внутреннего порта (или интервал портов), связанный с конкретным приложением
(как правило, его обозначают Trigger Port), и номер внешнего порта (Public Port),
который будет сопоставляться с внутренним портом.

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

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

DMZ-зона

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

Если, к примеру, сервер с IP-адресом 192.168.1.10, находящийся во внутренней
локальной сети, размещен в DMZ-зоне, а сама локальная сеть защищена NAT-устройством,
то поступивший из внешней сети по адресу WAN-порта маршрутизатора запрос будет
переадресован по любому порту на IP-адрес 192.168.1.10, то есть на адрес виртуального
сервера в DMZ-зоне.

Методы аутентификации

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

• использование пароля и имени пользователя;

• применение MAC-адреса;

• использование протокола PPPoE.

Использование пароля и имени пользователя типично для коммутируемых соединений,
когда маршрутизатор имеет дополнительный последовательный порт для подключения
аналогового модема. В этом случае, как и при традиционной настройке удаленного
соединения с применением аналогового модема, в маршрутизаторе при конфигурации
последовательного порта указываются номер телефона провайдера, имя пользователя
и пароль.

Использование аутентификации по MAC-адресу встречается довольно редко и подразумевает
привязку соединения к MAC-адресу маршрутизатора. Смысл данной технологии достаточно
прост: каждое сетевое устройство имеет свой уникальный MAC-адрес длиной 6 байт,
или 12 шестнадцатеричных цифр. Подлинность пользователя проверяется провайдером
с использованием запроса MAC-адреса маршрутизатора.

Аутентификация по MAC-адресу имеет один подводный камень: при подключении модема
к новому маршрутизатору или к компьютеру соединение перестает работать. Для
того чтобы этого не происходило, многие модели маршрутизаторов позволяют задавать
внешний MAC-адрес.

Использование протокола PPPoE (Point-to-Point Protocol over Ethernet) для аутентификации
пользователей поддерживается практически всеми моделями современных маршрутизаторов.
Этот протокол является расширением протокола PPP, который был специально разработан
для применения протокола TCP/IP в последовательных соединениях, к которым относятся
коммутируемые соединения. Фактически, данный протокол предлагает механизм инкапсуляции
TCP-пакетов для их передачи по последовательным соединениям. К примеру, протокол
PPP используется для организации коммутируемого доступа в Интернет.

PPPoE (как и PPP) не является протоколом аутентификации в чистом виде, однако
механизм аутентификации можно рассматривать в качестве составной части этого
протокола. При аутентификации по протоколу PPPoE требуется указать имя и пароль.

DHCP-сервер

Любой
современный маршрутизатор не только может быть DHCP-клиентом, но и может иметь
встроенный DHCP-сервер, что позволяет автоматически присваивать IP-адреса всем
клиентам внутренней сети. В настройках DHCP-сервера, как правило, указываются
начало и конец диапазона выделяемых IP-адресов. Кроме того, иногда в заданном
диапазоне можно указать IP-адреса, которые не будут динамически присваиваться
клиентам.

Виртуальные сети VPN

Б
ольшинство
маршрутизаторов в той или иной степени поддерживают возможность создания виртуальных
частных сетей (Virtual Private Networking, VPN), что позволяет организовывать
защищенное соединение с локальной (внутренней) сетью извне.

Для создания VPN-сетей, как правило, используются три протокола: сквозной туннельный
протокол (Point-to-Point Tunneling Protocol, PPTP), протокол IPsec и туннельный
протокол второго уровня (Layer 2 Tunneling Protocol, L2TP).

PPTP

Сквозной туннельный протокол, созданный корпорацией Microsoft, никак не меняет
протокол PPP, но предоставляет для него новое транспортное средство.

PPTP определяет протокол управления вызовами, который позволяет серверу управлять
удаленным коммутируемым доступом через телефонные сети общего пользования (PSTN)
или цифровые каналы (ISDN) либо инициализировать исходящие коммутируемые соединения.
PPTP использует механизм общей маршрутной инкапсуляции (GRE) для передачи пакетов
PPP, обеспечивая при этом контроль потоков и сетевых заторов. Безопасность данных
в PPTP может обеспечиваться при помощи протокола IPsec.

L2TP

Туннельный протокол второго уровня — это своего рода объединение протокола PPTP
и протокола эстафетной передачи на втором уровне (Layer 2 Forwarding, L2F),
разработанного компанией Cisco. Протокол L2F обеспечивает туннелирование протоколов
канального уровня с использованием протоколов более высокого уровня, например
IP.

Протоколы L2F и PPTP имеют сходную функциональность, поэтому компании Cisco
и Microsoft решили совместно разработать единый стандартный протокол, который
и получил название туннельного протокола второго уровня.

IPsec

IPsec — это протокол защиты сетевого трафика путем использования алгоритмов
шифрования на IP-уровне. Данный протокол предусматривает два режима функционирования:
транспортный и туннельный. В транспортном режиме протокол IPsec применяется
к содержимому IP-пакетов, при этом их исходные заголовки остаются видимыми.
Туннельный режим инкапсулирует исходные IP-пакеты в IPsec-пакеты с новыми заголовками
IP и позволяет эффективно скрывать исходные IP-пакеты.

Режимы функционирования VPN

Существует два режима функционирования VPN: сквозной (Pass Through) и активный.
В первом случае маршрутизатор без вмешательства передает входящий и исходящий
VPN-трафики, пропуская через себя инкапсулированные пакеты данных без просмотра
их содержимого. Если маршрутизатор поддерживает режим VPN Pass Through, то необходимо
только настроить соединение на VPN-клиентах (компьютеры во внутренней сети)
таким образом, чтобы клиенты из внутренней сети могли свободно подключаться
к серверу VPN снаружи. Однако при совместном использовании NAT- и VPN-туннелей
могут возникать проблемы.

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

Заключение

В
данной статье мы рассмотрели только самые распространенные функции современных
маршрутизаторов класса SOHO. Многие модели маршрутизаторов поддерживают и другие
функции, которые, несмотря на различные названия, имеют одни и те же назначения.
К примеру, это могут быть возможность блокирования определенных URL, запрет
отклика на сканирование командой Рing, перевод маршрутизатора в режим Stealth,
при котором он становится невидимым из внешней сети, и многое другое.

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

КомпьютерПресс 10’2004

Как закрыть порты на роутере

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

  1. Зачем закрывать порты на роутере
  2. Как закрыть порты на роутере
  3. Как блокировать порты на ПК
  4. Как узнать закрыты порты или нет
  5. Полезные советы и выводы

Зачем закрывать порты на роутере

Открытый порт на роутере — это возможность для злоумышленников атаковать устройство и получить доступ к важной информации. Поэтому блокировка портов — это очень важный аспект защиты сети.

Как закрыть порты на роутере

Существует несколько методов закрытия портов на роутере, но самым распространенным является использование фильтрации по IP-адресам.

  1. Перейдите в раздел «IP Address Filtering» в левой части страницы настройки роутера.
  2. Нажмите «Add New», чтобы создать новое правило для фильтрации.
  3. Введите IP-адрес устройства, порт сервиса, который вам нужно ограничить.
  4. Выберите «Deny» в выпадающем меню «Action» (Действие).

Как блокировать порты на ПК

Существует несколько способов блокировки портов на ПК, но один из наиболее эффективных — это блокировка процессов на портах.

  1. Используйте команду «netstat -ao», чтобы узнать PID процессов, использующих порты на вашем компьютере.
  2. Найдите процесс, который нужно заблокировать, используя команду «netstat -ao | findstr :[номер порта]».
  3. Используйте «taskkill -PID [номер PID]» или «taskkill -PID [номер PID] -F», чтобы выключить процесс.

Как узнать закрыты порты или нет

Существует несколько способов проверить, закрыты ли порты на вашем устройстве, но самым простым способом является использование стороннего веб-сайта.

  1. Зайдите на yougetsignal.com.
  2. Введите IP-адрес и имя хоста в поле «Удаленный адрес» и номер порта в поле «Номер порта».
  3. Нажмите «Проверить», чтобы узнать, есть ли открытые порты на вашем устройстве.
  4. Если порт закрыт, вы увидите сообщение «Порт [номер] закрыт».

Полезные советы и выводы

Закрытие портов на роутере и блокировка процессов на портах ПК — это две основные меры безопасности, которые помогут защитить вас от потенциальных угроз.

Помните, что регулярное обновление антивирусного ПО и паролей на роутере также являются важными шагами для обеспечения безопасности в сети Интернет. Вместе они помогут защитить вас от вредоносного ПО и неприятных сюрпризов.

Как соединить три роутера в одну сеть

Если нужно объединить три роутера в одну сеть, то можно использовать один из двух способов. Первый — соединение маршрутизаторов по сетевому кабелю. Для этого нужно прокладывать кабель от одного роутера к другому. Второй способ — использование беспроводного соединения Wi-Fi в режиме WDS, клиента или репитера. В первом случае соединение происходит посредством моста, в котором один роутер беспроводной адаптер устанавливает связь с другим роутером, который соединяет сеть с проводной локальной сетью. В режиме клиента один из роутеров подключается к основной точке доступа, а остальные роутеры возможно использовать в качестве усилителей сигнала. В режиме репитера роутеры взаимодействуют по протоколу WDS и создают одну общую беспроводную сеть.

Как восстановить запись с камеры наблюдения

Для восстановления удаленной записи с камеры наблюдения есть несколько способов. Один из таких способов — найти и открыть папку резервного копирования видео, затем найти удаленное видео на вашем жестком диске или SD-карте в точности и сохранить его на другом диске или SD-карте. Этот метод позволяет восстановить запись без использования сторонних программ. Однако, если резервного копирования не было настроено заранее или оно было повреждено, то необходимо воспользоваться другими методами восстановления данных. В любом случае, важно сразу же останавливать запись на камере, чтобы не перезаписать часть удаленного видео и повредить его окончательно.

Как узнать поддерживает ли телефон DLNA

Для того чтобы узнать, поддерживает ли ваш смартфон технологию DLNA, нужно выполнить некоторые проверки. Одна из них — поиск зеленой наклейки «DLNA Certified» на самом устройстве. Если на вашем телефоне есть эта наклейка, то он поддерживает эту технологию. Также можно проверить наличие соответствующей опции в шторке «Панели уведомлений». Если там есть кнопка «SmartView», значит, ваш смартфон полностью совместим с DLNA. Это позволит вам передавать мультимедийные данные на другие поддерживающие устройства, например, телевизор или компьютер. При этом все устройства должны быть подключены к одной точке доступа по Wi-Fi. Таким образом, вы можете легко определить, поддерживает ли ваш телефон DLNA, и наслаждаться просмотром фильмов и музыки на большом экране.

Как усилить сигнал сотовой связи с помощью роутера

Для тех, у кого на даче не устраивает скорость интернета по телефону, существует возможность усилить сигнал сотовой связи с помощью роутера. Установка внешней антенны и ее подключение к модему или роутеру позволят увеличить скорость интернета в несколько раз. Более того, роутер автоматически подключается к более качественному сигналу, что улучшит качество связи. Наиболее эффективны пассивные усилители, которые не требуют специальной настройки и установки дополнительных программ. Для установки антенны необходимо ее правильно направить в сторону вышки оператора и прикрепить ее на улице. В целом, использование внешней антенны — это простой и доступный способ улучшить качество сотовой связи на даче и получить более стабильный и быстрый интернет.

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

Зачем открывать доступ извне?

Доступ «снаружи» нужен не только в экзотических случаях вроде открытия игрового сервера или запуска сайта на домашнем компьютере. Гораздо чаще приходится «открывать порт» для многопользовательской игры, а это — как раз предоставление внешнему пользователю (серверу игры) доступа к внутренней сети (порт компьютера). Если необходимо удаленно подключиться и настроить компьютер или роутер, скачать файл-другой из домашней сети, находясь в командировке, или посмотреть видео с подключенных к домашней сети IP-камер — нужно настроить доступ.

Цвета и формы IP-адресов

Прежде чем разбираться, как открыть доступ к своим ресурсам, следует понять, как вообще происходит соединение в сети Интернет. В качестве простой аналогии можно сравнить IP-адрес с почтовым адресом. Вы можете послать письмо на определенный адрес, задать в нем какой-то вопрос и вам придет ответ на обратный адрес. Так работает браузер, так вы посещаете те или иные сайты.

Но люди общаются словами, а компьютеры привыкли к цифрам. Поэтому любой запрос к сайту сначала обрабатывается DNS-сервером, который выдает настоящий IP-адрес.

Допустим теперь, что кто-то хочет написать письмо вам. Причем не в ответ, а самостоятельно. Не проблема, если у вас статический белый адрес — при подключении сегодня, завтра, через месяц и год он не поменяется. Кто угодно, откуда угодно, зная этот адрес, может написать вам письмо и получите его именно вы. Это как почтовый адрес родового поместья или фамильного дома, откуда вы не уедете. Получить такой адрес у провайдера можно только за отдельную и регулярную плату. Но и с удаленным доступом проблем меньше — достаточно запомнить выданный IP.

Обычно провайдер выдает белый динамический адрес — какой-нибудь из незанятых. Это похоже на ежедневный заезд в гостиницу, когда номер вам выдается случайно. Здесь с письмом будут проблемы: получить его можете вы или другой постоялец — гарантий нет. В таком случае выручит DDNS — динамический DNS.

Самый печальный, но весьма распространенный в последнее время вариант — серый динамический адрес: вы живете в общежитии и делите один-единственный почтовый адрес с еще сотней (а то и тысячей) жильцов. Сами вы письма писать еще можете, и до адресата они дойдут. А вот письмо, написанное на ваш почтовый адрес, попадет коменданту общежития (провайдеру), и, скорее всего, не пойдет дальше мусорной корзины.

Сам по себе «серый» адрес проблемой не является — в конце концов, у всех подключенных к вашему роутеру устройств адрес именно что «серый» — и это не мешает им пользоваться Интернетом. Проблема в том, что когда вам нужно чуть больше, чем просто доступ к Интернету, то настройки своего роутера вы поменять можете, а вот настройки роутера провайдера — нет. В случае с серым динамическим адресом спасет только VPN.

Кто я, где я, какого я цвета?

С терминологией разобрались, осталось понять, какой именно адрес у вас. У большинства провайдеров фиксированный адрес стоит денег, так что если у вас не подключена услуга «статический IP-адрес», то он наверняка динамический. А вот белый он или серый гусь — это нужно проверить. Для начала надо узнать внешний IP-адрес роутера в его веб-интерфейсе и сравнить с тем адресом, под которым вас «видят» в Интернете.

В админ-панели роутера свой IP можно найти на вкладках «Информация о системе», «Статистика», «Карта сети», «Состояние» и т. п. Где-то там нужно искать WAN IP.

Если адрес начинается с «10.», или с «192.168.», то он определенно «серый» — большинство способов открытия доступа работать не будет и остается только VPN.

Если же адрес выглядит по-другому, надо посмотреть на него «снаружи» с помощью одного из сервисов, показывающих ваш IP-адрес, например, http://myip.ru/.

Если адрес, показанный на сайте, совпадает с тем, что вы увидели в веб-интерфейсе, то у вас честный «белый» адрес и доступ из «большого мира» не вызовет особых затруднений — остается только настроить «пробросы» на роутере и подключить DDNS.

Что такое порты и зачем их бросать?

Порт — это пронумерованное виртуальное «устройство», предназначенное для передачи данных по сети. Каждая сетевая программа использует для установления связи отдельный порт или группу портов. К примеру, браузеры используют TCP-порт 80 для незашифрованного трафика (http) и 443 для зашифрованного (https).

Проброс порта — это специальное правило в роутере, которое разрешает все обращения извне к определенному порту и передает эти обращения на конкретное устройство во внутренней сети.

Необходимость «проброса» портов обычно возникает при желании сыграть по сети в какую-нибудь игру с компьютера, подключенного к роутеру. Впрочем, это не единственная причина — «проброс» потребуется при любой необходимости получить «извне» доступ к какому-нибудь конкретному устройству в вашей локальной сети.

Разрешать к компьютеру вообще все подключения, то есть пробрасывать на него весь диапазон портов — плохая идея, это небезопасно. Поэтому роутеры просто игнорируют обращения к любым портам «извне». А «пробросы» — специальные исключения, маршруты трафика с конкретных портов на конкретные порты определенных устройств.

Игровые порты: что, куда бросаем?

Какой порт открыть — зависит от конкретного программного обеспечения. Некоторые программы требуют проброса нескольких портов, другим — достаточно одного.

У разных игр требования тоже отличаются — в одни можно играть даже с «серого» адреса, другие без проброса портов потеряют часть своих возможностей (например, вы не будете слышать голоса союзников в кооперативной игре), третьи вообще откажутся работать.

Например, чтобы сыграть по сети в «Destiny 2», нужно пробросить UDP-порт 3074 до вашей «плойки», или UDP-порт 1200 на Xbox. А вот до ПК потребуется пробросить уже два UDP-порта: 3074 и 3097.

В следующей таблице приведены некоторые игры и используемые ими порты на ПК:

Fortnite

Overwatch

PUBG

Tekken 7

WoT

TCP: 5222, 5795:5847

TCP: 80, 1119, 3724, 6113

TCP: 27015:27030, 27036:27037

TCP: 27015:27030, 27036:27037

TCP: 80, 443, 5222, 5223, 6881, 6900:6905, 50010:50014

UDP: 5222, 5795:5847

UDP: 5060, 5062, 6250, 3478:3479, 12000:64000

UDP: 4380, 27000:27031, 27036

UDP: 4380, 27000:27031, 27036

UDP: 53, 1900, 3432, 3478, 3479, 5060, 5062, 6881, 12000:29999, 30443, 32800:32900

Настраиваем проброс портов

Пробросы настраиваются в админ-панели роутера на вкладке «Виртуальные серверы», «NAT», «Переадресация портов», «Трансляция сетевых адресов» и т. п. Они могут быть вложенными во вкладки «Интернет», «Переадресация», «Брандмауэр» или «Безопасность». Все зависит от марки и модели роутера.

Вам нужно определить, какие порты и какой протокол (UDP или TCP) использует программа, для которой вы настраиваете правило. Также следует задать статический IP-адрес для устройства, на которое пробрасывается порт — это делается в настройках DHCP и подробно разбиралось в статье про родительский контроль. Все эти данные следует ввести в соответствующие поля.

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

Теперь все обращения с адреса 132.12.23.122 к порту 3074 вашего роутера он автоматически «перебросит» к вашей приставке PlayStation.

Больше пробросов для разных задач!

Аналогично производится настройка для других программ — и это могут быть не только игры:

  • задав порт и настроив удаленное управление для uTorrent, можно управлять его загрузками из любой точки мира с помощью браузера;

  • проброс портов часто требуется для специализированных программ удаленного управления компьютером; более простые, «гражданские» программы могут работать без этого — подробнее о них можно прочитать в этой статье;

  • для запуска на домашнем компьютере ftp-сервера потребуется открыть и пробросить управляющий порт 21 и отдельный диапазон портов для передачи данных;

  • пробросив порт 554 на домашнюю IP-камеру, которая умеет передавать видео по протоколу RTSP, можно будет подключиться к ней любым видеоплеером с поддержкой RTSP, вроде VLC;

  • проброс порта 3389 позволит задействовать службу RDP (Remote Desktop Protocol) в Windows для получения удаленного доступа к рабочему столу компьютера.

DDNS — зачем нужен и как настроить

Если IP-адрес постоянный, то его можно запомнить. Но если он меняется, запоминать его тяжело. Для решения этой проблемы предназначены службы динамического DNS. Вам будет достаточно запомнить определенное доменное имя.

Сервисы DDNS бывают платные и бесплатные, с разным набором возможностей и характеристик. Но пользоваться лучше теми, которые предусмотрел производитель роутера — когда внешний IP-адрес роутера поменяется, они с DDNS сами договорятся, без вашей помощи. Найдите вкладку «DDNS» или «Динамический DNS» в веб-интерфейсе вашего роутера. В пункте «сервис-провайдер» или «DDNS-сервис» вам будет предложен список из нескольких сервисов, можете выбрать любой. Многие производители роутеров имеют собственные DDNS-сервисы — довольно ограниченные в настройках, зато бесплатные. Это DLinkDDNS.com для роутеров D-Link, KeenDNS для роутеров Zyxel, «Облако ТР-Link» для роутеров TP-Link и т. п.

Определившись с будущим сервисом DDNS, нужно зайти на его сайт и создать аккаунт. Бесплатные DDNS-сервисы производителей роутеров могут потребовать ввести серийный номер устройства или как-то иначе подтвердить, что вы работаете с роутером их производства — у каждого производителя по-разному.

Далее вам предложат задать доменное имя для своего домашнего сервера — обычно это домен третьего уровня (то есть vash_vybor.DDNS-service.com). После этого уже можно вернуться в веб-интерфейс и настроить привязку созданного аккаунта к своему роутеру.

Удаленное управление роутером

Во всех прочих руководствах рекомендуется запрещать удаленное управление роутером. Но здесь желательно его разрешить — будет крайне обидно, если вы, например, при пробросе портов упустили какую-то мелочь и не можете из-за этого «достучаться» до сети, будучи в командировке или в отпуске. Удаленное управление роутером позволит внести необходимые исправления и получить доступ.

Разрешите «Удаленный доступ» в веб-интерфейсе и задайте правила удаленного доступа. Так, если вам известен постоянный IP-адрес компьютера, с которого вы будете производить настройку, его следует задать — это увеличит безопасность вашей сети.

Если же вы хотите получить возможность доступа к роутеру с любого устройства, подключенного к Интернету, это тоже можно сделать, но обязательно задайте сложный пароль на доступ к веб-интерфейсу — иначе ваша локальная сеть станет «легкой добычей» для хакеров.

VPN как крайний выход

Если провайдер выдает «серый» адрес и никак не желает давать «белый», даже за деньги, придется использовать VPN.

Обычно VPN-сервисы предоставляют выход в сеть через сервер в любой точке мира — Private Internet Access, TorGuard, CyberGhost VPN, Game Freedom и т. п. Бесплатных среди них нет, но для удаленного доступа к своему компьютеру или командных игр вам «внешний» сервер и не нужен. Достаточно создать «виртуальную сеть» из своего домашнего компьютера и, например, рабочего. Или ноутбука для поездок, с которого вы ходите получать доступ к домашней сети. Или всех компьютеров ваших игровых друзей. Достаточно выбрать какую-нибудь из бесплатных VPN-утилит, например, Hamachi, Remobo, NeoRouter и т. д. И запустить ее на всех компьютерах, которые нужно объединить.

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

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

Существуют VPN-сети с запущенными серверами популярных игр, но пользователей на них в разы меньше, чем на открытых серверах. Кроме того, такие сервера есть не для всех игр. Сыграть в World of Tanks или World of Warcraft с помощью таких утилит не получится, придется раскошеливаться на полноценный VPN-сервис. Но об этом — в следующий раз.

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

Предисловие

Для кого эта статья

Если вы умеете работать с iptables, то дерзайте и настраивайте firewall, для вас в этой статье не будет ничего нового (ну разве что в таблице NAT используются цепочки с другими именами). Если вы впервые видите firewall в RouterOS и хотите получить готовый скрипт для конфигурации, то вы его здесь не найдете. Материал нацелен на тех, кто хочет получить базовое представление о том как работает firewall и что происходит с ip пакетом на разных этапах его обработки. Более глубокое понимание прейдет с опытом и решением повседневных и необычных задач с использованием пакетного фильтра.

Теоретическая часть

Что такое Layer3 Firewall

Предположим, что у вас есть роутер с выходом в интернет и двумя bridge интерфейсами: bridge-lan(ether2-ether5) и bridge-dmz(ether6-ether10).

В пределах Bridge интерфейса устройства самостоятельно находят соседей из свой подсети и обмениваются пакетами, роутер выполняет функции свича и не отслеживает такой трафик на сетевом уровне (конечно можно принудительно заставить его это делать, но про Layer2 Firewall поговорим в другой раз).

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

Packet Flow Diagram

Полный путь трафика описан в Packet Flow Diagram, есть несколько официальных(v5, v6) версий, их необходимо знать и использовать в повседневной работе, но для понимания работы пакетного фильтра они перегружены, поэтому я буду объяснять на облегченном варианте.

Input/Output Interface — это любой (физический или виртуальный) Layer 3 интерфейс роутера. Пакет который идет из локальной сети в интернет попадает на input interface, а уходит с output interface. Пакет из интернета в локальную сеть, также попадает на input interface, а уходит с output interface. Packet Flow всегда читается в одном направлении input -> output.

Особенности терминологии

Изучая packet flow для iptables, можно встретить описания через «цепочки в таблицах» либо «таблицы в цепочках». На схеме представлены таблицы в цепочках, при добавлении правил в firewall все будет наоборот.

Но на самом деле пакет перемещается между блоками [цепочка+таблицы], например если вы сделайте accept в блоке [prerouting+mangle] транзитный пакет все-равно будет обработан в [forward+mangle]. Это важно помнить в сложных конфигурациях с pbr и queues.

В документации iptables есть более точные определения, но простыми словами:
Цепочки отвечают за место обработки пакета и последовательность правил.
Таблицы определяют действия, которые можно произвести над пакетом.

Базовые варианты следования пакета

Транзитный

  1. Пакет из сети приходит на один из интерфейсов роутера
  2. В цепочке PREROUTING администратор может повлиять на маршрут следования пакета: определить выходной интерфейс (Policy base routing) или перенаправить на другой адрес (dst-nat).
  3. В соответствии с таблицей маршрутизации для пакета определяется исходящий интерфейс.
  4. Цепочка FORWARD — основное место фильтрации проходящего трафика.
  5. Последним пунктом перед выходом в сеть является цепочка POSTROUTING, в которой можно изменить адрес отправителя (src-nat).
  6. Пакет ушел в сеть.

Входящий

  1. Пакет из сети пришел на один из интерфейсов роутера
  2. Попал в цепочку PREROUTING.
  3. В соответствии с таблицей маршрутизации пакет был отправлен на обработку локальному процессу.
  4. В цепочке INPUT происходит фильтрация входящего трафика администратором.
  5. Пакет ушел на обработку локальному процессу.

Исходящий

  1. Один из процессов роутера сгенерировал ip пакет (новый или ответный — неважно).
  2. В соответствии с таблицей маршрутизации для пакета определен выходной интерфейс.
  3. Администратор может фильтровать исходящий трафик, либо изменять маршрут в цепочке OUTPUT.
  4. Для пакета принимается окончательное решение о выходном интерфейсе.
  5. Пакет попадает в POSTROUTING, как и проходящий трафик.
  6. Пакет ушел в сеть.

Connection Tracker

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

Пример. Компьютер 192.168.100.10 открывает tcp соединение с сервером 192.0.2.10. На стороне клиента используется динамический порт 49149, на стороне сервера 80. Еще до получения контента клиент и сервер должны обменяться пакетами для установки tcp сессии.

В stateless потребуется открыть трафик из локальной сети в интернет и из интернета в локальную сеть (как минимум для диапазона динамических портов). Что в целом является дырой.

В stateful маршрутизатор анализирует пакеты и получив tcp syn от 192.168.100.10:49149 для 192.0.2.10:80 считает это началом нового (new) соединения. Все дальнейшие пакеты (в любом направлении) между 192.168.100.10:49149 и 192.0.2.10:80 будут считаться частью установленного (established) соединения, до закрытия tcp сессии или истечения таймеров.

Для UDP/ICMP и других видов трафика, где нельзя четко выделить начало и конец соединения, новым пакетом является первый, остальные считаются частью установленного соединения и обновляют таймеры, маршрутизатор забывает про подобные соединения по истечению таймеров.

Connection tracker делит пакеты на несколько типов:

new — пакет открывающий соединение, например syn для tcp или первый пакет в udp потоке.
established — пакет относящийся к известному соединению.
related — пакет относящийся к дополнительному соединению в мультипротоколе (sip, pptp, ftp, …).
invalid — пакет от неизвестного соединения.
untracked — пакет не отслеживаемый connection tracker.

Конфигурация Connection tracker

enabled=yes — включен.
enabled=no — отключен.
enabed=auto — отключен, пока в firewall не появится правило использующее возможности conntrack. Используется по умолчанию.

Остальные параметры являются различными таймерами и обычно не требуют тюнинга.

Администратор может просматривать и удалять соединения, например так выглядит соединение с NAT:

Использование conntrack сказывается на производительности и потреблении ресурсов (особенно при большом числе соединений), но отключить его в большинстве конфигураций не получится, т.к. у вас останется stateless firewall без NAT.

Список функций зависящих от connection tracker:

TTL

 Time To Live — поле в заголовке IP пакета определяющее число маршрутизаторов через которые может пройти пакет прежде чем будет уничтожен, защищает от бесконечной пересылки пакетов при петлях маршрутизации.

При пересылке (forwarding) роутер уменьшает значение TTL на 1 отбрасывает, если TTL=0. При этом пакет с TTL=1 попадет локальному процессу роутера.

Некторые операторы связи используют трюки с TTL для пресечения использования роутеров. Все эти ограничения прекрасно обходятся увеличением значения ttl в таблице mangle.

NAT

Network Address Translation — технология изменения адресов в заголовке ip пакета. Как и в linux, NAT является частью пакетного фильтра. NAT работает на основе connection tracker.

Изначально NAT был разработан как быстрое решение проблемы исчерпания IPv4 адресов, для локальных сетей было предложено использовать подсеть из диапазонов: 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16 и транслировать их в один(или несколько) маршрутизируемых адресов. На самом деле есть еще несколько служебных подсетей, которые можно использовать в частных сетях и роутеру в принципе все-равно что и как NAT’ить, но рекомендуется следовать стандартам.

NAT обрабатывает только: tcp, udp, icmp и некоторых мультипротоколов из [IP]->[Firewall]->[Service Port]. Обрабатывается только первый (connection-state=new) пакет в соединении, оставшиеся обрабатываются автоматически без участия таблицы NAT. Это можно отследить по изменению счетчиков в правилах.

В заголовке пакета присутствует Source и Destenation address, соответственно и NAT делится на Source и Destenation NAT.

Source NAT — подмена адреса отправителя, присутствует на подавляющем большинстве домашних и корпоративных роутеров в мире.

Позволяет множеству устройств с «серыми» адресами в локальной сети общаться с интернетом используя один (или несколько) реальных адресов.

Возвращаясь к Packet Flow смотрим, что SRC-NAT находится в Postrouting, после принятия решения о маршрутизации пакета.

Ответный пакет проходит неявный DST-NAT в котором адрес получателя меняется на локальный.

Destenation NAT — подмена адреса получателя.

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

По Packet Flow работа DST-NAT происходит до принятия решения о маршрутизации в Prerouting, присутствует неявный SRC-NAT для ответного трафика.

NAT является довольно мощным инструментом управления трафиком, но применять его стоит в последнюю очередь (когда остальные инструменты не могут помочь).

Цепочки(chains) базовые и пользовательские

Цепочки состоят из правил и форсируют логику обработки пакета.
Есть несколько базовых цепочек, отображенных на packet flow:
Prerouting(dstnat) — обработка пакета до принятия решения о маршрутизации
Input — обработка пакетов предназначеных локальным процессам маршрутизатора
Output — обработка пакетов пакетов сгенерированных локальными процессами маршрутизатора
Forward — Обработка проходящего трафика
Postrouting(srcnat) — Обработка трафика готового к передаче на интерфейс

Все как в iptables, но цепочки в nat переименованы. С чем это связано (скорее всего с hotspot или аппаратной разгрузкой nat) мне неизвестно, но в корне ничего не меняет.

Пакет проходит правила в цепочке последовательно, если он подходим по всем условиям, то к пакету применяется действие. Если действие является терминирующим и не отбрасывает пакет, то он передается в следующий блок packet flow.

У всех цепочек базовых есть действие по умолчанию (если пакет не подошел ни под одно из правил) — accept.

Пользовательские цепочки необходимы для уменьшения количества правил которые проходит каждый пакет и для построения сложных правил обработки трафика. У всех пользовательских цепочек есть действие по умолчанию — return.

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

 

Условия в правилах

 Цепочки состоят из правил, каждое правило состоит из условий и действия. Условий достаточно много, но далеко не все вы будете использовать в реальных конфигурациях. Большинству условий можно поставить префикс «не» (знак «!»). Для совпадением с правилом, пакет должен подходить под все указанные условия.

 Некоторые из условий:

Условие Описание
src-address Адрес источника
dst-address Адрес получателя
src-address-list Адрес источника присутствует в списке
dst-address-list Адрес получателя присутствует в списке
protocol Протокол транспортного уровня
src-port Порт источника
dst-port Порт получателя
port Порт источника или получателя
in-interface Интерфес на который пришел пакет
out-interface Интерфейс с которого пакет будет отправлен в сеть
in-interface-list Интерфес на который пришел пакет присутствует в списке
out-interface-list Интерфейс с которого пакет будет отправлен в сеть присутствует в списке
layer7-protocol Анализ содержимого первых 10 пакетов в соединениий
content Поиск заданной строки в пакете
tls-host Поиск хоста в заголовке tls
ipsec-policy Проверить подпадает пакет под политику ipsec или нет
packet-size размер пакета в байтах
src-mac-address mac адрес источника пакета
connection-mark Метка соединения
packet-mark Метка пакета
routing-mark Маршрутная метка пакета
connection-state Состояние пакета в соединении
tcp-flags Флаги tcp пакета
icmp-options Опции icmp пакета
random Правило срабатывает(при совпадении остальных условий) с заданной вероятностью
time Можно указать рабочее время правила, к сожалению без конктеризации даты
ttl Значение поля ttl в пакете
dscp Значение поля DSCP(ToS) в пакете
—//— —//—
place-before Консольная опция(не условие), позволяет добавить правило перед указанным
disabled Консольная опция(не условие), позволяет отключить правило

Примечания
В качестве src.(dst.) address можно указывать: одиночный ip, диапазон адресов через дефис, либо подсеть.
Списки адресов необходимы для объединения под одним именем нескольких несвязанных ip. В отличии от ipset в netfilter, записи в списках MikroTik могут удаляться через заданный промежуток времени. Просмотреть списки и внести изменения можно в [IP]->[Firewall]->[Address Lists].
В качестве номера порта(port, src-port, dst-port) можно указывать одиночный порт, несколько портов через запятую, либо диапазон портов через дефис.

На последнем MUM в МСК была неплохая презентация на тему влияния различных условий на скорость обработки пакетов (там же вы узнаете как использовать таблицу raw для снижения нагрузки на роутер), кому интересно: запись и презентация.

Действия в таблицах

 Набор доступных действий над пакетом, зависит от таблицы в которой он обрабатывается.

Filter — таблица фильтрации трафика, одно из двух мест, где можно отбросить пакет.

NAT — таблица модификации ip адресов и портов(tpc, udp) в заголовке ip пакета.

Mangle — таблица для модификации других полей ip пакета и установки различных меток.

Существует три типа внутренних меток пакетов: connection, packet, route. Сетки существуют только в пределах роутера и не уходят в сеть. Пакет может иметь по одной метке каждого типа, при последовательном прохождении нескольких mark-* правил метки перезаписываются.
Маршрутные метки можно ставить только в цепочках prerouting и output, остальные в любых цепочках.

Хорошей практикой считается сначала маркировать соединение (connection), а потом пакет (packet) либо маршрут (route). Проверка наличия метки происходит быстрее чем полей пакета. На практике, это не всегда так и в сложных очередях или pbr дополнительная маркировка соединения не приносит пользы.

RAW — таблица позволяющая пакетам обходить механизм трекинга соединений (connection tracker). Используется для противодействия DoS и снижения нагрузки на cpu (например исключением multicast трафика). Позволяет отбросить пакет.

Терминирующие действия завершают обработку пакета в цепочке и передают следующему блоку в packet flow, либо отбрасывают.

Действия:

Таблица Действие Описание Терминирующее?
Все accept Прекратить обработку пакета и передать в следующий блок Pakcet flow Да
Все log Записать в log информацию о пакете.В современных версиях можно добавить log к любому другому действию Нет
Все passtrough Посчитать число пакетов. Используется для отладки Нет
Все add src to address list и add dst to address list Добавить source (destenation) адрес из пакета в заданный список Нет
Все jump Перейти в пользовательскую цепочку Да
Все return Вернуться в родительскую цепочку. В базовых цепочках работает как accept Да
Filter и Raw drop Остановить движение пакета по packet flow и отбросить Да
Filter и Prerouting fasttrack Пометить пакет для быстрого прохождения packet flow Да
Filter reject Аналогично drop, но отправителю пакетов отправляется уведомление(tcp или icmp) о отброшенном пакете Да
Filter trapit Эмулировать наличие открытого порта. Используется для защиты от DoS, ввода в заблуждение и(иногда) отладке Да
NAT src-nat Подмена адреса отправителя на указанный Да
NAT masquerade Частный случай src-nat, подменяет адрес отправителя на один из адресов с интерфейса, используется на динамических(dhcp, vpn) интерфейсах. Не рекомендуется использовать при наличии нескольких ip на интерфейсе Да
NAT same Частный случай src-nat. Подменяет адрес отправителя на адрес из заданного диапазона Да
NAT dst-nat Подменяет адрес получателя на указанный Да
NAT redirect Частный случай dst-nat, подменяет адрес получателя на адрес интерфейса роутера на который пришел пакет Да
NAT netmap Не замена dst-nat. Применяется при трансляции сеть-в-сеть, смотрите примеры Да
Mangle mark connection Метка соединения Нет
Mangle mark packet Метка пакета, применяется в очередях Нет
Mangle mark routing Метка маршрута, применяется в Policy base routing Нет
Mangle change ttl Изменить ttl Нет
Mangle change dcsp(tos) Изменить dcsp, в десятичном виде Нет
Mangle change mss Изменить mss в tcp syn Нет
Mangle clear df Очистить флаг do not fragmet Нет
Mangle strip ipv4 options Очистить дополнительные опции ipv4 Нет
Mangle set priority Установить приоритет для CoS Нет
Mangle route Задать gateway для пакета. Простая версия PBR Нет
Mangle sniff tzsp Инкапсулировать пакеты в udp и отправить на указанный ip Нет
Mangle sniff pc Аналог tzsp, но с другим типом инкапсуляции. В wiki если примеры использования с calea Нет
Mangle passtrough По умолчанию большинство правил в mangle не останавливает прохождение пакета, можно изменить это поведение установить passtrough=no Нет
Raw notrack Не отслеживать пакет в connection tracker Да

Если найдутся желающие, могу написать подробнее про FastTrack и FastPath, но чудес от этих технологий ждать не стоит.

Пара слов про DPI

Существует несколько возможностей заглядывать в пакет чуть глубже заголовка транспортного уровня:
content — производит поиск заданной строки в пакете.
layer7-protocol — буферезирует первые 10 пакетов (или 2KiB) из соединения и производит поиск по regexp в буферезированных данных. Большое число layer7 правил существенно влияют на производительность.
tls-host — адрес имени хоста в заголовке TLS/SNI соединения HTTPS.

Примеры

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

Дефолтный Firewall RouterOS

Достаточно защищенная конфигурация, но местами сильно замороченая:

/ip firewall filter
#Разрешает входящий трафик от уже установленных(established, related) соединений и неотслеживаемые(untracked) пакеты
add action=accept chain=input connection-state=established,related,untracked

#Отбрасываем входящие пакеты от неизвестных(invalid) соединений
add action=drop chain=input connection-state=invalid

#Разрешаем входящий icmp трафик
add action=accept chain=input protocol=icmp

#Отбрасываем все входящие пакеты пришеджие не с интерфейсов локальной сети
add action=drop chain=input in-interface-list=!LAN

#Для правильной работы ipsec в туннельном режиме
add action=accept chain=forward ipsec-policy=in,ipsec
add action=accept chain=forward ipsec-policy=out,ipsec

#Маркируем для быстрого прохождения транзитные пакеты от уже установленных соединений
add action=fasttrack-connection chain=forward connection-state=established,related

#Разрешаем транзитные пакеты от уже установленных соединений
add action=accept chain=forward connection-state=established,related,untracked

#Отбрасываем неизвестные транзитные пакеты
add action=drop chain=forward connection-state=invalid

#Отбрасываем транзитные пакеты со стороны wan интерфейсов, которы не относятся к dstnat (вспоминаем, что для ответных пакетов в src-nat присходит неявный dst-nat)
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WAN

/ip firewall nat
#Source NAT для пакетов не относящихся к ipsec, уходящих с интерфесов из списка WAN
add action=masquerade chain=srcnat ipsec-policy=out,none out-interface-list=WAN

Никогда не использовал дефолтный конфиг, но раньше дефолтный firewall был значительно хуже.

Минимальный «домашний» firewall

 Самый простой, что удалось придумать. Да в нем не разрешен untracked трафик (но на этапе базового изучения firewall он вам всеравно не нужен) и будут проблемы с туннельным ipsec (опять-же, если вы умеете настраивать ipsec, то сами знаете что необходимо сделать).

/ip firewall filter
#Разрешает входящий трафик от уже установленных(established, related) соединений
add chain=input connection-state=established,related action=accept

#Разрешаем входящий icmp трафик
add chain=input connection-state=new protocol=icmp action=accept

#Разрешаем входящий трафик из локальной сети
add chain=input connection-state=new in-interface-list=LAN action=accept

#Отбрасываем весь оставшийся входящий трафик
add chain=input action=drop

#Разрешаем транзитные пакеты от уже установленных соединений
add chain=forward connection-state=established,related action=accept

#Разрешаем транзитные пакеты из локальной сети в сеть интернет
add chain=forward connection-state=new in-interface-list=LAN action=accept

#Отбрасываем весь оставшийся транзитный трафик
add chain=forward action=drop

/ip firewall nat
#Source NAT для пакетов уходящих с интерфесов из списка WAN
add chain=srcnat out-interface-list=WAN action=masquerade 

Пример с DMZ

 На «домашних» роутерах аббревиатурой DMZ любят обзывать компьютер в локальной подсети для которого проброшены все порты из внешней сети.

На самом деле это не так и один из вариантов DMZ — отделение ресурса на который необходимо предоставить доступ из сети интернет и может быть проведена успешная атака (web server с cms в которых постоянно находят дыры — хорошая цель для взломщика). В случае взлома, злоумышленник не сможет повлиять на участников локальной сети.

#Проброс порта
/ip firewall nat
add chain=dstnat dst-port=80,443 action=dst-nat to-address=192.168.200.2

/ip firewall filter
#Разрешаем ответный и icmp входящий трафик
add chain=input connection-state=established,related action=accept
add chain=input protocol=icmp connection-state=new action=accept

#Разрешаем входящий трафик из локальной сети
add chain=input in-interface=ether2-lan action=accept

#Отбрасываем оставшийся входящий трафик
add chain=input action=drop

#Разрешаем ответный транзитный трафик
add chain=forward connection-state=established,related action=accept

#Разрешаем пользователям из локальной сети создавать транзитные соединения
add chain=forward in-interface=ether2-lan connection-state=new action=accept

#Разрешаем транзитные соединения на web сервер
add chain=forward out-interface=ether3-dmz dst-address=192.168.200.2 dst-port=80,443 connection-state=new action=accept

#Отбрасываем оставшийся транзитныйтрафик
add chain=forward action=drop

HairPin NAT

/ip firewall nat
add chain=dstnat dst-port=80 action=dst-nat to-address=192.168.100.2

Типичная ситуация, когда вы делайте проброс порта на сервер в локальной сети и извне все работает, а вот внутри локальной сети сервер не доступен по внешнему адресу.

Давайте разберем что происходит:

  1. Компьютер 192.168.100.10 отправляет запрос на 192.0.2.100
  2. На роутере отрабатывает DST-NAT и пакет пересылается на 192.168.100.2
  3. Сервер видит, что к нему на адрес 192.168.100.2 пришел пакет от 192.168.100.10 и отвечает с локального адреса
  4. Компьютер получает неожиданный пакет от 192.168.100.2 и отбрасывает его.

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

/ip firewall nat
#Правило проброса
add chain=dstnat dst-port=80 action=dst-nat to-address=192.168.100.2

#Новое правило, для пользователей из локальной сети
add chain=srcnat src-address=192.168.100.0/24 dst-address=192.168.100.2 action=masquerade

На практике такую схему используют не часто, но как пример отладки firewall мне очень нравится.

Правильное использование netmap

Netmap — технология трансляции адресов из одной подсети в адреса другой подсети.
IP адрес (в записи с маской) состоит из двух частей: сетевой (число бит указанных в маске подсети) и хостовой (оставшиеся биты). Netmap изменяет сетевую часть адреса, но не трогает хостовую.

Есть два роутера соединенные VPN каналом. Роутеры обслуживают подсети с одинаковой адресацией. Необходимо сделать доступ между подсетями.

Без дополнительной адресации тут не обойтись.

Пользователи из левой подсети будут стучаться в правую через подсеть 192.168.102.0/24
Пользователи из правой подсети будут стучаться в левую через подсеть 192.168.101.0/24

Конфигурация на MikroTik 1.

#Без правила роутинга не обойтись
/ip route
add distance=1 dst-address=192.168.102.0/24 gateway

/ip firewall nat
#В исходящих пакетах будем менять адрес источника
add action=netmap chain=srcnat dst-address=192.168.102.0/24 out-interface=ipip src-address=192.168.100.0/24 to-address=192.168.101.0/24

#Во входящих пакетах будем менять адрес получателя
add action=netmap chain=dstnat dst-address=192.168.101.0/24 in-interface=ipip src-address=192.168.102.0/24 to-address=192.168.100.0/24

Конфигурация MikroTik2 практически аналогична:

/ip route
add distance=1 dst-address=192.168.101.0/24 gateway=10.10.10.1

/ip firewall nat
add action=netmap chain=srcnat dst-address=192.168.101.0/24 out-interface=ipip src-address=192.168.100.0/24 to-address=192.168.102.0/24
add action=netmap chain=dstnat dst-address=192.168.102.0/24 in-interface=ipip src-address=192.168.101.0/24 to-address=192.168.100.0/24

Есть более сложные конфигурации с использованием netmap, например если у вас множество подключений к удаленным точкам с пересекающимеся подсетями и нет возможности изменить настройки на удаленном оборудовании, но это уже advanced routing.

Если вы ничего не поняли (про netmap), значит оно вам не нужно и просто не используйте данное действие при пробросе портов.

Источник публикации

Другие наши интересноые статьи:

  • Фильтрация url роутер что это
  • Флешка роутер что это такое
  • Фильтрация mac адресов в роутере что это
  • Флешка роутер для ноутбука мегафон
  • Цена вай фай роутера йота

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии