Firewall в MikroTik работи чрез набор от правила, които контролират трафика през мрежата. Ето основните компоненти и начини на работа:
- Филтриращи правила (Filter Rules): Тези правила са използвани за разрешаване или блокиране на трафик въз основа на различни критерии като IP адрес, порт, протокол и др. Те се прилагат към входящия, изходящия и пренасочения трафик.
- NAT (Network Address Translation): NAT правилата се използват за преобразуване на адресите на пакетите, които преминават през рутера. Това включва маскиране (за споделяне на един публичен IP адрес между множество устройства в частната мрежа) и пренасочване на портове.
- Mangle Rules: Тези правила се използват за модификация на пакетите по различни начини, като например маркиране на пакети за QoS (Quality of Service) или за следене на трафика.
- Приоритизация и ограничаване на скоростта: Можете да използвате firewall правилата за контрол на скоростта на трафика (bandwidth management) и приоритизация на определени видове трафик.
- Layer7 Protocol Detection: Тази функция позволява на firewall-а да разпознава и филтрира трафик, базиран на хедъри в седмия слой на OSI модела (приложен слой).
- Connection Tracking: MikroTik firewall следи връзките през мрежата, което позволява създаването на по-сложни правила, базирани на състоянието на връзката (например нова, установена, свързана връзка и т.н.).
- Сигурност и защита: Могат да се конфигурират правила за защита срещу различни видове атаки като DoS (Denial of Service), порт сканиране и други.
За да настройте и управлявате firewall в MikroTik, обикновено се използва софтуера WinBox, WebFig или SSH, като всяко правило трябва да бъде внимателно конфигурирано според нуждите на мрежата.
Какви вериги има във Firewall на MikroTik
В MikroTik Firewall, веригите (или chains) са ключови компоненти на правилата за филтриране и манипулиране на трафика. Ето основните вериги в MikroTik Firewall:
- Input: Тази верига се отнася до пакетите, които са предназначени за самото устройство MikroTik, като например пакети, адресирани до IP адреса на рутера.
- Output: Включва пакетите, които са генерирани от самия рутер, като DNS заявки или DHCP отговори.
- Forward: Обхваща пакетите, които преминават през рутера, но не са предназначени за него и не са генерирани от него. Тази верига е важна за рутирането на трафика между различните мрежи.
- NAT: Тази верига се използва за Network Address Translation. Тя е отговорна за промяна на източника или дестинацията на IP адреса на пакетите, които преминават през рутера.
- Mangle: Веригата Mangle се използва за промяна на определени характеристики на пакетите, като например маркиране на пакети за QoS (Quality of Service) или изменение на TTL (Time to Live).
- Raw: Тази верига позволява обработка на пакетите преди другите вериги като NAT, Mangle или филтриращите правила. Веригата Raw често се използва за бързо отхвърляне на трафика или за заобикаляне на определени процеси за увеличаване на производителността.
Тези вериги предоставят широк спектър от възможности за настройка и управление на мрежовия трафик в MikroTik устройствата.
Реален пример за домашен Firewall в MikroTik
/ip firewall address-list
add address=192.168.0.0/16 list=acceptt
/ip firewall filter
add action=drop chain=input connection-state=invalid
add action=accept chain=input protocol=icmp
add action=accept chain=input connection-state=established,related,untracked
add action=drop chain=input src-address-list=!accept
add action=fasttrack-connection chain=forward connection-state=established,related
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
1. Създаване на Address List
/ip firewall address-list
add address=192.168.0.0/16 list=accept
Това правило създава списък на адреси (address list) с име accept
, включващ цялата мрежа 192.168.0.0/16, която е типична за домашни и малки офис мрежи.
2. Филтриране на Входящия Трафик
/ip firewall filter
add action=drop chain=input connection-state=invalid
Дропване на Невалидни Връзки: Отхвърля пакетите, които не могат да бъдат идентифицирани като част от някоя връзка.
/ip firewall filter
add action=accept chain=input protocol=icmp
Разрешаване на ICMP: Разрешава ICMP трафик (използван за ping и други диагностични инструменти).
/ip firewall filter
add action=accept chain=input connection-state=established,related,untracked
Разрешаване на Установени, Свързани и Непроследявани Връзки: Позволява на вече установени и свързани връзки да продължат, което е важно за нормалната комуникация.
/ip firewall filter
add action=drop chain=input src-address-list=!accept
Блокиране на Трафик, Който Не Идва от Разрешените Адреси: Предотвратява достъп от всякакви източници, които не са част от accept
списъка.
3. FastTrack на Установени и Свързани Връзки
/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=established,related
Това правило позволява FastTrack на установени и свързани връзки, което подобрява производителността на мрежата, като намалява натоварването на CPU за обработка на тези пакети.
4. NAT Правило за Masquerade
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
Това NAT правило използва masquerade за интерфейса ether1
, което е типично за споделяне на един външен IP адрес с множество устройства във вашата вътреш
Как работи port forwarding в MikroTik
Port forwarding в MikroTik рутерите се използва за пренасочване на трафик от един порт от външния интерфейс (например интернет) към определен вътрешен IP адрес и порт във вашата мрежа. Това е полезно за услуги като веб сървъри, игрови сървъри, VPN и други приложения, които трябва да бъдат достъпни от външната мрежа.
Ето основните стъпки за настройка на port forwarding в MikroTik:
1. Определете Целевия Вътрешен IP и Порт
Трябва да знаете IP адреса на устройството във вашата мрежа, което искате да достъпите отвън, както и порта (или портовете), които ще бъдат пренасочени.
2. Настройка на NAT Правило
Използвайте NAT (Network Address Translation) за да създадете правило за пренасочване на трафика.
Примерна конфигурация на port forwarding може да изглежда така:
/ip firewall nat
add action=dst-nat chain=dstnat dst-port=22 in-interface=ether1 protocol=tcp to-addresses=192.168.101.10 to-ports=22 comment="Home Server SSH"
add action=dst-nat chain=dstnat dst-port=80 in-interface=ether1 protocol=tcp to-addresses=192.168.101.20 to-ports=80 comment="Home Server HTTP"
add action=dst-nat chain=dstnat dst-port=443 in-interface=ether1 protocol=tcp to-addresses=192.168.101.20 to-ports=443 comment="Home Server HTTPS"
add action=dst-nat chain=dstnat dst-port=37777 in-interface=ether1 protocol=tcp to-addresses=192.168.101.30 to-ports=37777 comment="Network Video Controller"
dst-address
: Вашият външен IP адрес или интерфейс.dst-port
: Външният порт, който искате да пренасочите.protocol
: Протоколът, обикновеноtcp
илиudp
.to-addresses
: IP адресът на вътрешното устройство.to-ports
: Портът на вътрешното устройство.
3. Проверка на Правилата за Филтриране
Уверете се, че вашите firewall правила позволяват входящия трафик на зададения порт. В противен случай, може да се наложи да добавите правило в /ip firewall filter
, което разрешава трафика на съответния порт.
4. Тестване
След като настроите правилата, тествайте конфигурацията от външна мрежа, за да се уверите, че пренасочването работи както се очаква.
Тази настройка е особено полезна, когато искате да осигурите достъп до услуги, работещи във вашата вътрешна мрежа, от външни местоположения.
Hairpin NAT в MikroTik
Hairpin NAT, известен още като NAT Loopback или NAT Reflection, е функция в MikroTik (и други мрежови устройства), която позволява на устройства във вашата вътрешна мрежа да достъпват други устройства в същата мрежа чрез външния IP адрес на рутера. Това е особено полезно в сценарии, където имате сървъри (като уеб или FTP сървъри), които са достъпни от външната мрежа чрез port forwarding, и искате тези същи услуги да бъдат достъпни от вътрешната мрежа, използвайки същия външен IP адрес.
Как работи Hairpin NAT?
При обичайното положение, когато вътрешно устройство иска да достъпи друго вътрешно устройство чрез външния IP, заявката отива до рутера, който след това трябва да “отрази” заявката обратно към вътрешната мрежа. Без hairpin NAT, рутерът обикновено не обработва тази заявка правилно, и връзката се губи.
Как да настроите Hairpin NAT в MikroTik?
За да настроите hairpin NAT, трябва да имате вече настроено правило за port forwarding, след което да добавите допълнително NAT правило за hairpin функционалността. Ето как става това:
/ip firewall nat
add action=masquerade chain=srcnat out-interface=bridge1 src-address=192.168.1.0/24 dst-address-type=192.168.1.30 dst-port=37777 protocol=tcp
В тази команда, src-address
трябва да бъде вашата вътрешна мрежа, а dst-port
и protocol
трябва да съответстват на вашето правило за port forwarding в случая с горното правило на коментара “Network Video Controller” което е домнашното ми видеонаблюдение двете правила ще работят така:
/ip firewall nat
add action=dst-nat chain=dstnat dst-port=37777 in-interface=ether1 protocol=tcp to-addresses=192.168.101.30 to-ports=37777
add action=masquerade chain=srcnat out-interface=bridge1 src-address=192.168.1.0/24 dst-address-type=192.168.1.30 dst-port=37777 protocol=tcp