Разное

Mikrotik nat src nat: Настройка NAT на маршрутизаторе: Часть 3

Содержание

Ошибка настройки Source NAT на маршрутизаторах Mikrotik / Sandbox / Habr

Я столкнулся с интересной особенностью работы маршрутизаторов Микротик. В сети есть 3 VLAN, маршрутизацией между ними занимается Микротик и все бы хорошо, но иногда из сети выпадают хосты. При этом сам Микротик эти хосты видит, но трафик до них отправлять не хочет. Обычно проблема «самоликвидируются» после перезагрузки устройства. Второй особенностью поведения является странное поведение трафика – TCP и ICMP пакеты проходят нормально, а вот UDP теряются в недрах маршрутизатора. Манипуляции с таблицей маршрутизации не помогают. «Рассасывается» проблема так же как и появляется – сама без чьей либо помощи.

Причиной такого поведения является ошибка допускаемая при настройке Source NAT.
Обычно в инструкциях «микротик для чайников», NAT настраивают следующей командой:

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

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

Это можно отключить добавив в правиле NAT явное исключение для ваших локальных адресов. Ниже команда на примере сети 10.0.0.0/8

/ip firewall nat add chain=srcnat action=masquerade out-interface=Public dst-address=!10.0.0.0/8

Что весьма странно, судя по логике обработки пакетов Микротиком, правила статической маршрутизации должны отрабатывать до правил NAT.
Микротик тут не одинок, в Juniper тоже советуют явно указывать отключение NAT для локальных адресов:

