Routeros перенаправление. Как сделать проброс портов в Mikrotik? Проброс портов ("Микротик"): описание, инструкция, рекомендации

В этой статье мы рассмотрим как пробросить порт на маршрутизаторах Mikrotik для RDP. Инструкция актуальна для всех устройств Router OS.

Любую схему можно представить в таком виде:

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

Рассмотрим подробнее, как создать это правило в Mikrotik Router OS.

Все операции будем выполнять через WinBox.

Подключаемся к роутеру, заходим в IP->Firewall-> NAT и нажимаем + что бы создать новое правило.

Тут нужно заполнить всего несколько опций.

Первое поле - это Chain (Цепочка) . Тут может быть всего два варианта - srcnat и dstnat . Цепочка - это направление потока данных. Srcnat - из внутренней сети во внешнюю, dstnat - из внешней во внутреннюю. В нашем случие нам нужен dstnat .
Далее идут Src. Address (исходный адрес) и Dst. Address (адрес назначения) . Если вы планируете подключаться с определенного IP адреса, тогда вносим его в Src. Address , если хотите подключаться с любого ip адреса тогда оставляем поле пустым. В адрес назначения - всегда внешний адрес роутера, так что это поле можно не заполнять.
Далее следует пункт Protocol (протокол) . Здесь значение надо выбрать обязательно, иначе мы не сможем указать номер порта. Для rdp выбираем tcp .
Src. Port (исходящий порт) - это тот порт, из которого удалённая машина инициирует соединение с нашим роутером. Нам это не нужно, оставляем поле пустым.
Dst. Port (порт назначения) - а это как раз тот порт, на который мы хотим принимать соединение. Для RDP это 3389.
Затем идёт пункт Any Port (любой порт) - так и есть, это объединение двух предыдущих пунктов, тут можно указать значение, которое будет работать и как исходный порт, так и как порт назначения. В целом, нам это не требуется.
Теперь очень важный момент:
In. interface (входящий интерфейс) - это тот интерфейс который смотрит наружу.
Out. interface (исходящий интерфейс) - интерфейс, к которому подключен компьютер, на который мы делаем переадресацию, заполнять это поле нет необходимости.
Далее идут узкоспециализированные параметры, я сейчас не буду на них останавливаться.
В итоге у насполучается такая картина:

В целях безопасности мы рекомендуем вам изменить стандартный порт rdp 3389 на любой другой. В этом случаи для подключения к удаленному компьютеру после ip адреса нужно поставить: и ввести адрес порта, например 192.168.0.100:5971

Вкладки Advanced (Продвинутый) и Extra (Дополнительный) содержат различные параметры расширенной настройки, нам они не нужны, идём сразу в Action (Действие)

В поле Action нужно выбрать конкретное действие, которое будет выполняться с подключением на указанный ранее порт:
accept - Просто принимает пакет;
add-dst-to-address-list - Добавляет адрес назначения в указанный список адресов;
add-src-to-address-list - Аналогично предыдущему, но для исходного адреса;
dst-nat - Переадресовывает данные, пришедшие из внешней сети, во внутреннюю;
jump - Позволяет применить для данных правила из другой цепочки.
log - Добавляет информацию о пакете в лог роутера;
masquerade - Подмена внутреннего адреса компьютера из локальной сети на адрес роутера;
netmap - Отображение одного адреса на другой. Фактически, развитие dst-nat;
passthrough - Пропуск текущего пункта правил и переход к следующему. Используется в основном для статистики;
redirect - Перенаправляет данные на другой порт в пределах роутера;
return - Возвращает управление обратно, если в эту цепочку выполнялся прыжок правилом jump;
same - применяется в очень редких случаях, когда нужно применять одни и те-же правила для группы адресов;
src-nat - Обратная dst-nat операция: перенаправление данных из внутренней сети во внешнюю.
Для наших целей подходит dst-nat и netmap , остановимся на пером варианте.

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

Нажимаем кнопку Comment , назовем это правило rdp и нажимаем ОК .

Все, на этом правило создано.

Зачастую можно столкнуться с задачами, когда необходимо обеспечить доступ к внутренним корпоративным (или домашним) ресурсам из Интернета. В этом случае, нужно выполнить, так называемый "проброс портов" . Что это такое, зачем это нужно и как настраивать на примере роутера Mikrotik 951Ui-2HnD – расскажем в данной статье.

Как это работает?

Давайте представим себе следующую ситуацию – у нас есть корпоративная сеть, в которой пока ещё локально разворачивается сервер IP-телефонии на базе Asterisk, управляется он при помощи графической оболочки FreePBX. Задача состоит в том, чтобы предоставить возможность администратору сервера управлять им из Интернета.

Итак, имеем следующую схему:


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

Иными словами, мы должны настроить на роутере правило, в котором при поступлении TCP запроса на внешний адрес, в данном случае 35.135.235.15 и определенный порт, например 23535 , открывался бы доступ к интерфейсу FreePBX, который в данным момент доступен только в локальной сети по адресу 192.168.1.100 и, соответственно на порту 80 (HTTP) .

Настройка

Перейдём к настройке. Заходим на адрес нашего роутера Mikrotik 951Ui-2HnD, видим следующее окно:



Скачиваем приложение WinBox . Вводим учётные данные и подключаемся. По умолчанию логин - admin , пароль - пустой. Если у вас уже настроены логин и пароль, то укажите их.




Открывается следующее окно:



Нажимаем на + , открывается страница добавления нового NAT- правила.


Задаём следующие параметры:

  • Chain dstnat - направление запроса из внешней сети во внутреннюю.
  • Protocol tcp , поскольку в нашем случае нужно предоставить доступ к HTTP страничке.
  • Dst.Port 23535 - это тот самый порт назначения, на который будет отправлять запрос из вне на получение доступа к FreePBX.
  • In.Interface all ethernet - входной интерфейс. Это интерфейс, которым роутер смотрит в Интернет и на котором он будет прослушивать указанный выше порт.

Должно получиться вот так:


На вкладках Advanced и Extra настраиваются расширенные опции, такие как лимит по битрейту, политика IPsec, время, в течение которого правило будет активно и так далее.

Переходим на вкладку Action и объясняем роутеру, какие действия он должен выполнить при поступлении запроса на указанный порт. Выбираем Action netmap , то есть трансляция с одного адреса на другой. To Addresses 192.168.1.100 , то есть адрес нашёго FreePBX. И последнее - To Ports 80 , то есть запрос на HTTP порт.

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

с пробросом портов. Зачем это нужно?

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

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

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

  • организация удаленного доступа к устройствам в сети на основе технологий RDP;
  • создание игрового или FTP-сервера;
  • организация и настройка корректного функционирования торрент-клиентов;
  • доступ к камерам и системам видеонаблюдения извне через интернет.

Доступ к веб-интерфейсу

Итак, приступаем. Для маршрутизаторов Mikrotik проброс портов (RDP, FTP и т.д.) начинается со входа в систему управления устройством, называемую веб-интерфейсом. И если для большинства известных роутеров в качестве стандартных адресов используются сочетания 192.168 с окончаниями либо 0.1, либо 1.1, здесь такой вариант не проходит.

Для доступа в веб-браузере (лучше всего использовать стандартный Internet Explorer) в адресной строке прописывается комбинация 192.168.88.1, в поле логина вводится admin, а строка пароля, как правило, остается пустой. В случае, когда доступ по каким-то причинам оказывается заблокированным (роутер не воспринимает логин), потребуется сделать сброс настроек, нажав на соответствующую кнопку или отключив устройство от электропитания на 10-15 секунд.

Общие параметры и настройки

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

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

Примеры используемых портов

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

  • Torrent: tcp/51413;
  • SSH: tcp/22;
  • SQL Server: tcp/1433;
  • WEB Server: tcp/80;
  • telnet: tcp/23;
  • RDP: tcp/3389;
  • snmp: udp/161 и т.д.

Эти значения как раз и будут использованы для проброса каждого такого порта.

Создание правил и выбор действий

Теперь создаем новое правило и приступаем к заполнению полей настроек. Здесь нужно быть очень внимательным и исходить именно из того, какой доступ необходимо осуществить (изнутри наружу или наоборот).

Параметры должны быть такими:

  • Chain: srcnat используется для доступа из локальной сети, так сказать, во внешний мир, dstnat - для доступа к локальной сети извне (выбираем для входящих подключений второй вариант);
  • поля адресов Src. и Dst. оставляем пустыми;
  • в поле протокола выбираем либо tcp, либо udp (обычно устанавливается значение 6 (tcp);
  • Src. Port оставляем незаполненным, т.е. исходящий порт для внешних подключений не важен;
  • Dst. Port (порт назначения): указывается порт для вышеприведенных примеров (например, 51413 для торрентов, 3389 для RDP и т.д.);
  • Any Port можно оставить пустым, но если указать номер, один порт будет использоваться и как входящий, и как исходящий;
  • In. Interface: вписывается порт самого роутера (обычно это ether1-gateway);
  • Out. Interface: указывается исходящий интерфейс (можно пропустить).

Примечание: в случае проброса портов для удаленного подключения извне (RDP) в поле Src. Address указывается IP удаленного компьютера, с которого предполагается осуществлять доступ. Стандартный 3389. Однако большинство специалистов заниматься подобными вещами не рекомендует, поскольку намного безопаснее и проще настроить на маршрутизаторе VPN.

  • Action: accept (простой прием), но для доступа извне указывается dst-nat (можно указать более продвинутую настройку netmap);
  • To Addresses: вписывается внутренний адрес машины, на который должно будет происходить перенаправление;
  • To Ports: в общем случае выставляется значение 80, но для корректной работы того же торрента указывается 51413.

Настройка Mikrotik: проброс портов FTP

Наконец, несколько слов о том, какие настройки понадобятся для FTP. Прежде всего нужно настроить сам FTP-сервер, например, на основе FileZilla, но это отдельный разговор. В данном случае нас больше интересует проброс портов FTP Mikrotik, а не настройки серверной части.

Как считается, FTP-сервер хоть и требует указания определенного диапазона портов, однако совершенно нормально работает на управляющем порте 21. Его необходимо задействовать.

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

Для порта 21 параметры должны быть такими:

  • Chain: dst-nat;
  • Dst. Address: внешний адрес роутера (например, 1.1.1.28);
  • Protocol: 6 (tcp);
  • Dst. Port: 21
  • In. Interface: ether1-gateway.

Для вкладки действия Action устанавливаются следующие значения:

  • Action: dst-nat;
  • Dst. Address: адрес терминала, на котором установлен FTP—сервер;
  • To Ports: 21.

Для диапазона (например, 50000-50050) все опции аналогичны, за исключением двух параметров:

  • в общих настройках для Dst. Port указывается весь диапазон портов;
  • при выборе действия тот же диапазон вписывается в поле To Ports.

Обратите внимание, что при настройке проброса для FTP нужно следовать документации роутера, а в ней сказано, что не рекомендуется использовать начальный порог диапазона портов ниже значения 1024. Это момент тоже стоит учесть.

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

Роутеры MikroTik - одни из самых распространенных «продвинутых» маршрутизаторов в России.

Поэтому мы сделали инструкцию по «пробросу» портов для MikroTik. Такая настройка необходима для обеспечения удаленного доступа к устройствам, находящихся в сети под управлением Микротик.

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

Исходные данные:

— нужен внешний статический «белый» IP адрес;

-статический адрес регистратора в локальной сети;

— мы подразумеваем, что Интернет подключение уже настроено.

Для проброса портов, необходимо зайти на маршрутизатор с правами администратора.

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

/ip firewall nat
add action=dst-nat chain=dstnat dst-port=34567,80 in-interface=ether1-WAN \

ether-WAN - внешний интерфейс,
ether-LAN - интерфейс локальной сети,
192.168.1.9 - стандартный IP-адрес видеорегистратора.

Если нужно пробросить больше портов или использовать нестандартные порты, в таком случае потребуется два правила и потребуется заполнить поле «To Ports» на вкладке Action. В поле «To Ports» необходимо вписывать порт назначения (на видеорегистраторе).

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

/ip firewall nat
add action=dst-nat chain=dstnat dst-address=12.34.56.78 dst-port=34567,80 \
protocol=tcp to-addresses=192.168.1.9

Где 12.34.56.78 ваш внешний IP адрес.

А также потребуется составить дополнительное NAT правило для доступа к локальным ресурсам по внешним портам.

/ip firewall nat
add action=masquerade chain=srcnat dst-address=192.168.1.0/24 src-address=\
192.168.1.0/24

Где 192.168.1.0/24 подсеть регистратора.

Также правило необходимо будет вписать дополнительное правило для всех подсетей в пределах этого маршрутизатора, откуда потребуется доступ к регистратору по внешнему IP.

В конечном итоге должно получиться следующее.

Сервер в кармане, или просто о сложном!

Настройка firewall Mikrotik

Разделы:

Вместо вступления

Итак, имеем роутер Mikrotik, например, очень популярный RB951G-2HnD.

Считаем, что внутренняя сеть осталась нетронутой (192.168.88.0/24), IP роутера 192.168.88.1, внешний интерфейс ether1-gateway.

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

Доступ к терминалу через WinBox

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

Запускаем WinBox и выбираем New Terminal.

При вводе команд учтите, что внесенные изменения применяются сразу же, поэтому не заблокируйте сами себя. После ввода команд новые правила будут доступны для редактирования через WinBox или веб-интерфейс. Порядок правил имеет значение - выполняются сверху вниз. Где бы вы ни взяли сами команды, сначала посмотрите, что они делают!

Цепочка INPUT работает тогда, когда данные предназначены роутеру (его ip адресу). Когда мы что-то настраиваем для этой цепочки, мы в первую очередь защищаем сам роутер (ssh, telnet, веб-интерфес и др.) от взлома. Пожалуй, больше всего внимания требует именно эта цепочка. Общий принцип построения правил: явно запрещаем что-то (например, все новые соединения из интернета;)) или явно что-то разрешаем (например, удаленный ssh), остальное запрещаем.

Цепочка FORWARD работает тогда, когда данные проходят через роутер, например, когда ваш локальный компьютер хочет открыть сайт ya.ru. Всякие блокировки на этом этапе защищают вас, например, от того, что зараженный компьютер в вашей локальной сети начнет рассылать спам или учавствовать в DDOS. Т.е. каждый банк-клиент, IM-месенджер и куча другого софта требуют своих особых разрешений, то если вы не защищаете банк от хакеров, то мы просто запретим некоторые наиболее распространенные виды трафика, которые используются зараженными компьютерами. А так весь проходящий из локалки в интернет (но не наоборот!) мы разрешим.

Цепочка OUTPUT работает тогда, когда данные генерятся на самом роутере и идут наружу. Например, для запросов DNS. Эту цеопчку по сути нам нет смысла фильтровать. Почти.

Цепочка forward позволяет нам разрешать или не разрешать проходящий трафик, а вот за то, какой трафик и куда мы будем перенаправлять, отвечают цепочки SRCNAT и DSTNAT.

Цепочка SRCNAT (Source NAT) предназначена для трафика, условно названного "наружу". Изменяется адрес источника (source) на адрес внешнего интерфейса. Например, чтобы дать возможность клиентам локальной сети посещать сайты в интернет.

Цепочка DSTNAT (Destination NAT) определяет как будет проходить "входящий" трафик. Роутер изменит адрес назначения (destination). Например, можно сделать доступным из вне веб сервер, размещенный в локальной сети.

INPUT

Минимальный набор правил - сделать недоступным из вне внешний интерфейс роутера.

/ip firewall filter
add chain=input connection-state=invalid action=drop comment="drop invalid connections"
add chain=input connection-state=related action=accept comment="allow related connections"
add chain=input connection-state=established action=accept comment="allow established connections"
add chain=input action=drop comment="drop everything else" in-interface=ether1-gateway

где в последнем правиле мы запрещаем весь входящий трафик на внешнем интрфейсе. Не играйтесь настройками удаленно! Легко лишить себя доступа к роутеру.

NAT

IP -> Firewall - NAT. По-умолчанию, nat уже включен.Это правило "маскарадинга":

/ip firewall nat add chain=srcnat action=masquerade out-interface=ether1-gateway

Исходящий интерфейс (out-interface) всегда внешний, смотрящий и интернет (или просто в другую сеть, если у вас все непросто). В принципе, минимально этих правил nat и input уже достаточно. Учтите, что если у вас цепочка forward по-умолчанию блокирует все, что возможно, то надо добавить соответствующее правило:

/ip firewall filter add chain=forward out-interface=ether1-gateway

Примеры

Проброс портов

Предположим, вам надо сделать доступным веб-сервер (tcp/80), запущенный на локальной машине с IP 192.168.88.22.

/ip firewall nat add action=dst-nat chain=dstnat dst-port=80 in-interface=ether1-gateway protocol=tcp to-addresses=192.168.88.22 to-ports=80

Все бы ничего, но скорее всего, у вас включен firewall, который режет все, что не соответствует политике партии. Тогда надо разрешить forward пакетов:

/ip firewall filter add chain=forward protocol=tcp dst-port=80 action=accept

Это правило надо переместить повыше, т.е. ближе к началу списка правил.

Перенаправление трафика, адресованного одному ip, на другой ip

Если вам надо все подключения на один ip-адрес переадресовать другому ip-адресу:

/ip firewall nat add action=netmap chain=dstnat protocol=tcp dst-address=192.168.88.3 to-addresses=192.168.4.200

Ждем и давим, как блох любителей чужого ssh

Если мы не используем ssh для работы с Mikrotik, то нам может быть мало просто отключить ssh в IP -> Services. Если мы не пользуемся ssh, значит, любая попытка коннекта по ssh - вражеская!

Следующее правило добавляет IP-адреса источников (action=add-src-to-address-list), которые подключаются к 22 порту, в список ssh_blacklist , на 60 минут. Само это правило ничего не блокирует, просто заносит в черную книжечку:

/ip firewall filter
add chain=input protocol=tcp dst-port=22 address-list=ssh_blacklist action=add-src-to-address-list address-list-timeout=60m comment="record ssh brute forcers" disabled=no log=yes log-prefix=" --- SSH ATTEMPT --- "

А вот теперь, имея на руках список хулиганов (ssh_blacklist), можно банить им либо только работу с ssh, либо вообще любые действия в сторону нашего микротика:

/ip firewall filter
add chain=input protocol=tcp src-address-list=ssh_blacklist action=drop comment="drop ssh brute forcers"

Правила по отлову и блокированию маньяков надо разместить выше последнего запрещающего правила, иначе ничего не сработает. А еще лучше, если у вас есть открытый VPN или другие сервисы на микроте - оба этих правила поставить самыми первыми, чтобы тех, кто пытался наш ssh открыть, отгородить вообще от всего на нашем роутере, по принципу - если кто-то в одном что-то замышляет, то и в другом он тоже пакость готовит. Главное - не перестараться! Вдруг вы сами случайно забудете об этом правиле и решите с работы посканить роутер nmap-ом, например.

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

Настройка с помощью скрипта

Вводить каждое правило firewall с консоли руками очень быстро может надоесть, к тому же готовый скрипт легко сохранить "на память". В открытом WinBox выбираем System -> Scripts. В текстовом редакторе готовим скрипт правил, копируем его и жмем Run Script. Потом можно что-то добавить по мелочи, что-то подправить, а может и опять скриптом все...

Приведу пример скрипта настройки firewall:

/ip firewall filter # INPUT add chain=input connection-state=invalid action=drop comment="drop invalid connections" add chain=input connection-state=related action=accept comment="allow related connections" add chain=input connection-state=established action=accept comment="allow established connections" # ext input # local input add chain=input src-address=192.168.88.0/24 action=accept in-interface=!ether1-gateway # drop all other input add chain=input action=drop comment="drop everything else" # OUTPUT add chain=output action=accept out-interface=ether1-gateway comment="accept everything to internet" add chain=output action=accept out-interface=!ether1-gateway comment="accept everything to non internet" add chain=output action=accept comment="accept everything" # FORWARD add chain=forward connection-state=invalid action=drop comment="drop invalid connections" add chain=forward connection-state=established action=accept comment="allow already established connections" add chain=forward connection-state=related action=accept comment="allow related connections" add chain=forward src-address=0.0.0.0/8 action=drop add chain=forward dst-address=0.0.0.0/8 action=drop add chain=forward src-address=127.0.0.0/8 action=drop add chain=forward dst-address=127.0.0.0/8 action=drop add chain=forward src-address=224.0.0.0/3 action=drop add chain=forward dst-address=224.0.0.0/3 action=drop # (1) jumping add chain=forward protocol=tcp action=jump jump-target=tcp add chain=forward protocol=udp action=jump jump-target=udp add chain=forward protocol=icmp action=jump jump-target=icmp # (3) accept forward from local to internet add chain=forward action=accept in-interface=!ether1-gateway out-interface=ether1-gateway comment="accept from local to internet" # (4) drop all other forward add chain=forward action=drop comment="drop everything else" # (2) deny some types common types add chain=tcp protocol=tcp dst-port=69 action=drop comment="deny TFTP" add chain=tcp protocol=tcp dst-port=111 action=drop comment="deny RPC portmapper" add chain=tcp protocol=tcp dst-port=135 action=drop comment="deny RPC portmapper" add chain=tcp protocol=tcp dst-port=137-139 action=drop comment="deny NBT" add chain=tcp protocol=tcp dst-port=445 action=drop comment="deny cifs" add chain=tcp protocol=tcp dst-port=2049 action=drop comment="deny NFS" add chain=tcp protocol=tcp dst-port=12345-12346 action=drop comment="deny NetBus" add chain=tcp protocol=tcp dst-port=20034 action=drop comment="deny NetBus" add chain=tcp protocol=tcp dst-port=3133 action=drop comment="deny BackOriffice" add chain=tcp protocol=tcp dst-port=67-68 action=drop comment="deny DHCP" add chain=udp protocol=udp dst-port=69 action=drop comment="deny TFTP" add chain=udp protocol=udp dst-port=111 action=drop comment="deny PRC portmapper" add chain=udp protocol=udp dst-port=135 action=drop comment="deny PRC portmapper" add chain=udp protocol=udp dst-port=137-139 action=drop comment="deny NBT" add chain=udp protocol=udp dst-port=2049 action=drop comment="deny NFS" add chain=udp protocol=udp dst-port=3133 action=drop comment="deny BackOriffice" add chain=icmp protocol=icmp icmp-options=0:0 action=accept comment="echo reply" add chain=icmp protocol=icmp icmp-options=3:0 action=accept comment="net unreachable" add chain=icmp protocol=icmp icmp-options=3:1 action=accept comment="host unreachable" add chain=icmp protocol=icmp icmp-options=3:4 action=accept comment="host unreachable fragmentation required" add chain=icmp protocol=icmp icmp-options=4:0 action=accept comment="allow source quench" add chain=icmp protocol=icmp icmp-options=8:0 action=accept comment="allow echo request" add chain=icmp protocol=icmp icmp-options=11:0 action=accept comment="allow time exceed" add chain=icmp protocol=icmp icmp-options=12:0 action=accept comment="allow parameter bad" add chain=icmp action=drop comment="deny all other types" # (5) drop all other forward add chain=forward action=drop comment="drop (2) everything else"

Обратите внимание: этот скрипт не привязан к внешнему IP или MAC или чему-то уникальному. Его можно брать и использовать. Если вы ничего не меняли в своем роутере и обновили до версии 6.* после покупки, вам на всякий случай следует проверить название внешнего интерфейса и убедиться, что внутренняя сеть 192.168.88.0/24. И все.

ether1-gateway - внешний интерфейс, первый по счету. Это его имя по-умолчанию. Остальные порты - внутренние.

В секции ext input ничего нет - мне не нужно, чтобы кто-то подключался к роутеру. Если вам необходим удаленный доступ к роутеру, скажем, по ssh, то впишите команду:

add chain=input protocol=tcp dst-port=22 action=accept in-interface=ether1-gateway comment="allow remote ssh"

В секции OUTPUT хватило бы и последней команды (add chain=output action=accept comment="accept everything"), но для интереса я немного разделил по исходящим интерфейсам. Теперь при беглом просмотре будет видно, есть ли вообще трафик от роутера, и если есть, куда он идет - наружу или в локалку. Скажем, увидим, что был трафик наружу, уточним правила по протоколам (tcp, udp, icmp). Если будет еще интереснее, можно будет поставить правило для логирования определенного вида трафика. Особо не увлекайтесь, все-таки роутер не имеет кучи места под логи. Да и лишний раз напрягать слабенький процессор тоже не очень.

Последнее правило (5) никогда не будет выполняться, я его добавил сюда специально, чтобы продемонстрировать работу jump. Последнее правило для цепочки forward будет (4) drop.

Т.е. предположим, мы запросили исходящее соединение с удаленным ssh-сервером (т.е. из локальной сети через через цепочку forward, протокол tcp, dst-port 22). Дойдя до блока (1) jumping, выполнится переход в (2) deny для tcp. Т.к. в цепочке tcp нет решения по поводу tcp/22, то выполнение вернется к (3), которое выполнит forward нашего пакета. Если наш пакет не удовлетворит требованиям (3), следующее за ним правило (4) блокирует его.

Наглядно это очень интересно смотреть, когда в окне Firewall видишь счетчик пакетов по правилам.

Если вы начали подозревать, что 100500 правок выполняют уже невесть что, просто выделяете все правила брандмауэра и нажимаете delete. Затем снова Run Script ;)

Чтобы не листать всю простыню, можно отфильтровать листинг правил по цепочкам (фильтр вверху справа):

Запаситесь терпением, не экспериментируйте в состоянии ночного анабиоза и второпях. В принципе, это все.

08.12.2016 21:59 Serge

11.12.2016 17:25 bzzz

05.05.2017 23:18 alex099

28.10.2017 14:51 [email protected]

25.11.2017 10:24 Dehale

25.11.2017 10:27 Dehale