rule 1 { 
        match {
            source-address 192.168.1.1/24;
            destination-address 10.10.10.1/24;
        }
        then {
            source-nat {                
                off;
            }

технология преобразования множества внутренних IP-адресов сети в один — asp24.

ru

   Резюме  

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

  Спецификации   

Требуемые пакеты: system

Необходимая лицензия: level1, level3

Уровень меню: /ip firewall nat

Стандарты и технологии: IP, RFC1631, RFC2663

Аппаратное обеспечение: Увеличивается с количеством правил.

  NAT   

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

Существует два типа NAT:

• исходящий NAT или srcnat. Этот тип NAT выполняется для пакетов, исходящих из natted сети. NAT маршрутизатор, при прохождении через него, заменяет персональный IP адрес исходящего пакета на новый общедоступный IP адрес. Обратная операция применяется к пакетам, следующим в противоположном направлении.

• входящий NAT или dstnat. Это тип NAT применяется для пакетов, которые следуют в natted сеть. В большинстве случаев применяется для того, чтобы сделать доступными хосты приватной сети для сети Интернет. NAT маршрутизатор, применяя действие dstnat, подменяет IP адреса назначения всех IP пакетов идущих через маршрутизатор в приватную сеть.

  Недостатки NAT  

У хостов, находящихся за NAT-маршрутизатором, нет возможности установить реальное соединение от хоста к хосту. Поэтому, некоторые Интернет протоколы могут не работать через NAT. Службы, требующие инициализации TCP соединения извне приватной сети или протоколы без запоминания состояния, такие как UPD, могут быть деструктированы. Более того, некоторые протоколы изначально не совместимы с NAT. Например, AH протокол из набора IPsec.

RouterOS включает в себе множество, так называемых, NAT помощников, которые включают NAT отслеживания для различных протоколов.

  Redirect и Masquerade  

Redirect и Masquerade это специальные формы dstnat и srcnat, соответственно. Redirect подобен стандартному dstnat, так же как и Masquerade подобен srcnat. Masquerade является формой srcnat, но без необходимости уточнения to-address – IP адрес исходящего интерфейса назначается автоматически. Redirect является формой dstnat, без использования to-address – вместо него используется IP адрес входящего интерфейса. Примечание: для Redirect значащим правилом является to-ports, которое является портом службы на маршрутизаторе, способным ответить на этот запрос (как например web proxy).

Когда над пакетом производится действие dstnat (будь то action=nat или action=redirect), адрес назначения изменяется. Информация о трансляции адресов, включающая в себя настоящий адрес назначения, находится во внутренних таблицах маршрутизатора. Прозрачный web-прокси, работающий на маршрутизаторе (когда web запрос перенаправляется на порт прокси маршрутизатора), получает эту информацию из таблиц и, соответственно, получает из них и адрес web сервера. Если выполняется действие dstnat для других прокси серверов, то не существует другой возможности получить адрес web сервера из IP заголовка пакета (потому что адрес назначения IP пакета предварительно был изменен на адрес прокси сервера). Начиная с HTTP/1.1, используется специальный заголовок HTTP запроса, в котором находится адрес web сервера. Так прокси сервер может использовать его, вместо dst адреса IP пакета. Если нет этого заголовка (старые версии HTTP клиента), прокси сервер не может определить адрес web сервера и поэтому не может работать.  

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

 

  Описание свойств  

 action(accept | add-dst-to-address-list | add-src-to-address-list | dst-nat | jump | log | masquerade | netmap | passthrough | redirect | return | same | src-nat; default: accept) — предпринимаемое действие, если пакет соответствует правилу: 

 • accept — принять пакет. Ничего не делать, т.е. пакет проследует через маршрутизатор и не одно правило не будет применено к нему; 

 • add-dst-to-address-list — добавить адрес назначения IP пакета в список адресов, определенный параметром address-list; 

 • add-src-to-address-list — добавить адрес источника IP пакета в список адресов, определенный параметром address-list; 

 • dst-nat — подменить адрес назначения IP пакета на значение, определенное в параметре to-address и в to-ports; 

 • jump — переход в цепочку, определенную значением параметра jump-target; 

 • log — каждое правило, совпадающее с этим правилом, будет записано в системный журнал; 

 • masquerade — замена адреса источника IP пакета на автоматически определенный адрес средствами маршрутизации; 

 • netmap – часто используется для распределения общедоступных IP адресов между хостами локальной сети; 

 • passthrough — игнорировать это (текущее) правило и перейти к следующему; 

 • redirect — заменяет адрес назначения IP пакета на один из локальных адресов; 

 • return — вернуться назад в правило, из которого был произведен переход jump; 

 • same — выдать клиенту некоторый IP адрес источника/назначения из имеющегося диапазона для каждого соединения. Этот метод чаще всего используется для служб, ожидающих некоторого клиентского адреса для множественных подключений от одного клиента 

 • src-nat — заменяет адрес источника IP пакета на значение, определенное в параметрах to-address и to-ports. 

 address-list(name) – имя из списка адресов, в котором собранны IP адреса за правилом action=add-dst-to-address или action=add-src-to-address-list. Этот список адресов впоследствии может быть использован для согласования пакетов. 

 address-list-timeout(time; default: 00:00:00) – интервал, после которого, адрес будет удален из списка адресов, определенного в address-list. Используется в паре с действиями add-dst-to-address-list или add-src-to-address-list: 

 • 00:00:00 — оставить адрес в списке адресов навсегда. 

 chain(dstnat | srcnat | name) — добавление в цепочку определенного правила. То есть, в случае, когда различный трафик должен проходить через различные цепочки, всегда будьте осторожны при выборе правильной цепочки для нового правила. Если при вводе не будет совпадения с названием уже существующей цепочке, то будет создана новая цепочка: 

 • dstnat – правило, находящееся в этой цепочке, применяется до маршрутизации. Здесь находятся правила, подменяющие адреса назначения IP пакета; 

 • srcnat – правило, находящееся в этой цепочке, срабатывает после маршрутизации. Здесь находятся правила, подменяющие адреса исходящих IP пакетов. 

 comment(text) — наглядный комментарий к правилу. Комментарий может быть использован для идентификации правила из сценария. 

 connection-bytes(integerinteger) — соответствие пакетов в случае, если определенное количество байт было передано через определенное соединение: 

 • 0 – бесконечность. Например, connection-bytes=2000000-0 для проверки пакетов используется это правило, в том случае, если более чем 2Мб прошло через выбранное соединение. 

 connection-limit(integernetmask) — ограничить количество соединений по адресу или по блоку адресов (применяется, если определённое количество соединений уже было установлено).  

 connection-mark(name) — соответствие пакетов, промаркированных средством mangle специфической меткой соединения. 

 connection-type(ftp | gre | h423 | irc | mms | pptp | quake3 | tftp) — проверка пакетов из связанных соединений, использующих информацию о них (соединениях), получаемую от их трассирующих помощников. Соответствующие вспомогательные соединения должны быть разрешены в /ip firewall service-port. 

 content(text) – текст, который должны содержать текстовые пакеты для соответствия правилу. 

 dscp (integer: 0..63) — значение поля IP-заголовка DSCP (ex-ToS). 

 dst-address(IP adressnetmaskIP addressIP address) — выбранный диапазон адресов назначения IP пакета. Примечание: запись правильного сетевого адреса в консоли в формате address/netmask т.е.: 1.1.1.1/24 будет конвертирована в 1.1.1.0/24. 

 dst-address-list(name) — соответствие назначенного адреса пакета списку адресов, определенному пользователем.  

 dst-address-type(unicast | local | broadcast | multicast) — соответствие адреса назначения по типу одного из перечисленных IP пакетов: 

 • unicast — IP адрес, используемый одной точкой для соединения с другой точкой. В данном случае существует только один отправитель и один получатель; 

 • local — соответствующие адреса, прикрепленные к маршрутизатору; 

 • broadcast — IP пакет посылаемый от точки к другим точкам подсети; 

 • multicast — этот тип IP адресация используется для передачи от одной или более точек к другим точкам. 

 dst-limit(integertimeintegerdst-address | dst-port | src-addresstime) — ограничение количества пакетов в секунду, направленных на IP адрес или порт назначения. Каждый IP адрес/порт назначения владеет собственным ограничением. Опции перечислены ниже (в порядке появления): 

 • Count — максимальная средняя интенсивность потока, измеряемая количеством пакетов в секунду (pps), если не сопровождается опцией Time; 

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

 • Burst — число пакетов соответствующих пику; 

 • Mode — классификатор для ограничения интенсивности пакетов; 

 • Expire — определенный интервал времени, по истечении которого записанный IP адрес/порт будет удален.  

 dst-port(integer: 0..65535 integer: 0..65535) – номер или диапазон номеров порта назначения. 

 fragment(yes|no) — является ли пакет фрагментом IP пакета. Стартовый пакет(т.е первый фрагмент) не учитывается. Примечание: при включенном трассировщике соединений, фрагментов не будет, так как система автоматически присоединит каждый пакет. 

 hotspot(multiple choice: from-client | auh | local-dst) — соответствие пакетов, полученных от клиентов при различных Hot-Spot условиях. Все значения могут быть отвергнуты: 

 • auth – правда, если пакет пришел от аутентифицированного клиента; 

 • from-client – правда, если пакет пришел от HotSpot клиента; 

 • http — правда, если HotSpot клиент посылает пакет на адрес и порт, ранее определенный как его прокси сервер (Universal Proxy technique) или если порт назначения 80 и включено прозрачное проксирование для данного клиента; 

 • local-dst – правда, если пакет имеет локальный IP-адрес назначения; 

 • to-client — правда, если пакет посылается клиенту.  

 icmp-options(integerinteger) — соответствие ICMP типу: кодовое поле. 

 in-bridge-port(name) — актуальный интерфейс, на который заходит пакет, следующий через маршрутизатор (если интерфейсом является мост, то это свойство соответствует актуальному порту моста, пока in-interface ? мост). 

 in-interface(name) — интерфейс, на который заходит пакет, следующий через маршрутизатор (если интерфейсом является мост, то исходящий из мостового интерфейса пакет создастся самостоятельно).

 ingress-priority(integer: 0..63) – INGRESS (полученный) приоритет пакета, если установлен (в противном случае ? 0). Приоритет может быть получен также от VLAN или WMM. 

 ip4-options(any | loose-source-routing | no-record-route | no-route-alert | no-source-routing) — соответствующие опции заголовков ipv4: 

 • any — соответствие не менее чем одному заголовку ipv4; 

 • loose-source-routing – пакеты, соответствующие опции маршрутизация через заданные узлы. Эта опция используется для маршрутизации интернет дейтаграмм, базирующихся на информации поставляемой источником; 

 • no-record-route – определяет пакеты без опции записи маршрута. Эта опция используется для маршрутизации интернет дейтаграмм, базирующихся на информации, поставляемой источником; 

 • no-route-alert — пакеты, соответствующие предупреждению «нет маршрута»; 

 • no-source-routing — пакеты, соответствующие опции «нет источника маршрутизации»; 

 • no-timestamp — соответствие пакетов опции отсутствия временной отметки; 

 • record-route – соответствие пакетов опции записи; 

 • route-alert — соответствие пакетов опции записи маршрута; 

 • strict-source-routing — соответствие пакета опции статического маршрута; 

 • timestamp – соответствие пакетов опции временной отметки. 

 jump-target(dstnat | srcnat name) — название цепочки в которую совершается переход, если используется опция action=jump. 

 layer7-protocol(name) — Layer 7 – название фильтра, установленного в меню /ip firewall layer7-protocol. Предостережение: при использовании необходима большая вычислительная мощность. 

 limit(integertimeinteger) — ограничивает интенсивность пакетов, согласно заданному лимиту. Используется для уменьшения количества записей в системном журнале: 

 • Count — максимальная средняя интенсивность пакетов, измеряется в пакетах в секунду(pps), если не сопровождается опцией Time; 

 • Time — определяет временной интервал, в течение которого будет происходить измерение интенсивности пакетов; 

 • Burst — количество пакетов, соответствующих пику. 

 log-prefix(text) — все сообщения будут включать в себя префикс описанный здесь. Используется в паре с action=log. 

 nth(integerinteger: 0…15integer) — определенный Nth пакет, полученный в соответствии с правилом. Может использоваться один из 16 доступных счетчиков пакетов: 

 • Every — каждое соответствие Every+1th пакету. Для примера, если Every=1, тогда правило соответствия отрабатывается на каждом 2-ом пакете; 

 • Counter — счётчик. Счётчик инкрементируется каждый раз, когда в правиле содержится соответствие n-ому пакету; 

 • Packet — соответствие отдельно взятого пакета. Значение должно находится между 0 и Every. Если эта опция использована для конкретно взятого счетчика, тогда правило должно срабатывать для не менее чем Every+1th вместе с этой опцией, перекрывая тем самым все значения между 0 и Every включительно. 

 out-bridge-port(name) — актуальный интерфейс, через который транзитный пакет покидает маршрутизатор (если это мост, то это свойство соответствует актуальному порту моста до тех пор, пока out-interface является мостом). 

 out-interface(name) – интерфейс, через который пакет покидает маршрутизатор (если интерфейс настроен как мост, то пакет самостоятельно появится, чтобы уйти через мостовой интерфейс). 

 packet-mark(name) — соответствие пакетов, промаркированных средствами mangle специфическими метками пакетов.  

 packet-size(integer: 0..65535integer: 0..65535) — соответствие пакета определенному размеру или диапазону размеров, указанном в байтах: 

 • Min — значение, определяющее нижнюю границу диапазона или конкретное значение; 

 • Max — значение, определяющее верхнюю границу диапазона. 

 port(port) – соответствует, если любой (источник или назначение) порт соответствует определенному списку портов или диапазону портов (примечание: при этом должен быть выбран протокол, также как и при использовании соответствий src-port и dst-port). 

 protocol(ddp | egp | encap | ggp | gre | hmp | icmp | idrp -cmtp | igmp | ipencap | ipip | ipsec -ah |ipsec-esp | iso-tp4 | ospf | pup | rdp | rspf | st | tcp | udp | vmtp | xns -idp | xtp | integer) — соответствие IP протоколу, определенному по имени или по номеру. Для определения портов необходимо определить протокол. 

 psd(integertimeintegerinteger) — попытки обнаружения TCP и UDP сканеров. Этот механизм рекомендуется применять для назначения более низкого приоритета портам с более высоким номером, чтобы уменьшить частоту отрицательных ответов, как например, при пассивном режиме передачи через FTP: 

 • WeightTreshold — общий объем последних TCP/UDP пакетов, пришедших на порты, отличные от портов назначения, от одного хоста должны быть обработаны как сканер портов; 

 • DelayThreshold — задержка пакета, пришедшего на порт, отличный от порта назначения и пришедшие от одного хоста должны быть обработаны как сканер портов; 

 • LowPortWeight — объем пакетов с привилегированными(<=1024) портами назначения; 

 • HighPortWeight — объем пакетов, не имеющих привилегий к портам назначения. 

 random(integer) — согласовывает пакеты случайно, с заданной вероятностью. 

 routing-mark(name) — соответствия пактов промаркированных средствами mangle, с маркировкой маршрута. 

 same-not-by-dst(yes | no) — менять или не менять адрес назначения для пакетов, отобранных по правилам action=same 

 src-address(IP addressnetmaskIP addressIP address) — определяет диапазон адресов, от которых пришел IP-пакет. Примечание: консоль конвертирует ввод значения address/netmask в действительный адрес, т.е. 1.1.1.1/24 конвертируется в 1.1.1.0/24. 

 src-address-list(name) — — соответствие адреса источника пакета списку адресов, определенному пользователем. 

 src-address-type(unicast | local | broadcast | multicast) – соответствие типа адреса источника IP-пакета, одному из: 

 • unicast — IP адрес, использующийся для передачи от одной точки к другим. В данном случае есть только один отправитель и один получатель; 

 • local — соответствие адресов, назначенных интерфейсам маршрутизатора; 

 • broadcast – IP-пакет, посылаемый от одной точки ко всем другим точкам IP-подсети; 

 • multicast — этот тип IP адресации предназначен для передачи от одной или более точек к множеству других точек. 

 src-mac-address(MAC address) — MAC адрес источника 

 src-port(integer: 0. .65535integer: 0..65535) — номер или диапазон номеров порта источника. 

 tcp-mss(integer: 0..65535) — соответствия значению TCP MSS IP пакета. 

 time(timetimesat | fri | thu | wed | tue | mon | sun) — позволяет создать фильтр, основанный на дате и времени поступления пакета или на дате и времени отправления для локально сгенерированных пакетов. 

 to-addresses(IP addressIP address; default: 0.0.0.0) — адрес или диапазон адресов, предназначенных для подмены оригинального адреса IP пакета. 

 to-ports(integer: 0..65535-integer: 0..65535) — порт или диапазон портов, предназначенных для подмены оригинального порта IP пакета. 

  

NAT приложения  

 В этой секции будет описаны NAT приложения и примеры к ним. 
 Предположим, что вы хотите, чтобы ваш маршрутизатор делал следующее: 
 • «скрывал» локальную сеть одним адресом; 
 • предоставлял общественный (Public) IP локальному серверу; 
 • создать отображение 1:1 сетевых адресов.  

 Пример исходящего NAT(Masquerading) 

Если вы хотите «скрыть» локальную сеть 192.168.0.0/24 одним адресом 10.5.8.109, выданным вам представителем Интернет услуг, вам необходимо использовать трансляцию адреса источника. Например, при помощи (masquerading) средства MikroTik маршрутизатора. Masquerading будет подменять IP адрес и порт источника пакета, порожденного в сети 192.168.0.0/24, на адрес маршрутизатора 10.5.8.109, когда пакет будет проходить через него. Для использования masquerading, в конфигурацию межсетевого экрана необходимо добавить действие ‘masquerading’: 

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

 Во всех исходящих соединениях из сети 192.168.0.0/24 адрес источника будет изменен на адрес маршрутизатора 10.5.8.109 и порт источника будет выше 1024. Доступ к локальным адресам из Интернета не возможен. Если вы хотите разрешить соединения к серверу в локальной сети, то вам необходимо использовать трансляцию адреса назначения(DST -NAT).  

 

 Пример использования DST-NAT

Если вы хотите выставить наружу хост с адресом 192.168.0.109 так, чтобы он выглядел как 10.5.8.200, то вам необходимо использовать трансляцию адреса назначения. Если вы хотите позволить локальному серверу общаться с внешним IP адресом, то вам необходимо использовать трансляцию исходящего адреса.  

Для начала добавляем реальный IP адрес на внешний интерфейс: 

 /ip address add address=10.5.8.200/ 32 interface=Public

 Добавляем правило, разрешающее доступ к локальному серверу из внешней сети: 

 /ip firewall nat add chain=dstnat dst -address=10.5.8.200 action=dst –nat \

to-addresses=192.168.0.109

 Добавляем правило для трансляции исходящего адреса локального сервера а адрес 10.5.8.200: 

 /ip firewall nat add chain=srcnat src -address=192.168.0.109 action=src-nat \

to-addresses=10.5.8.200

 

  Пример отображения сетевых адресов

Если вы хотите объединить сеть 11. 11.11.0/24 с сетью 2.2.2.0/24, то вам необходимо использовать трансляцию адреса источника и адреса назначения в паре с действием action=netmap 

 /ip firewall nat add chain=dstnat dst -address=11.11.11.1-11.11.11.254 \

action=netmap to-addresses=2.2.2.1-2.2.2.254

/ip firewall nat add chain=srcnat src-address=2.2.2.1-2.2.2.254 \

action=netmap to-addresses=11.11.11.1-11.11.11.254

 

Доступность ресурсов dst-nat через VPN

Доступ к ресурсам через VPN.

Очень часто нас спрашивают, примерно такой вопрос.

«У нас есть два филиала, и мы хотим предоставить доступ к внутренним ресурсам второго филиала, через публичный адрес первого филиала»

Для того чтобы понять какой кейс мы будем решать, необходима схема и её некоторое описание.

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

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

Опишем задачу, в сети R1 есть веб сервер с адресом 192.168.1.100 при попытки внешнего клиента установить соединение с сервером через маршрутизатор R1, он должен успешно установить соединение. Точно также если клиент попытается установить соединение с данным сервером через маршрутизатор R2, он сделать это успешно.

В сети маршрутизатора R2 есть сервис SMTP 25 порт TCP с адресом 192.168.2.25, точно также, как и веб сервис, он должен быть доступен через оба маршрутизатора.

Давайте настроим первым делом маршрутизаторы, то, как вы это делаете обычно.

На R1

/system identity set name=R1
/ip address add interface=ether1 address=1.1.1.2/30
/ip address add interface=ether2 address=192.168.1.1/24

На R2

/system identity set name=R2
/ip address add interface=ether1 address=2.2.2.2/30
/ip address add interface=ether2 address=192.168.2.1/24

Мы не будем учитывать настройку фильтра firewall, это требует отдельной большой статьи, а то и курса, как минимум MTCNA. Я надеюсь, вы знаете, как надо настраивать firewall MikroTik.

Также нам необходимо настроить NAT. Настраиваем как обычно, без каких либо излишеств.

На R1

/ip firewall nat 
add in-interface=ether1 protocol=tcp dst-port=80,443 action=dst-nat to-address=192.168.1.100
add in-interface=ether1 protocol=tcp dst-port=25 action=dst-nat to-address=192.168.2.25 

На R2

/ip firewall nat 
add in-interface=ether1 protocol=tcp dst-port=80,443 action=dst-nat to-address=192.168.1.100
add in-interface=ether1 protocol=tcp dst-port=25 action=dst-nat to-address=192.168.2.25

src-nat не привел в примере, так как он может быть у вас разный, он не как не скажется на работу сервисов. Вы должны самостоятельно сделать правило, как минимум masquerade.

обратите внимание, что dst-nat у нас правила на обоих маршрутизаторах одинаковые, можно добавить ещ1ё в фильтр dst-address, но тут всё зависит от конкретной реализации.

VPN

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

Создадим самый простой VPN на основе IP инкапсуляции.

На R1

/interface ipip add local-address=1.1.1.2 remote-address=2.2.2.2 name=R1-to-R2
/ip address add interface=R1-to-R2 address=172.16.31.1/30

На R2

/interface ipip add local-address=2.2.2.2 remote-address=1.1.1.2 name=R1-to-R2
/ip address add interface=R1-to-R2 address=172.16.31.2/30

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

Создали туннель и назначили на него IP адрес с сетью /30.

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

На R1

/ip route add dst-addres=192.168.2.0/24 gateway=172.16.31.2

На R2

/ip route add dst-addres=192.168.1.0/24 gateway=172.16.31.1

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

И даже доступным сервисы, но только не сервисы, которые идут через dst-nat в другой филиал.

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

Самая главная причина, в том, что когда от сервера приходит пакет в ответ на существующее соединение, маршрутизатора R2 отправляет пакет через себя в интернет, а нам необходимо, чтобы он его доставил на R1, а также он отправляет его «в чём мать родила», без подмены адреса источника. Хотя подмена и не нужна, но в такой ситуации вы компрометируете свою внутреннюю сеть, как минимум перед провайдером.

Что делать?

Нам необходимо заставить маршрутизатор R2 отправить такие пакеты обратно в VPN на R1. А так как у нас зеркальная ситуация, тоже самое будет происходить и на R1 нам необходимо внести настройки на оба маршрутизатора.

Первым делом нам необходимо промаркировать все соединения, который поступают с VPN туннеля, но будет не все подряд, а только new, и только с адресов интернета.

На R1

/ip firewall mangle 
add chain=prerouting in-interface=R1-to-R2 connection-state=new src-address-list=!BOGON   action=mark-connection new-connection-mark=R1-to-R2

На R2

/ip firewall mangle 
add chain=prerouting in-interface=R1-to-R2 connection-state=new src-address-list=!BOGON action=mark-connection new-connection-mark=R1-to-R2

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

Теперь, у нас все соединения который были противоположенным маршрутизатор перенаправлены на через VPN c помощью dst-nat имеют имя R1-to-R2.

Далее нам необходимо всего лишь перенаправить весь трафик из локальной сети, в данном соединении обратно в VPN.

На R1

/ip firewall mangle 
add chain=prerouting in-interface=!R1-to-R2 connection-mark=R1-to-R2 action=mark-routing new-routing-mark=R1-to-R2

На R2

/ip firewall mangle 
add chain=prerouting in-interface=!R1-to-R2 connection-state=new src-address-list=!BOGON action=mark-connection new-connection-mark=R1-to-R2

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

На R1

/ip route
add gateway=172.16.31.2 routing-mark=R1-to-R2
/ip route rule
add action=lookup-only-in-table routing-mark=R1-to-R2 table=R1-to-R2

На R2

/ip route
add gateway=172.16.31.1 routing-mark=R1-to-R2
/ip route rule
add action=lookup-only-in-table routing-mark=R1-to-R2 table=R1-to-R2

И собственно всё, неважно какой у вас тип туннеля, хоть витая пара, хоть оптика или L2VPN от провайдера, главное чтобы на интерфейсе была адресация.

Рассказать друзьям

Чатик телеграм

Как настроить MikroTik — Начальная настройка

Как настроить MikroTik — Начальная настройка

В этой статье вы узнаете как быстро настроить RouterOS MikroTik для работы в простом варианте, который подойдет многим не большим офисам, домашней сети и т.д.

Итак, допустим имеем канал доступа к сети Internet, локальную сеть на 5-ть компьютеров, 1 из которых сервер, необходимо разрешить работу рядовым пользователям по стандартным протоколам (http, https, icq, jabber, ftp), для рабочего места системного администратора сделать полный доступ к сети, разрешить работу почтового, фтп и web сервера.

IP адреса локальной сети:

  • Mikrotik — 192.168.0.1
  • PC 5 — 192.168.0.2
  • PC 4 — 192.168.0. 10
  • PC 1 — 192.168.0.20
  • PC 2 — 192.168.0.21
  • PC 3 — 192.168.0.22

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

Шаг 1. Подключимся к маршрутизатору локально на консоль, и чтобы обезопасить пользователя admin от взлома отключим его, а вместо него заведем нового.

[admin@MikroTik] > use add name=mkt password=P@S#w0Rd group=full
[admin@MikroTik] > quit

заходим под новым пользователем и отключаем admin-а

[mkt@MikroTik] > user disable admin
[mkt@MikroTik] > user print
Flags: X - disabled 
# NAME GROUP ADDRESS 
0 X;;; system default user
admin full 0.0.0.0/0 
1 mkt full 0.0.0.0/0

Шаг 2. Настройка интерфейсов.

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

Сперва попробуем настроить интерфейсы при помощи мастера. Набираем команду “setup”.

[mkt@MikroTik] > setup
Setup uses Safe Mode. It means that all changes that are made during setup are
reverted in case of error, or if 
Ctrl-C is used to abort setup. To keep changes exit setup using the 'x' key.
[Safe Mode taken]
Choose options by pressing one of the letters in the left column, before dash.
Pressing 'x' will exit current 
menu, pressing Enter key will select the entry that is marked by an '*'. You can
abort setup at any time by 
pressing Ctrl-C.
Entries marked by '+' are already configured.
Entries marked by '-' cannot be used yet.
Entries marked by 'X' cannot be used without installing additional packages.
r - reset all router configuration
+ l - load interface driver
+ a - configure ip address and gateway
d - setup dhcp client
* s - setup dhcp server
p - setup pppoe client
t - setup pptp client
x - exit menu
your choice [press Enter to setup dhcp server]:

Нажимаем a, в появившемся меню нажимаем a, набираем имя первого интерфейса, указываем IP адрес.

+ a - add ip address
+ g - setup default gateway
* x - exit menu
your choice: a
enable interface: ether1
ip address/netmask: 192.168.1.116/24
#Enabling interface
/interface enable ether1
#Adding IP address
/ip address add address=192.168.1.116/24 interface=ether1 comment=added by setup

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

+ a - add ip address
+ g - setup default gateway
* x - exit menu
your choice: a
enable interface: ether2
ip address/netmask: 192.168.0.1/24 
#Enabling interface
/interface enable ether2
#Adding IP address
/ip address add address=192.168.0.1/24 interface=ether2 comment=added by setup

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

your choice: g
gateway: 192.168.1.249
#Adding default route
/ip route add dst-address=0.0.0.0/0 gateway=192.168.1.249 comment=added by setup

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

Испробуем второй вариант настройки — ручной.

Смотрим список доступных интерфейсов.

[mkt@MikroTik] > interface print 
Flags: D - dynamic, X - disabled, R - running, S - slave 
# NAME TYPE MTU 
0 R ether1 ether 1500 
1 R ether2 ether 1500

Активируем интерфейс 0, который будет подключен к провайдеру и зададим ему ip адрес.

[mkt@MikroTik] > interface enable 0 
[mkt@MikroTik] > ip address add address=192.168.1.116/24 interface=ether1 
[mkt@MikroTik] > ip address print 
Flags: X - disabled, I - invalid, D - dynamic 
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.1.116/24 192.168.1.0 192.168.1.255 ether1

Проделаем туже про процедуру с локальным интерфейсом.

[mkt@MikroTik] > interface enable 1 
[mkt@MikroTik] > ip address add address=192.168.0.1/24 interface=ether2 
[mkt@MikroTik] > ip address print 
Flags: X - disabled, I - invalid, D - dynamic 
# ADDRESS NETWORK BROADCAST INTERFACE
0 192.168.1.116/24 192. 168.1.0 192.168.1.255 ether1
1 192.168.0.1/24 192.168.0.0 192.168.0.255 ether2

Ну и наконец добавим шлюз по умолчанию.

[mkt@MikroTik] > ip route add gateway=192.168.1.249 
[mkt@MikroTik] > ip route print 
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip,
b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE 
0 A S 0.0.0.0/0 192.168.1.249 r... 1
1 ADC 192.168.0.0/24 192.168.0.1 ether2 0
2 ADC 192.168.1.0/24 192.168.1.116 ether1 0

Теперь дальнейшую настройку можно продолжить с помощью графической оболочки “winbox,” но так как мы начали с консоли, то пройдем весь путь до конца в консоли, а потом повторим сделанное, начиная с шага 3 в графическом интерфейсе.

Шаг 3. Настройка DNS.

[mkt@MikroTik] > ip dns set primary-dns=208.67.222.222 secondary-dns=208.67.220.220
allow-remote-requests=yes
[mkt@MikroTik] > ip dns print 
primary-dns: 208. 67.222.222 
secondary-dns: 208.67.220.220 
allow-remote-requests: yes 
max-udp-packet-size: 512 
cache-size: 2048KiB 
cache-max-ttl: 1w 
cache-used: 5KiB

Шаг 4. Настройка доступа к сети интернет.

Сперва включаем маскардинг.

[mkt@MikroTik] > ip firewall nat add chain=srcnat action=masquerade
out-interface=!ether2

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

[mkt@MikroTik] > ip firewall filter add chain=forward connection-state=invalid
action=drop comment=Drop invalid connection packets
[mkt@MikroTik] > ip firewall filter add chain=forward connection-state=established
action=accept comment=Allow established connections
[mkt@MikroTik] > ip firewall filter add chain=forward connection-state=related
action=accept comment=Allow related connections
[mkt@MikroTik] > ip firewall filter add chain=forward protocol=udp
action=accept comment=Allow UDP
[mkt@MikroTik] > ip firewall filter add chain forward protocol=icmp
action=accept comment=Allow ICMP Ping

Дальше добавляем правила для машины PC4.

[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=80 action=accept comment=Allow http for server (in)
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32
protocol=tcp dst-port=80 action=accept comment=Allow http for server (out)
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=25 action=accept comment=Allow smtp for server (in)
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32
protocol=tcp dst-port=25 action=accept comment=Allow smtp for server (out)
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=110 action=accept comment=Allow pop for server (in)
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32
protocol=tcp dst-port=110 action=accept comment=Allow pop for server (out)

Таким же образом задаем правила для остальных машин, разрешая им http, https, ftp, icq, jabber.

[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=80 action=accept comment=Allow http for pc1 (in)
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=80 action=accept comment=Allow http for pc1 (out)
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=443 action=accept comment=Allow https for pc1 (in)
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=443 action=accept comment=Allow https for pc1 (out)
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=21 action=accept comment=Allow ftp for pc1 (in)
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=21 action=accept comment=Allow ftp for pc1 (out)
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192. 168.0.20/32
protocol=tcp src-port=5190 action=accept comment=Allow icq for pc1 (in)
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=5190 action=accept comment=Allow icq for pc1 (out)
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=5222 action=accept comment=Allow jabber for pc1 (in)
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=5222 action=accept comment=Allow jabber for pc1 (out)

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

[mkt@MikroTik] > ip firewall filter add chain=forward action=drop comment=Drop all

Шаг 5. Входящие.

Теперь надо разрешить что бы входящие соединения по http, smtp и pop автоматически попадали бы на сервер.

[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192. 168.1.116/32
protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.0.2 to-ports=80
comment=NAT for http
[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.1.116/32
protocol=tcp dst-port=25 action=dst-nat to-addresses=192.168.0.2 to-ports=25
comment=NAT for smtp
[mkt@MikroTik] > ip firewall nat add chain=dstnat dst-address=192.168.1.116/32
protocol=tcp dst-port=110 action=dst-nat to-addresses=192.168.0.2 to-ports=110
comment=NAT for pop

Если мы говорим про абсолютный минимум и простоту, это на этом все. Какие действия были сделаны?

  • Были включены два интерфейса ether1 и ether2.
  • Назначены ip адреса для интерфейсов.
  • Назначен шлюз по умолчанию.
  • Заданы DNS сервера.
  • Прописаны правила для машин с неограниченным доступом.
  • Прописаны правила для машин с ограниченным доступом по портам.
  • Прописаны правила преобразования сетевых адресов для доступа из вне к веб и почтовому серверам.

Теперь давайте вернемся к шагу №3 и сделаем все те же действия, но уже в графической оболочке “winbox”, что бы ее скачать необходимо зайти в веб интерфейс mikrotik-а, так называемый “webbox”, и скачать с главной страницы программку.

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

Шаг 3. Настройка DNS.

В графическом интерфейсе все не намного сложнее чем в консоли. Выбираем в основном меню раздел “IP”, в нем подменю “DNS”.

Здесь можно задавать статические DNS записи, а также просматривать что сейчас есть в кэше. Нажимаем на кнопочку “Settings” и указываем адреса DNS серверов.

Шаг 4. Настройка доступа к сети интернет.

Включаем маскардинг. Основное меню “IP”, в подменю “firewall”, вкладка “NAT”.

Что бы добавить новую запись нажимаем на плюсик. А дальше все тоже самое, что и в консоли, на вкладке “General” chain=srcnat, Out interface=ether2 и ставим галочку, что означает НЕ, вкладка “Action” выбираем “masquerade”.

Все параметры, которые набираются в консоли на 100% совпадают с названиями в графическом интерфейсе.

Выбираем в основном меню раздел “IP”, в нем подпункт “firewall”, в появившемся окне выбираем вкладку “Filter Rules”. Для добавления нового графика нажимаем на плюсик.

Разрешаем UDP.

Разрешаем исходящие соединения с адреса 192.168.0.2 к любым адресам по порту назначения 25, используюя протокол tcp.

Ну и под конец запрещаем все остальное, что не разрешили выше.

Шаг 5. Входящие.

Выбираем в основном меню раздел “IP”, в нем подпункт “firewall”, в появившемся окне выбираем вкладку “NAT”. Для добавления нового графика нажимаем на плюсик.

Перенаправляем все соединения, приходящие на внешний адрес 192.168.1.116 по протоколу tcp, 25 порт на локальный адрес 192.168.0.2 на порт 25.
По такому же принципу строятся все остальные правила.

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

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

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

Netmap vs dst-nat в MikroTik | ekdeus.me

Netmap — это преобразование одной подсети в другую 1:1
Как следствие это действие доступно в обоих цепочках NAT (srcnat и dstnat)

В Микротике управление NAT’ом находится в разделе IP->Firewall->NAT:

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

В поле Action выбираем dst-nat -или netmap. Отличие dst nat от netmap заключается в том, что netmap новый и улучшенный вариант dst nat. Поэтому я использую его.

В поле To Address прописываем адрес под котором нужно что бы наша сеть выходила в интернет.

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

Accept – принять будет принят и пройдет через маршрутизатор без изменений

add-dst-to-address-list — добавить address назначения в список адресов, заданный параметром address-list

add-src-to-address-list — добавить address источника в список адресов, указанный параметром address-list

dst-nat — заменяет address назначения и / или порт IP-пакета на значения, заданные параметрами-адресами и портами, этот параметр бвыше был рассмотрен

jump — переход к определяемой пользователем цепочке, заданной значением параметра target-jump

log — добавить сообщение в системный журнал, содержащий следующие данные: in-interface, out-interface, src-mac, protocol, src-ip: port-> dst-ip: порт и длина пакета. После согласования пакета он переходит к следующему правилу в списке, аналогично переходу

masquerade — Маскарад рассмотренный в начале статьи. Подмена внутреннего адреса машины из локальной сети на адрес роутера;

netmap — создает статическое отображение 1: 1 одного набора IP-адресов другому. Часто используется для распространения общедоступных IP-адресов на хосты в частных сетях

passthrough — если пакет соответствует правилу, увеличьте счетчик и перейдите к следующему правилу (полезно для статистики).

passthrough — заменяет порт назначения IP-пакета на один, заданный параметром-портом-портом и адресом назначения на один из локальных адресов маршрутизатора

return — передает управление обратно в цепочку, откуда произошел прыжок

same — дает конкретному клиенту один и тот же IP-адрес источника / получателя из заданного диапазона для каждого соединения. Это чаще всего используется для служб, ожидающих одного и того же адреса клиента для нескольких подключений от одного и того же клиента

src-nat — заменяет исходный адрес IP-пакета на значения, заданные параметрами to-addresses и to-ports

Настройка firewall Mikrotik

главная
— Статьи — Mikrotik

Дата обновления: 17. 09.2020

Теги: Mikrotik

Разделы:

Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

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

Итак, имеем роутер 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.

Дальше все как в нормальных взрослых железках, по tab автодополнение команд и др. Вам понравится!

При вводе команд учтите, что внесенные изменения применяются сразу же, поэтому не заблокируйте сами себя. После ввода команд новые правила будут доступны для редактирования через 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 😉

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

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

Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Авторизуйтесь для добавления комментариев!

Проброс портов на роутер Микротик (Mikrotik)

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

Практическому внедрению этой технологии с помощью роутера MikroTik посвящена статья.

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

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

Рассмотрим работу этого механизма и отладку проброса на примере роутера MikroTik. Цель перенаправления — дать доступ цифровой видеокамере, работающей по IP-протоколу (IP-адрес устройства — 192.168.88.252, веб-интерфейс синхронизирован с 50 портом).

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

Чтобы проверить эту опцию, в меню откройте вкладку IP — Cloud, поставьте отметку DDNS Enabled и активируйте Apply. В строке статус должно отобразиться «updated«. Это означает, что у роутера есть публичный адрес.

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

После проверки установлено, что маршрутизатор имеет белый IP-адрес — 178.189.224.121, а подсеть прописана так — 192.168.88.0/22. Задача — сделать так, чтобы при запросе адреса в браузере http://178.189.224.121:50000 активировались данные веб-камеры.

Примечание. 50000 — условное значение. Его лучше выбирать в диапазоне от 49152 по 65535.

Приступаем к перенаправлению трафика с видеокамеры с IP-адресом в Интернет. Для этого в настройках роутера в меню откройте вкладку New Terminal и последовательно добавляем такие команды:

  1. Для подсети — правило маскарадинга — 192.168.88.0/22:

/ip firewall nat add action=masquerade chain=srcnat src-address=192.168.88.0/22

  1. Перебрасывайте запросы из Интернета к порту 50000 на внутреннюю сеть — 192.168.88.252 и 50 (IP камеры и данные порта, к которому она подключена).

/ip firewall nat add action=netmap chain=dstnat dst-port=50000 in-interface=ether1 protocol=tcp to-addresses=192.168.88.252 to-ports=50

  1. Переключите запросы из локальной сети к роутеру 178.189.224.121 и порту камеры 50000 на адрес камеры (192.168.88.252) и порт в роуторе, к которому она подключена. Таким образом запросы не будут идти в Интернет.

/ip firewall nat add action=netmap chain=dstnat dst-address=178.189.224.121 dst-port=50000 in-interface=bridgeprotocol=tcp src-address=192.168.88.0/22 to-addresses=192.168.88.252 to-ports=50

Чтобы проверить результаты, откройте вкладку NAT  меню IP — Firewall. Когда открываете в браузере нужный адрес — http://178.189.224.122:50000, то откроется страничка веб-устройства с всеми опциями отладок после введения имени пользователя и его пароля.

Чтобы синхронизировать веб-оборудование с планшетом (просматривать на нем видео), рекомендуем использовать утилиту VLC media player. Ее поддерживает специальный протокол маршрутизатора TP-Link — RTSP. Использующий порт 554.

Чтобы пробросить его на MikroTik, сделайте такие записи в настройках:

  1. /ip firewall nat add action=netmap chain=dstnat dst-port=554 in-interface=ether1 protocol=tcp to-addresses=192. 168.88.252 to-ports=554
  2. /ip firewall nat add action=netmap chain=dstnat dst-address=178.189.224.121 dst-port=554 in-interface=bridgeprotocol=tcp src-address=192.168.88.0/22 to-addresses=192.168.88.252 to-ports=554

Запускайте на планшете нужную программу, выбирайте «Сетевой ресурс», вводите логин, пароль и внешней адрес роутера. Изображение будет доступным.

Учтите эти нюансы при настройке различного оборудования в сети  для перенаправления выгрузки и загрузки данных.

NAT — RouterOS — Документация MikroTik

Свойство Описание
действие ( имя действия ; по умолчанию: принять ) Действие, выполняемое, если пакет соответствует правилу:

  • accept — принять пакет. Пакет не передается следующему правилу NAT.
  • add-dst-to-address-list — добавить адрес назначения в список адресов, заданный параметром address-list параметр
  • add-src-to-address-list — добавить исходный адрес в список адресов, указанный в списке адресов параметр
  • dst-nat — заменяет адрес назначения и / или порт IP-пакета на значения, указанные в параметрах to-addresses и to-ports
  • jump — переход к определяемой пользователем цепочке, указанной значением of jump-target parameter
  • log — добавить сообщение в системный журнал, содержащее следующие данные: in-interface, out-interface, src-mac, protocol, src-ip: port-> dst-ip: port и длина пакета. После того, как пакет сопоставлен, он передается следующему правилу в списке, аналогично проходу
  • masquerade — заменяет исходный порт IP-пакета на один, указанный в параметре to-ports , и заменяет исходный адрес IP. пакет к IP определяется средством маршрутизации.
  • netmap — создает статическое сопоставление 1: 1 одного набора IP-адресов другому. Часто используется для передачи общедоступных IP-адресов хостам в частных сетях.
  • passthrough — если пакет соответствует правилу, увеличьте счетчик и перейдите к следующему правилу (полезно для статистики).
  • redirect — заменяет порт назначения IP-пакета на порт, указанный в параметре to-ports , а адрес назначения на один из локальных адресов маршрутизатора
  • return — передает управление обратно в цепочку, откуда произошел переход
  • то же самое — дает конкретному клиенту один и тот же IP-адрес источника / назначения из указанного диапазона для каждого соединения. Это наиболее часто используется для служб, которые ожидают один и тот же адрес клиента для нескольких подключений от одного и того же клиента.
  • src-nat — заменяет адрес источника IP-пакета на значения, указанные в параметрах to-addresses и to-ports , параметры
список адресов ( строка ; по умолчанию:) Имя списка адресов, который будет использоваться.Применимо, если действие: add-dst-to-address-list или add-src-to-address-list
тайм-аут списка адресов ( нединамический | нестатический | время ; По умолчанию: не-динамический ) Интервал времени, по истечении которого адрес будет удален из списка адресов, заданного параметром список адресов . Используется вместе с add-dst-to-address-list или add-src-to-address-list Действия

  • Значение нединамическое ( 00:00:00 ) оставит адрес в список адресов до перезагрузки
  • Значение нестатического оставит адрес в списке адресов навсегда и будет включено в экспорт / резервное копирование конфигурации
цепочка ( имя ; По умолчанию:) Указывает к которому будет добавлено правило цепочки. Если входные данные не соответствуют имени уже определенной цепочки, будет создана новая цепочка.
комментарий ( строка ; по умолчанию:) Описательный комментарий для правила
байтов соединения ( целочисленное значение ; по умолчанию:) Сопоставляет пакеты только в том случае, если заданное количество байтов было передано через конкретное соединение. 0 — означает бесконечность, например байта соединения = 2000000-0 означает, что правило соответствует, если через соответствующее соединение было передано более 2 МБ
предел соединения (целое число , маска сети ; по умолчанию: ) Сопоставляет соединения для каждого адреса или адресного блока после достижения заданного значения
метка соединения ( no-mark | строка ; по умолчанию:) Сопоставляет пакеты, помеченные с помощью средства mangle с определенной меткой соединения. Если установлен no-mark , правило будет соответствовать любому немаркированному соединению
скорость соединения ( Integer 0..4294967295 ; по умолчанию:) Connection Rate — это сопоставление межсетевого экрана, которое позволяет захватывать трафик на основе на текущей скорости соединения
тип соединения ( ftp | h423 | irc | pptp | quake3 | sip | tftp ; по умолчанию:) Сопоставляет пакеты от связанных соединений на основе информации из отслеживания их соединений помощники.Соответствующий помощник по подключению должен быть включен в / ip firewall service-port
content ( строка ; по умолчанию:) Сопоставлять пакеты, содержащие указанный текст
dscp (целое число : 0. .63 ; По умолчанию:) Соответствует полю IP-заголовка DSCP.
dst-address ( IP / netmask | IP range ; по умолчанию:) Соответствует пакетам, место назначения которых совпадает с указанным IP или попадает в указанный диапазон IP.
dst-address-list ( name ; по умолчанию:) Сопоставляет адрес назначения пакета с пользовательским списком адресов
dst-address-type ( unicast | local | broadcast | multicast ; По умолчанию:) Соответствует типу адреса назначения:

  • unicast — IP-адрес, используемый для передачи точка-точка
  • local — если dst-адрес назначен одному из интерфейсов маршрутизатора
  • broadcast — пакет отправлен ко всем устройствам в подсети
  • multicast — пакет пересылается определенной группе устройств
dst-limit ( integer [/ time], integer, dst-address | dst-port | src- адрес [/ время] ; По умолчанию:) Сопоставляет пакеты до тех пор, пока не будет превышен заданный предел количества пакетов в секунду.В отличие от сопоставителя пределов, каждый IP-адрес назначения / порт назначения имеет собственное ограничение. Параметры записываются в следующем формате: count [/ time], burst, mode [/ expire] .

  • count — максимальная средняя скорость пакетов, измеренная в пакетах за время интервал
  • время — указывает временной интервал, в котором измеряется скорость пакетов (необязательно)
  • burst — количество пакетов, которые не с учетом скорости передачи пакетов
  • mode — классификатор для ограничения скорости пакетов
  • expire — указывает интервал, по истечении которого записанный IP-адрес / порт будет удален (необязательно)
dst-port ( целое [-целое]: 0..65535 ; По умолчанию:) Список номеров портов назначения или диапазонов номеров портов
фрагмент ( да | нет ; по умолчанию:) Соответствует фрагментированным пакетам. Первый (начальный) фрагмент не в счет. Если включено отслеживание соединений, фрагментов не будет, так как система автоматически собирает каждый пакет
точка доступа ( auth | from-client | http | local-dst | to-client ; по умолчанию:) Сопоставляет пакеты полученные от клиентов HotSpot против различных устройств сопоставления HotSpot.

  • auth — соответствует аутентифицированным клиентским пакетам HotSpot
  • from-client — соответствует пакетам, приходящим от клиента HotSpot
  • http — соответствует HTTP-запросам, отправленным на сервер HotSpot
  • local-dst — сопоставляет пакеты, предназначенные для HotSpot server
  • to-client — сопоставляет пакеты, которые отправляются клиенту HotSpot
icmp-options ( integer: integer ; по умолчанию:) Соответствует типу ICMP: поля кода
in-bridge-port (имя , ; по умолчанию:) Фактический интерфейс: пакет вошел в маршрутизатор, если входящий интерфейс является мостом
in-interface (имя ; по умолчанию:) Интерфейс, по которому пакет поступил в маршрутизатор
ingress-priority (целое число : 0. 0,63 ; По умолчанию:) Соответствует входящему приоритету пакета. Приоритет может быть получен из бита VLAN, WMM или MPLS EXP. Подробнее >>
ipsec-policy ( in | out, ipsec | none ; по умолчанию:) Соответствует политике, используемой IpSec. Значение записывается в следующем формате: направление , , политика , . Направление используется для выбора соответствия политике, используемой для декапсуляции, или политике, которая будет использоваться для инкапсуляции.

  • in — действителен в цепочках PREROUTING, INPUT и FORWARD
  • out — действителен в цепочках POSTROUTING, OUTPUT и FORWARD
  • ipsec — соответствует, если пакет подлежит обработке IpSec;
  • нет — соответствует пакету, который не подлежит обработке IpSec (например, транспортный пакет IpSec).

Например, если маршрутизатор получает пакет Gre, инкапсулированный в IPsec, то правило ipsec-policy = in, ipsec будет соответствовать пакету Gre, но правило ipsec-policy = in, none не будет соответствовать пакету ESP.

ipv4-options ( любой | свободная маршрутизация-источник | no-record-route | no-router-alert | no-source-routing | no-timestamp | none | record-route | router- alert | strict-source-routing | timestamp ; по умолчанию:) Соответствует параметрам заголовка IPv4.

  • любой — сопоставить пакет хотя бы с одним из параметров ipv4
  • свободно-исходная маршрутизация — сопоставить пакеты с параметром свободной маршрутизации от источника. Эта опция используется для маршрутизации интернет-дейтаграммы на основе информации, предоставленной источником.
  • no-record-route — сопоставление пакетов без опции маршрута записи.Эта опция используется для маршрутизации интернет-дейтаграммы на основе информации, предоставленной источником
  • no-router-alert — сопоставление пакетов без маршрутизатора alter option
  • no-source-routing — сопоставление пакетов без опции маршрутизации от источника
  • no- timestamp — сопоставить пакеты без параметра timestamp
  • record-route — сопоставить пакеты с параметром записи маршрута
  • router-alert — сопоставить пакеты с параметром router alter
  • strict-source-routing — сопоставить пакеты с параметром строгой маршрутизации от источника
  • timestamp — сопоставить пакеты с меткой времени
jump-target ( name ; по умолчанию:) Имя целевой цепочки для перехода. Применимо, только если действие = переход
протокол уровня7 (имя ; по умолчанию:) Имя фильтра уровня 7, определенное в меню протокола уровня 7.
limit ( integer, time, integer ; по умолчанию:) Сопоставляет пакеты до тех пор, пока не будет превышен заданный предел PPS. Параметры записываются в следующем формате: count [/ time], burst .

  • count — максимальная средняя скорость пакетов, измеренная в пакетах за время интервал
  • время — указывает временной интервал, в котором измеряется скорость передачи пакетов (необязательно, будет использоваться 1 с, если не указано)
  • пакет — количество пакетов, которые не учитываются по скорости передачи пакетов.
префикс журнала ( строка ; по умолчанию:) Добавляет указанный текст в начало каждого сообщения журнала. Применимо, если действие = log
nth (целое , целое ; по умолчанию:) Соответствует каждому n-му пакету: nth = 2,1 Правило будет соответствовать каждому первому пакету из 2, следовательно, 50 % всего трафика, который соответствует правилу
out-bridge-port ( имя ; по умолчанию:) Фактический интерфейс: пакет покидает маршрутизатор, если исходящий интерфейс является мостом
out-interface (; По умолчанию:) Интерфейс, пакет покидает маршрутизатор
packet-mark ( no-mark | string ; Default:) Соответствует пакетам, помеченным с помощью средства mangle с метка конкретного пакета.Если установлен no-mark , правило будет соответствовать любому немаркированному пакету
размер пакета ( integer [-integer]: 0. .65535 ; по умолчанию:) Соответствует пакетам указанного размера или диапазон размеров в байтах
для каждого соединения-классификатора ( ValuesToHash: знаменатель / остаток ; по умолчанию:) Сопоставитель PCC позволяет разделить трафик на равные потоки с возможностью сохранения пакетов с определенным набором параметров в один конкретный поток
порт (целое число [-integer]: 0..65535 ; По умолчанию:) Соответствует, если какой-либо порт (исходный или целевой) соответствует указанному списку портов или диапазонам портов. Применимо, только если протокол TCP или UDP
протокол (имя или идентификатор протокола ; по умолчанию: tcp ) Соответствует конкретному IP-протоколу, указанному именем или номером протокола
psd ( целое число, время, целое число, целое число ; по умолчанию:) Пытается обнаружить сканирование TCP и UDP. Параметры имеют следующий формат: WeightThreshold, DelayThreshold, LowPortWeight, HighPortWeight

  • WeightThreshold — общий вес последних пакетов TCP / UDP с разными портами назначения, приходящих с одного и того же хоста, который будет обрабатываться как последовательность сканирования портов
  • DelayThreshold — задержка для пакетов с разными портами назначения, приходящих с одного и того же хоста, которая должна рассматриваться как возможная подпоследовательность сканирования порта
  • LowPortWeight — вес пакетов с привилегированным (<1024) портом назначения
  • HighPortWeight — вес пакета с непривилегированным портом назначения
случайный (целое число : 1.0,99 ; По умолчанию:) Сопоставляет пакеты случайным образом с заданной вероятностью
маркер маршрутизации ( строка ; по умолчанию:) Сопоставляет пакеты, помеченные функцией mangle, с определенной меткой маршрутизации
same-not- by-dst ( yes | no ; по умолчанию:) Указывает, следует ли учитывать IP-адрес назначения при выборе нового IP-адреса источника. Применимо, если действие = тот же
src-address ( Ip / Netmaks, Ip range ; по умолчанию:) Соответствует пакетам, источник которых равен указанному IP или попадает в указанный диапазон IP.
src-address-list ( name ; По умолчанию:) Сопоставляет исходный адрес пакета с определенным пользователем списком адресов
src-address-type ( unicast | local | broadcast | multicast ; По умолчанию:)

Соответствует типу адреса источника:

  • unicast — IP-адрес, используемый для передачи точка-точка
  • local — если адрес назначен одному из интерфейсов маршрутизатора
  • broadcast — пакет отправлено на все устройства в подсети
  • многоадресная рассылка — пакет пересылается определенной группе устройств
src-port ( integer [-integer]: 0. .65535 ; По умолчанию:) Список исходных портов и диапазоны исходных портов. Применимо, только если протокол TCP или UDP.
src-mac-address ( MAC-адрес ; по умолчанию:) Соответствует исходному MAC-адресу пакета
tcp-mss ( integer [-integer]: 0..65535 ; По умолчанию:) Соответствует значению TCP MSS IP-пакета
время ( время-время, сб | пт | чт | ср | вт | пн | вс ; по умолчанию:) Позволяет создать фильтр на основе времени и даты прибытия пакетов или, для локально сгенерированных пакетов, времени и даты отправления
to-address (IP-адрес [-IP-адрес] ; по умолчанию: 0.0.0.0 ) Заменить исходный адрес на указанный. Применимо, если действие — dst-nat, netmap, same, src-nat
to-ports ( integer [-integer]: 0. .65535 ; по умолчанию:) Заменить исходный порт на указанный один. Применимо, если действие: dst-nat, redirect, masquerade, netmap, same, src-nat
ttl ( целое: 0..255 ; по умолчанию:) Соответствует значению TTL пакетов

Три различные способы настройки исходного NAT на маршрутизаторах Mikrotik

Source NAT на Mikrotik можно настроить по-разному, в зависимости от желаемого результата.Тем не менее, я заметил, что многие пользователи routerOS склонны использовать тот же метод при настройке исходного NAT на Mikrotik. Это не хорошо. В этом посте я расскажу нам о трех из множества способов настройки NAT на маршрутизаторе Mikrotik.

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

Настройка исходного NAT на Mikrotik с помощью интерфейса ввода / вывода

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

Реализацию

Source NAT с использованием этой опции можно считать самой простой. Однако это создаст некоторые проблемы для туннелей ptp, gre-туннелей и ipsec vpn. Чтобы разрешить vpn-соединение для локальных сетей, настроенных на маршрутизаторе, пользователь должен исключить соединение LAN-LAN из правила NAT источника.

Этот метод реализации исходной nat на Mikrotik можно настроить на маршрутизаторе Mikrotik с помощью следующей команды.

/ IP межсетевой экран nat

добавить цепочку = srcnat in-interface = ether2 action = masquerade comment = nat_based_on_in_interface

добавить цепочку = srcnat out-interface = ether1 action = masquerade comment = nat_based_on_out_interface

Настройка исходного NAT на Mikrotik с использованием исходного адреса

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

Чтобы настроить исходный NAT на Mikrotik этим методом, администратор может ввести команды, подобные приведенным ниже.

/ IP межсетевой экран nat

добавить цепочку = srcnat src-address = 192.168.88.0 / 24 действие = маскарад

Вам также может понравиться: Как настроить сайт Mikrotik на сайт Ipsec VPN для подключения ваших филиалов к HQ

Настройка NAT источника на Mikrotik с использованием списка адресов источника

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

Чтобы настроить исходный NAT на Mikrotik с помощью этого метода, пользователю необходимо создать ручной / динамический список адресов источника, а затем использовать этот список адресов для настройки NAT источника. См. Шаги ниже.

Создание списка адресов источника вручную

/ Список адресов брандмауэра IP

добавить адрес = 192.168.88.2 list = internet_users

добавить адрес = 192.168.88.3-192.168.88.21 list = internet_users

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

Чтобы узнать, как создать динамический список адресов источника, щелкните здесь.

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

/ ip firewall nat
add chain = srcnat src-address-list = internet_users action = masquerade

В заключение, хотя методы 1 и 2 работают, метод 3 дает вам контроль над тем, какие IP-адреса должны быть разрешены для доступа в Интернет. Список исходных адресов также может использоваться для сопоставления исходных адресов хостов, которые не должны быть включены в правило маскировки брандмауэра. Когда это будет сделано таким образом, пользователям, чьи исходные IP-адреса включены в список исходных адресов, будет отказано в доступе в Интернет.При использовании динамического списка адресов источника группе пользователей может быть отказано в доступе в Интернет в определенные периоды в рабочее время.

Для получения дополнительной информации о NAT исходного кода Mikrotik, пожалуйста, прочтите документацию по mikrotik здесь.

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

Веб-сервер за NAT · GitHub

Mikrotik Script: Веб-сервер за NAT · GitHub

Мгновенно делитесь кодом, заметками и фрагментами.

Mikrotik Script: веб-сервер за NAT

/ IP межсетевой экран
dst-nat protocol = tcp dst-port = 80 Действие dst-nat to-address = 20.20.20.45 to-ports = 80
добавить действие = dst-nat chain = dstnat comment = «» отключено = нет dst-port = 80 protocol = tcp to-addresses = 20. 20.20.45 к портам = 80
# Создание интерфейса pppoe и подключения к Интернету ADSL
/ интерфейс pppoe-client
добавить name = «pppoe-out1» max-mtu = 1480 max-mru = 1480 interface = ether5 \
user = «USERNAMEl» password = «PASSWORD» profile = default \
service-name = «» ac-name = «» add-default-route = yes dial-on-demand = no \
use-peer-dns = yes allow = pap, chap, mschap1, mschap2 disabled = no
# Добавление Source NAT для доступа в Интернет
/ ip межсетевой экран nat
добавить цепочку = srcnat src-address = ВАШ СЕТЕВОЙ АДРЕС / МАСКА action = masquerade comment = «» \
отключено = нет
# Добавление назначения NAT для доступа к WEB-серверу
/ ip межсетевой экран nat
добавить цепочку = dstnat in-interface = pppoe-out1 protocol = tcp dst-port = 80 \
action = dst-nat to-addresses = ВАШ АДРЕС СЕРВЕРА to-ports = 80 comment = «» \
отключено = нет
# Настройка манжета для ADSL (работает с T-Com. ..)
/ IP-переключатель межсетевого экрана
добавить цепочку = протокол пересылки = tcp tcp-flags = syn action = change-mss \
new-mss = clamp-to-pmtu comment = «ADSL Интернет» отключен = нет

Вы не можете выполнить это действие в настоящее время.

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

Как настроить брандмауэр MikroTik для использования с 3CX

Настройка MikroTik с 3CX

Введение

В этом документе описывается конфигурация устройств MikroTik RB951 для использования с 3CX, и он должен быть совместим с другими устройствами этой серии. Хотя параметры можно настроить через графический интерфейс (winbox.exe) или веб-интерфейс, в этом руководстве выполняется настройка через SSH.Обратите внимание, что мы не можем помочь вам с настройкой вашего брандмауэра.

Шаг 1. Отключите SIP ALG

  1. Войдите в брандмауэр. В командной строке введите:
    ip firewall service-port disable sip

Шаг 2: Настройте перенаправление портов (NAT)

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

Не выходя из брандмауэра, введите следующие команды:

  1. ip firewall nat add chain = dstnat action = dst-nat to-addresses = [3CX Server LAN IP] to-ports = [HTTPS Port] protocol = tcp dst-port = [HTTPS Port] comment = «3CX Presence and Provisioning HTTPS»

  2. ip firewall nat add chain = dstnat action = dst-nat to-addresses = [3CX Server LAN IP] to-ports = [SIP Порт] protocol = udp dst-port = [Порт SIP] comment = «3CX SIP UDP»

  3. IP firewall nat add chain = dstnat action = dst-nat to-addresses = [3CX Server LAN IP] to-ports = [SIP Port] protocol = tcp dst-port = [SIP Port] comment = «3CX SIP TCP»

  4. ip firewall nat add chain = dstnat action = dst-nat to-addresses = [3CX Server LAN IP] to- ports = [SIP Port + 1] protocol = tcp dst-port = [SIP Port + 1] comment = «3CX SIP TLS»

  5. IP firewall nat add chain = dstnat action = dst-nat to-addresses = [3CX Сервер LAN IP] to-ports = 9000-10999 protocol = udp dst-port = 9 000-10999 comment = «3CX Media UDP»

  6. ip firewall nat add chain = dstnat action = dst-nat to-addresses = [3CX Server LAN IP] to-ports = [Tunnel Port] protocol = tcp dst-port = [Порт туннеля] comment = «3CX Tunnel TCP»

  7. ip firewall nat add chain = dstnat action = dst-nat to-addresses = [3CX Server LAN IP] to-ports = [Tunnel Port] protocol = udp dst -port = [Tunnel Port] comment = «3CX Tunnel UDP»

Обратите внимание, что в приведенных выше командах вы должны заменить раздел в скобках на правильный порт для вашей настройки.

Шаг 3. Список доступа для входящего трафика (только конфигурация PAT)

Если у вас есть NAT 1: 1, вы можете пропустить этот шаг. Если у вас есть конфигурация PAT, вы должны создать следующие правила доступа с помощью этих команд:

  1. ip firewall filter add chain = input action = accept connection-state = installed

  2. ip firewall filter add chain = input action = accept состояние соединения = связанный

  3. фильтр брандмауэра IP добавить цепочку = действие пересылки = принять состояние соединения = установлено

  4. фильтр брандмауэра IP добавить цепочку = действие вперед = принять состояние соединения = связанный

  5. фильтр брандмауэра IP add chain = forward action = drop connection-state = invalid

  6. ip firewall filter add chain = input action = drop in-interface = [имя интерфейса]

  7. ip firewall nat add chain = srcnat action = masquerade out- interface = [Имя интерфейса]

Обратите внимание, что на шагах 6 и 7 вам необходимо ввести имя «in-interface» , которое вы используете для 3CX (имя с общедоступным IP-адресом ess). Все имена интерфейсов можно указать с помощью следующей команды:

/ interface print

Шаг 4: Проверка вашей настройки

  1. Войдите в консоль управления 3CX → Панель управления → Брандмауэр и запустите 3CX Firewall Checker. Это позволит проверить, правильно ли настроен ваш брандмауэр для использования с 3CX.
    Дополнительную информацию о средстве проверки брандмауэра можно найти здесь.
  2. Проверьте конфигурацию брандмауэра, используя следующие команды:
  1. > печать IP-адреса
  1. > IP firewall nat print
  1. > IP firewall filter print

% PDF-1.% «+ Tib_b8A] HO, l1K (: X & 4pOAIhJ, B] R # ‘] Ln * конечный поток
endobj
% ‘Annot.NUMBER1’: класс PDFDictionary
3 0 obj
>
/ Граница [0
0
0]
/ Rect [496.1934
700,8076
526,9134
731.5276]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Annot. NUMBER2′: класс PDFDictionary
4 0 obj
>
/ Граница [0
0
0]
/ Rect [356.5665
355,0457
408,7209
370,0457]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘F4’: класс PDFType1Font
5 0 obj
% Font Helvetica
>
endobj
% ‘Page1’: класс PDFPage
6 0 obj
% Page словарь
> >>
/ Повернуть 0
/ Транс>
/ Тип / Страница >>
endobj
% ‘Annot.NUMBER3 ‘: класс PDFDictionary
7 0 объект
>
/ Граница [0
0
0]
/ Rect [497.2795
756,7969
535,2795
768.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Annot.NUMBER4’: класс PDFDictionary
8 0 объект
>
/ Граница [0
0
0]
/ Rect [483.0475
732,7969
521,0475
744.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Annot.NUMBER5’: класс PDFDictionary
9 0 объект
>
/ Граница [0
0
0]
/ Rect [385.3995
156,7969
438.1995
168.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Page2’: класс PDFPage
10 0 obj
% Page словарь
>
/ Повернуть 0
/ Транс>
/ Тип / Страница >>
endobj
% ‘Annot. NUMBER6′: класс PDFDictionary
11 0 объект
>
/ Граница [0
0
0]
/ Rect [300.7515
651,7969
376,2875
663.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Annot.NUMBER7 ‘: класс PDFDictionary
12 0 объект
>
/ Граница [0
0
0]
/ Rect [476.4875
567,7969
512,2635
579.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Annot.NUMBER8’: класс PDFDictionary
13 0 объект
>
/ Граница [0
0
0]
/ Rect [365.4315
183,7969
418,2315
195.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Page3’: класс PDFPage
14 0 объект
% Page словарь
>
/ Повернуть 0
/ Транс>
/ Тип / Страница >>
endobj
% ‘Annot.NUMBER9 ‘: класс PDFDictionary
15 0 объект
>
/ Граница [0
0
0]
/ Rect [376.2875
549,7969
444,7195
561.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Annot.NUMBER10’: класс PDFDictionary
16 0 объект
>
/ Граница [0
0
0]
/ Rect [366.5115
420,7969
424.1115
432.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Annot. NUMBER11′: класс PDFDictionary
17 0 объект
>
/ Граница [0
0
0]
/ Rect [474.5035
306,7969
532,1035
318.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Page4’: класс PDFPage
18 0 объект
% Page словарь
>
/ Повернуть 0
/ Транс>
/ Тип / Страница >>
endobj
% ‘Annot.NUMBER12’: класс PDFDictionary
19 0 объект
>
/ Граница [0
0
0]
/ Rect [462.2555
690,7969
498,0315
702.7969]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Page5’: класс PDFPage
20 0 объект
% Page словарь
>
/ Повернуть 0
/ Транс>
/ Тип / Страница >>
endobj
% ‘Page6’: класс PDFPage
21 0 объект
% Page словарь
>
/ Повернуть 0
/ Транс>
/ Тип / Страница >>
endobj
% ‘Annot.НОМЕР13 ‘: класс PDFDictionary
22 0 объект
>
/ Граница [0
0
0]
/ Rect [91.63291
556,9469
156,6329
571.9469]
/ Подтип / Ссылка
/ Тип / Аннотация >>
endobj
% ‘Page7’: класс PDFPage
23 0 объект
% Page словарь
>
/ Повернуть 0
/ Транс>
/ Тип / Страница >>
endobj
% ‘Page8’: класс PDFPage
24 0 объект
% Page словарь
>
/ Повернуть 0
/ Транс>
/ Тип / Страница >>
endobj
% ‘toUnicodeCMap: AAAAAA + FreeSerif’: класс PDFStream
25 0 объект
>
транслировать
xmjZQOq-w7 AnShy \! PA # ߞ azlnC; _Uvt \ 햇 | xj ~ fx ^ Ocϣa} / ßkn6 & Y ^ o ߝ_ s [V
lG; Nt = eOW + @ _ 7-} ǾC ߳- B / B / B / B / B / B / B / B + J¯ + J¯ + J¯ + J¯ + J¯ + J¯ + J¯ + JoFoFoFoFoFoFoFoF; N; N; N; N; N; N; N; NA A A A A A A A ‘I Ÿ’I Ÿ’I Ÿ’I Ÿ’I Ÿ ‘I Ÿ’I Ÿ’I _E _E ​​_E ​​_E ​​_E ​​_E ​​_E ​​_E? _? 3 1, B`C0 ~ Ӵzj] 2HmG? Qendstream
endobj
% ‘fontFile: / home / pp / local / lib / python2. ? Jz] 0GUY 1tF.- S, & AVQuVtzЫXC

NAT (преобразование сетевых адресов) на маршрутизаторе Mikrotik ~ pimp-my-rig reloaded

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

Вероятно, ваш интернет-провайдер (ISP) не предоставит вам весь блок IP-адресов (в противном случае это будет очень дорогая услуга).Они ожидают, что вы настроите некоторую форму трансляции сетевых адресов для доступа в Интернет или перехода в другую сеть. Чтобы понять концепции, давайте определим два общих метода NAT, которыми являются NAT источника (на жаргоне Mikrotik «srcnat») и NAT назначения (на жаргоне Mikrotik «dstnat»). Просто имейте в виду, что для подключений, привязанных к Интернету (выходящих из сети), задействуется srcnat; следовательно, для подключений к локальной сети это dstnat.

NAT в этом случае выполняет преобразование «один ко многим». Поскольку трафик проходит через маршрутизатор, связанный с Интернетом, маршрутизатор «маскирует» IP-адрес пакета с общедоступным IP-адресом (см. Сообщение начальной конфигурации) маршрутизатора (в качестве дополнительных ссылок для чтения вы можете захотеть проверить стандарт RFC1918). Маршрутизатор также выполняет еще одну важную функцию отслеживания активных соединений. Когда входящие пакеты возвращаются, он использует эту информацию отслеживания, чтобы определить частный IP-адрес, на который они будут пересылаться.

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

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

/ ip firewall nat
add action = srcnat chain = srcnat out-interface = ether1 \
src-address = 192.168.1.0 / 24 to-address = 1.1.1.2

Другой способ настройки — использование другой формы NAT источника, называемой «маскарад». Маскарад — это специализированная форма srcnat. В то время как srcnat требует IP-адреса назначения, masquerade требует определенного интерфейса и извлекает IP-адрес, назначенный интерфейсу, при выполнении процесса NAT. Из-за этого маскарад связан с накладными расходами.Просто знайте, что в отсутствие статического общедоступного IP-адреса маскарад — это лучшее решение. Masquerade был создан для работы с динамическими IP-адресами на исходящих интерфейсах.

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

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

ПЕРЕДНЯЯ цепь. Встроенный межсетевой экран маршрутизатора должен быть проинструктирован для пересылки пакетов NAT в локальную сеть. Он также должен принимать новые соединения, инициированные из локальной сети.

/ ip firewall filter
add chain = forward action = drop comment = «DROP invalid packets» connection-state = invalid
add chain = forward action = accept comment = «FORWARD пакеты из LAN» \
connection-state = related, учрежден

Этот блок кода должен идти после входной цепочки (защита маршрутизатора).

СВЯЗАННО: Первоначальная конфигурация виртуального маршрутизатора Mikrotik

Итак, после добавления приведенного выше кода в сочетании с предыдущими выполненными конфигурациями, теперь у вас будет рабочий маршрутизатор, способный обеспечить базовое сетевое подключение и доступ в Интернет. Далее мы обсудим качество обслуживания (QoS) или приоритизацию пакетов и формирование полосы пропускания на маршрутизаторе Mikrotik.

Перенаправление портов на маршрутизаторе MikroTik

Перенаправление портов на маршрутизаторе MikroTik

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

RouterOS имеет все необходимые функции ISP (интернет-провайдера). MikroTik способен управлять всем, что связано с сетью, и в этой статье мы сосредоточимся на том, как успешно использовать перенаправление портов на MikroTik с помощью RouterOS.

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

Прежде чем мы перейдем к этому, представьте себе следующую ситуацию:

Представьте себя ИТ-администратором. Вы создали большую сеть, и кто-то хочет удаленно подключиться к вашему серверу VPS или выделенному серверу и работать удаленно.Вы не можете передавать ему IP-адрес сервера в целях безопасности. Что вы должны сделать? В этой ситуации вы должны использовать переадресацию портов на MikroTik Router для обработки всех запросов. Ниже приведено пошаговое руководство по настройке переадресации портов на MikroTik.

  1. Войдите на свой собственный сервер MikroTik с правами администратора.
  2. Щелкните «IP» на левой боковой панели. В открывшемся подменю нажмите «Межсетевой экран».
  3. Мы должны использовать вкладку «NAT» (преобразование сетевых адресов) для обработки пакетов, которые получает маршрутизатор.

  4. Во вкладке «NAT» нажмите «+», чтобы создать правило.

Примечание. В этом сценарии предположим, что маршрутизатор подключен к IP (10.10.10.10), и мы хотим перенаправить все запросы из (10.10.10.10:5847) на (20.20.20.20:4324).

  1. Щелкните вкладку «Общие». Выберите «dstnat» из выпадающего списка «цепочка». В «Dst. Адрес »введите этот IP-адрес (10.10.10.10). В списке «Протокол» выберите протокол подключения, например (TCP, xdp, ddp). В «Dst. Порт », введите 5847.

  2. Щелкните вкладку «Действие». В раскрывающемся списке действий выберите «dst-nat». Введите этот IP-адрес (20.20.20.20) в поле «К адресам» и введите 4324 в поле «К портам».

  3. Нажмите «Применить» и «ОК», чтобы сохранить и добавить правила.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *