MIKROTIK VLAN + FRIREWALL
Konfiguracja zapory ogniowej obejmująca VLAN w systemie operacyjnym RouterOS łotewskiej firmy Mikrotik.

    SIA Mikrotīkls Sp. Kapitałowa (MikroTik) ma siedzibę w Rydze. Tworzy sprzęty w związku z tym konkurencyjne cenowo (brak ceł), ale także co nie mniej ważne na poziomie światowym. Jakość produktów firmy łotewskiej jest wymuszona nie tylko światową konkurencją, ale także bezpośrednim sąsiedztwem mocarstwa jądrowego. Dodatkowo zapora ogniowa jest najważniejszą części polityki bezpieczeństwa dowolnego przedsiębiorstwa, czy tego chce, czy nie chce. Jest to skrzyżowanie, które nie tylko się programuje przy pierwszym uruchomieniu, ale również samo potrafi się nadzorować. Staje się też dziś wyznacznikiem wydajności sieci strukturalnej. Biorąc pod uwagę to co napisałem oraz traktując wcześniejszy artykuł MIKROTIK VLAN  jako bazę działającej infrastruktury spróbuje przedstawić istotne komendy programujące ruch pakietów wedle zasady blokuję wszystko, a wyjątkami przepuszczam określone usługi. By to osiągnąć będę stosował reguły stanowe, które działają na zasadzie śledzenia połączenia, a nie tylko sprawdzenia kierunku ruchu. Obrazowo przyrównałbym to do skrzyżowania  z sygnalizatorami świetlnymi mieniącymi się nawet pięcioma barwami, a nie skrzyżowania bezkolizyjnego (bezstanowe - sprawdza jedynie adres źródłowy i docelowy IP każdego pakietu).

 

Oczywiście w przyrodzie nic nie ginie i powoduje to zwielokrotnienie reguł, a więc dodatkowo zwiększa zużycie zasobów nie tylko samego routera, ale i pozostałych urządzeń w sieci. Z tego też powodu takie podejście stosuje się jedynie w sieciach korporacyjnych i firmach nad którymi pochylił się już wcześniej hacker, gdyż nie da się tego zrobić po taniości. Ten wpis formalnie będzie zawierał dwa zestawy reguł tożsame funkcjonalnie z sobą. Pierwszy szczegółowy, aż do bólu by uwypuklić ruch pakietów w obrębie poszczególnych predefiniowanych łańcuchów [filter (FORWARD, INPUT, OUTPUT), nat (SRCNAT, DSTNAT), raw (PREROUTING, POSTROUTING), mangle (PREROUTING, INPUT, FORWARD, OUTOUT, POSTROUTING)]. Wynika to również z procedury tworzenia przeze mnie firewalla. Tworzę regułę, jak najbardziej szczegółową (używam IP, protokół, port, interfejsy, Connection state itd.). Jak działa staram się ją uogólnić, np. zastępuję IP, interfejsami, interfejsy listami itd. Każdą zmianę testuję obserwując przepływ danych w kolumnie Bytes i Packets oraz logach. Drugi zestaw reguł operując na aliasach wyraźnie ukazuje logikę działania poszczególnych łańcuchów zapory podkreślając ich niezależność od siebie. Jest on ogólniejszy, a zatem bardziej nie tylko zwarty, ale również uniwersalny.  Choć każdy z łańcuchów działa niezależnie od siebie to dopiero ich synchronizacja oparta o wspólne punkty (adresacja IP, protokoły TCP, UDP oraz numery portów aktywnych usług) zapewnia pozytywny wpływ na bezpieczeństwo infrastruktury IT lub wręcz odwrotnie. Może stać się nie tylko problemem dla nas, ale również zagrożeniem dla innych nam bliskich i nie będziemy nawet tego świadomi! Warunki brzegowe jakie przyjąłem przy konfiguracji zapory sieciowej są następujące:

  • VLAN170 = 10.10.170.0/24 = VLAN_MANAGER - Podsieć przeznaczona do zarządzania urządzeniami aktywnymi sieci strukturalnej i bez dostępu do INTERNETU. Ta podsieć ma równocześnie dostęp do wszystkich pozostałych VLAN, ale one już nie.
  • VLAN171 = 10.10.171.0/24 = VLAN_SERVER - Podsieć przeznaczona dla serwerów mająca dostęp do INTERNETU, ale tylko poprzez protokoł HTTP i HTTPS
  • VLAN172 = 10.10.172.0/24 = VLAN_TERMINAL - Podsieć przeznaczona dla terminalów mająca dostęp równocześnie do INTERNETU poprzez protokóły HTTP, HTTPS, FTP, SMTP, SMTP-SSL, POP3, POP3-SSL, IMAP, IMAP-SSL oraz sieci VLAN171 poprzez porty 1433 (MSSQL), 3306 (MySQL), 5432 (POSTGRES)
  • VLAN173 = 10.10.173/24 = VLAN_VOIP - Podsieć przeznaczona dla urządzeń telekomunikacyjnych mająca dostęp do INTERNETU, ale jedynie poprzez porty 5060 (TCP,UDP) i z zakresu 10000-30000 (UDP). Tworzę ją ze względów bezpieczeństwa (protokół VOIP jest nieszyfrowany) oraz łatwiejszego później przyznania priorytetu już na poziomie podsieci. Mamy już pakiet oznaczony oraz w przypadku przełączników zarządzalnych już na samym starcie pakietu możemy jego przesył przyśpieszyć, a wbrew pozorom przy dzisiejszych dostępowych łączach światłowodowych to sieć lokalna często i gęsto okazuje się wąskim gardłem w całej infrastrukturze IT!
  •   VLAN174 = 10.10.174/24 = VLAN_WIFI - podsieć wydzielona z powodów analogicznych do sieci VOIP, ale mająca dostęp do INTERNETU poprzez protokół HTTP oraz HTTPS. Stworzyłem ja kierując się dwoma względami. Pierwszy to dostępność sygnału radiowego dla osób postronnych, a zatem niemożność z zasady gwarancji bezpieczeństwa i integralności danych wysyłanych tą drogą. Drugi pogłębiający pierwszy powód, czyli sama natura HOTSPOT świadczacego dostęp do internetu parktycznie dla osób przypadkowych.
  • interfejs lo (127.0.0.1) nie jest blokowany
  • protokół ICMP nie jest blokowany
  • serwer czasu (NTP) uruchomiony na routerze jest przekierowany (SRCNAT) z portu 123 (blokowany przez dostawcę internetu lub jak kto woli zajęty przez demona uruchominego na jego modemo-routerze) na porty z zakresu 12300-12390. Natomiast urządzenia sieci wewnętrznej (VLAN) mają nadal poprzez port 123 możliwość synchronizacji czasu z naszym MikroTik-iem.
  • usługa DNS pracująca na routerze ma dostęp do zewnętrznych serwerów DNS, ale urządzenia  sieci lokalnej rozwiązywanie nazw uzyskają tylko od routera MikroTika.
  • administracja MikroTika odbywa się tylko z podsieci VLAN170 i za pośrednictwem aplikacji WINBOX wykorzystującej standardowo port 8291.
  • udostępnienie dla routera (łańcuch input, output) dostępu do serwera aktualizacyjnego firmy MikroTik update.mikrotik.com na porcie 80

    Zacznę od wyłączenia dwóch reguł FORWARD z poprzedniego artykułu lub usunięcia ich jak komu pasuje. Gdy to już uczynimy stracimy nie tylko dostęp do sieci zewnętrznej, ale także zostanie zakłócony ruch miedzy VLAN-ami.

/ip firewall filter disable numbers=0


/ip firewall filter disable numbers=1


W miejsce dezaktywowanych zasad dodajemy dwie następujące reguły dla protokołu ICMP dające sens wykonania komendy ping z sieci VLAN w kierunku urządzeń będących w INTERNECIE:

/ip firewall filter add action=accept chain=forward comment="Zezwalamy na wysylanie PING z VLAN do INTERNETU" connection-state=established,related,new out-interface-list=WAN protocol=icmp src-address=10.10.0.0/16

/ip firewall filter add action=accept chain=forward comment="Zezwalamy na wpuszczenie powracjacego PING z INTERNETU do VLAN" connection-state=established,related dst-address=10.10.0.0/16 in-interface-list=WAN protocol=icmp

    Reguły dla łańcucha FORWARD sieci VLAN są poniżej, ale ze szczegółowymi rzutami ekranu tylko dla sieci VLAN170. Zakładam, że będzie miała dostępem jedynie do usługi www (protokół http i https) celem dostępu do uaktualnień urządzeń aktywnych sieci strukturalnej. Jeśli natomiast ze względu na potencjalną furtkę w zabezpieczeniach, jaką tworzy sam dostęp do internetu możemy jednak chcieć całkowicie odciąć je od świata zewnętrznego. Uzyskamy to pomijając po prostu poniższe dwie reguły. Oczywiście nie zwalania nas to od uaktualnień będących w tej podsieci systemów:

/ip firewall filter add chain=forward src-address=10.10.170.0/24 protocol=tcp dst-port=80,443 out-interface-list=WAN connection-state=established,related,new action=accept comment="Pakiety wyslane z VLAN=170 na zew."

/ip firewall filter add chain=forward dst-address=10.10.170.0/24 protocol=tcp src-port=80,443 in-interface-list=WAN connection-state=established,related action=accept comment="Pakiety wracajace z zew. do VLAN=170

    Analogicznie konfigurujemy wyjście na zewnątrz dla pozostałych VLAN-ów z zróżnicowanym dostępem do usług zgodnie z ich przeznaczeniem. Przypomnę VLAN171 będzie miał dostęp jedynie do protokołu www, a VLAN172 będzie miał dostęp do usług www, ftp, smtp, pop3, imap, smtp-ssl, pop3-ssl oraz imap-ssl. Natomiast VLAN173 tylko do usługi VOIP, a VLAN174 tylko do www podobnie jak VLAN171 :

/ip firewall filter add chain=forward src-address=10.10.171.0/24 protocol=tcp dst-port=80,443 out-interface-list=WAN connection-state=established,related,new action=accept comment="Pakiety wyslane z VLAN=171 na zew."

/ip firewall filter add chain=forward src-address=10.10.172.0/24 protocol=tcp dst-port=80,443,21,25,110,143,465,587,993,995 out-interface-list=WAN connection-state=established,related,new action=accept comment="Pakiety wyslane z VLAN=172 na zew."

/ip firewall filter add chain=forward src-address=10.10.173.0/24 protocol=tcp dst-port=5060 out-interface-list=WAN connection-state=established,related,new action=accept comment="Pakiety wyslane z VLAN=173 na zew. (SIP Control)"

/ip firewall filter add chain=forward src-address=10.10.173.0/24 protocol=udp dst-port=5060,10000-30000 out-interface-list=WAN connection-state=established,related,new action=accept comment="Pakiety wyslane z VLAN=173 na zew. (SIP control, RTP protocol)"

/ip firewall filter add chain=forward src-address=10.10.174.0/24 protocol=tcp dst-port=80,443 out-interface-list=WAN connection-state=established,related,new action=accept comment="Pakiety wyslane z VLAN=174 na zew."

/ip firewall filter add chain=forward dst-address=10.10.171.0/24 protocol=tcp src-port=80,443 in-interface-list=WAN connection-state=established,related action=accept comment="Pakiety przychodzce z zew. do VLAN=170"

/ip firewall filter add chain=forward dst-address=10.10.172.0/24 protocol=tcp src-port=80,443,21,25,110,143,465,587,993,995 in-interface-list=WAN connection-state=established,related action=accept comment="Pakiety przychodzce z zew. do VLAN=172"

/ip firewall filter add chain=forward dst-address=10.10.173.0/24 protocol=tcp src-port=5060 in-interface-list=WAN connection-state=established,related action=accept comment="Pakiety wracajace z zew. do VLAN=173 (SIP Control)"

/ip firewall filter add chain=forward dst-address=10.10.173.0/24 protocol=udp src-port=5060,10000-30000 in-interface-list=WAN connection-state=established,related action=accept comment="Pakiety wracajace z zew. do VLAN=173 (SIP Control, RTP protocol )"

/ip firewall filter add chain=forward dst-address=10.10.174.0/24 protocol=tcp src-port=80,443 in-interface-list=WAN connection-state=established,related action=accept comment="Pakiety wracajace z zew. do VLAN=174"


    Pozostaje teraz jeszcze raz skonfigurować ruch między VLAN-ami skupiając się na opcji "Connection State" musimy uwzględnić ruch pakietów w tą stronę i we w tą. Uszczegóławiam też założenia z poprzedniego artykułu, że VLAN170 ma dostęp do wszystkich pozostałych VLAN171, VLAN172, VLAN173, VLAN174, ale one już nie do siebie. Dodatkowo chcę by pakiety sieci VLAN171 (recepcja-serwer) i VLAN172 (lekarze) również miały dostęp miedzy sobą tak jak to było w poprzednim artykule, ale w ograniczonym zakresie sprowadzającym się jedynie do portów baz danych, np. MSSQL (1433) i MYSQL (3306) oraz POSTGRESQL (5432) w sieci VLAN171. Czyli coś ala VLAN170, ale odwrócony i ograniczony. Na początek proponuje tak jak wcześniej usunąć reguły tyczące się tym razem ruchu VLAN miedzy sobą,  a później dodać następujące w ich miejsce lub jak to woli zmodyfikować i dodać. Zapewniamy dostęp VLAN170 do pozostałych VLAN-ów:

/ip firewall filter add action=accept chain=forward comment="Pakiet wyslany z VLAN170 do VLAN171 " connection-state=established,related,new dst-address=10.10.171.0/24 src-address=10.10.170.0/24
/ip firewall filter add action=accept chain=forward comment="Pakiet wyslany z VLAN170 do VLAN172 " connection-state=established,related,new dst-address=10.10.172.0/24 src-address=10.10.170.0/24
/ip firewall filter add action=accept chain=forward comment="Pakiet wyslany z VLAN170 do VLAN173" connection-state=established,related,new dst-address=10.10.173.0/24 src-address=10.10.170.0/24
/ip firewall filter add action=accept chain=forward comment="Pakiet wyslany z VLAN170 do VLAN174" connection-state=established,related,new dst-address=10.10.174.0/24 src-address=10.10.170.0/24


/ip firewall filter add action=accept chain=forward comment="Pakiet wracajacy z VLAN171 do VLAN170" connection-state=established,related dst-address=10.10.170.0/24 src-address=10.10.171.0/24
/ip firewall filter add action=accept chain=forward comment="Pakiet wracajacy z VLAN172 do VLAN170" connection-state=established,related dst-address=10.10.170.0/24 src-address=10.10.172.0/24
/ip firewall filter add action=accept chain=forward comment="Pakiet wracajacy z VLAN173 do VLAN170" connection-state=established,related dst-address=10.10.170.0/24 src-address=10.10.173.0/24
/ip firewall filter add action=accept chain=forward comment="Pakiet wracajacy z VLAN174 do VLAN170" connection-state=established,related dst-address=10.10.170.0/24 src-address=10.10.174.0/24

W kolejnym kroku regulujemy ruch miedzy wirtualną siecią 171 w której znajduje się serwery trzech baz danych, a wirtualną siecią 172 przeznaczoną dla klientów serwerów baz danych.


/ip firewall filter add action=accept chain=forward comment="Zezwolenie na powrot pakietow z VLAN171 do VLAN172, ale tylko dla sledzonych portow 1433, 3306, 5432." connection-state=established,related dst-address=10.10.172.0/24 protocol=tcp src-address=10.10.171.0/24 src-port=1433,3306,5432
/ip firewall filter add action=accept chain=forward comment="Zezwolenie na polaczenie z VLAN172 do VLAN171, ale tylko dla sledzonych portow 1433, 3306, 5432." connection-state=established,related,new dst-address=10.10.171.0/24 dst-port=1433,3306,5432 protocol=tcp src-address=10.10.172.0/24


W kwestii łańcucha FORWARD należy postawić kropkę nad "i". I zablokować wszelkie pakiety nie pasujące do powyższych reguł:

/ip firewall filter add action=drop chain=forward

lub bardziej rozbudowana pokazująca w logach routera pakiety nieprzepuszczone, np. do drukarek, kser itd. będących po za tymi podsieciami, a mimo wszystko zainstalowanymi w lokalnych stacjach roboczych:


/ip firewall filter add action=drop chain=forward log=yes log-prefix="DROP FORWARD"

    Chciałobym napisać, że to już koniec. Niestety zostały nam jeszcze trzy łańcuchy do oprogramowania. Są to miedzy innymi INPUT i wbrew pozorom nie mniej istotny OUTPUT. Szczególnie, gdy router zostanie z jakiś względów skompromitowany, jak również ze względu na pierwotne założenie, że blokujemy wszystko musimy się zastanowić jakie usługi (adresy IP, protokoły, porty) są niezbędne do prawidłowego działania routera (sieci strukturalnej). Wymienię je w podpunktach:

  1. lo (IP: 127.0.0.1 ,protokół: TCP i UDP, port: dowolny) - Ruch pakietów po interfejsie wewnętrznym jest bez żadnych ograniczeń.
  2. DNS (IP: 1.1.1.1,193.110.81.0 ,protokół: UDP, port: 53) - Są to serwery DNS w USA (CloudFlare) i Francji (dns0.eu) z blokowaniem malware. Zakładam, że dla sieci wewnętrznej (VLAN) DNS zewnętrzne będą dostępne przez analogiczną usługę uruchomioną na routerze dla których będzie on również bramą. Pod takim adresem bramy DNS będzie automatycznie przez DHCP konfigurowany na lokalnych terminalach.
  3. NTP (IP: time.cloudflare.com, time.windows.com, 0.pool.ntp.org, protokół: UDP, port: 123)- sieciowy serwer czasu synchronizuje zegary systemowe lokalnych komputerów, systemy CCTV, jak i sam siebie
  4. WINBOX (IP: 10.10.170.1, protokół: TCP, port: 8291) - dostęp administracyjny routera z poziomu VLAN170 do routera MikroTika przez aplikację WINBOX
  5. PING (IP: 0.0.0.0, protokół: ICMP, port: ) - protokół typowo administracyjny bez ograniczeń
  6. update.mikrotik.com:80 - dostęp do serwera z aktualizacjami MikroTikOS
  7. Reguła blokująca wszystkie pozostałe pakiety.

Mając warunki brzegowe zaczynam ich wdrożenie od łańcucha INPUT:

Ad. 1


/ip  firewall filter add action=accept chain=input comment="Zezwalamy na ruch na interfejsie lo" connection-state=established,related,new in-interface=lo

Ad. 2

/ip firewall filter add chain=input action=accept in-interface-list=LAN protocol=udp port=53 connection-state=established,related,new comment="Dostep VLAN-ow do DNS routera MikroTika"

Ad. 3

/ip firewall filter add chain=input action=accept in-interface-list=LAN protocol=udp port=123 connection-state=established,related,new comment="Dostep VLAN-ow do serwera czasu routera MikroTika"

Ad. 4

/ip firewall filter add chain=input src-address=10.10.170.0/24 action=accept in-interface-list=LAN protocol=tcp port=8291 connection-state=established,related,new comment="Dostep WINBOX-a z VLAN=170 do routera MikroTika"

Ad. 5   


/ip firewall filter add chain=input protocol=icmp connection-state=established,related,new action=accept comment="Zezwalamy na PING"

Ad. 6


/ip firewall filter add chain=input action=accept  src-address=159.148.147.251/24 in-interface-list=WAN protocol=tcp port=80 connection-state=established,related,new comment="Dostep routera do serwera z aktualizacjami MikroTikOS"

Ad. 7

/ip firewall filter add chain=input action=drop comment="Blokada
wszystkich pakietow przychodzcych

    Teraz mamy do opracowania łańcuch OUTPUT. Teoretycznie powinien być analogiczny do INPUT, ale tak jak w przypadku łańcucha FORWARD dla podsieci VLAN171 i VLAN172 może nam zależeć na braku symetryczności także między tymi łańcuchami. Celem tego działania może być zablokowanie dla HACKER-a tych otwartych portów, np. przez trojany do niepostrzeżonego zarządzania nimi. Najłatwiej to uzyskać trzymając się logiki ruchu pakietów dla poszczególnych usług i odzwierciedlać ich schemat na poziomie opcji Connection State w Filter Rules.   Łańcuch jest tak mocny, jak jego najsłabsze ogniwo. Więc nie odpuszczałbym także OUTPUT i nad każdą przeniesioną regułą z INPUT-a pochyliłbym się jeszcze raz, z osobna. 

Ad. 1

/ip firewall filter add action=accept chain=output comment="Zezwalamy na ruch wychodzacy dla interfejsu lo" out-interface=lo

Ad. 2

/ip firewall filter add action=accept chain=output comment="Dostep VLAN-ow do DNS routera MikroTika" connection-state=established,related,new dst-address=10.10.170.0/24 protocol=udp src-port=53

/ip firewall filter add action=accept chain=output comment="Dostep MikroTika do zew. DNS-ow" connection-state=established,related,new dst-port=53 out-interface-list=WAN protocol=udp

Ad. 3

/ip firewall filter add action=accept chain=output comment="Dostep VLAN-ow do uslugi czasu routera_MikroTika dla pakietow powracajacych do VLAN-ow" connection-state=established,related dst-address=10.10.170.0/24 protocol=udp src-port=123

/ip firewall filter add action=accept chain=output comment="Dostep do zewnetrznych serwerow czasu routera MikroTika" connection-state=established,related,new dst-port=123 out-interface-list=WAN protocol=udp

Ad. 4

/ip firewall filter add action=accept chain=output comment="Dostep WINBOX-a z VLAN_MANAGER do routera MikroTika dla pakietow powracajacych.do VLAN_MANAGER" connection-state=established,related dst-address=10.10.170.0/24 protocol=tcp src-port=8291

Ad. 5

/ip firewall filter add action=accept chain=output comment="Zezwalamy na PING" connection-state=established,related,new protocol=icmp

Ad. 6


/ip firewall filter add chain=input action=accept dst-address=159.148.147.251 in-interface-list=WAN protocol=tcp port=80 connection-state=established,related,new comment="Dostep routera do serwera z aktualizacjami MikroTikOS"

Ad. 7

/ip firewall filter add action=drop chain=output comment="Blokada wszystkich pakietow przychodzcych" log=yes log-prefix="OUTPUT DROP"

    Został nam ostatni łańcuch NAT do oprogramowania (Bardzo istotna jest kolejność reguł. Szczególnie za routerami provaiderów kiedy korzystamy z ich mumeracji wewnętrznej, kiedy nie mamy przydzielonego stałego IP.):

/ip firewall nat add action=masquerade chain=srcnat comment="NTP fix" dst-port=123 out-interface-list=WAN protocol=udp to-ports=12300-12390

/ip firewall nat add action=masquerade chain=srcnat out-interface-list=WANadd action=masquerade chain=srcnat out-interface-list=WAN

    Na zakończenie tak jak na początku napisałem przedstawie powyższe reguły zapory przy użyciu aliasów. Adresy IP zastąpiłem nazwami sieci VLAN..., które również zmodyfikowałe, np. VLAN170 -> VLAN_MANAGER itd. Dodatkowo w praniu wyszło, że na serwerze będzie postawiona baza FIREBIRD (port 3050), zdalny dostęp TIGHTVNC (port 5900) oraz będzie udostępniony katalog (port 137,138,139,443) z klientem aplikacji korzystającej z bazy danych pod FIREBIRD-em. Zasady dostepu miedzy VLAN-ami te same. Dodatkowe reguły i te zmodyfikowane tym razem już nie bawiąc się weksportuje je do postaci pliku przy pomocy komendy i jego zawartość zamieszczam poniżej:

/ip firewall export file=firewall_rules_all


# 2024-08-09 15:30:20 by RouterOS 7.15.3
# software id = T...8
#
# model = CCR1009-7G-1C-1S+
# serial number = 8...9
/ip firewall filter
add action=accept chain=forward comment=\
"Zezwalamy na wysylanie PING z VLAN do INTERNETU" connection-state=\
established,related,new in-interface=all-vlan out-interface-list=WAN \
protocol=icmp
add action=accept chain=forward comment=\
"Zezwalamy na wpuszczenie powracjacego PING z INTERNETU do VLAN" \
connection-state=established,related in-interface-list=WAN out-interface=\
all-vlan protocol=icmp
add action=accept chain=forward comment=\
"Pakiety wysylane z VLAN_MANAGER na zew." connection-state=\
established,related,new disabled=yes dst-port=80,443 in-interface=\
vlan_MANAGEMENT out-interface-list=WAN protocol=tcp
add action=accept chain=forward comment=\
"Pakiety wysylane z VLAN_SERVER na zew." connection-state=\
established,related,new dst-port=80,443 in-interface=vlan_SERVER \
out-interface-list=WAN protocol=tcp
add action=accept chain=forward comment=\
"Pakiety wysylane z VLAN_TERMINAL na zew." connection-state=\
established,related,new dst-port=80,443,25,110,143,465,587,993,995 \
in-interface=vlan_TERMINAL out-interface-list=WAN protocol=tcp
add action=accept chain=forward comment=\
"Pakiety IPSEC wysylane z VLAN_TERMINAL na zew." connection-state=\
established,related,new dst-port=500,1701,4500 in-interface=vlan_TERMINAL \
out-interface-list=WAN protocol=udp
add action=accept chain=forward comment=\
"Pakiety wysylane z VLAN_VOIP na zew.(SIP Control)" connection-state=\
established,related,new dst-port=5060 in-interface=vlan_VOIP \
out-interface-list=WAN protocol=tcp
add action=accept chain=forward comment=\
"Pakiety wysylane z VLAN_VOIP na zew.(SIP control, RTP protocol)" \
connection-state=established,related,new dst-port=5060,10000-30000 \
in-interface=vlan_VOIP out-interface-list=WAN protocol=udp
add action=accept chain=forward comment=\
"Pakiety wysylane z VLAN_WIFI na zew." connection-state=\
established,related,new dst-port=80,443 in-interface=vlan_WIFI \
out-interface-list=WAN protocol=tcp
add action=accept chain=forward comment=\
"Pakiety wracajace z zew. do VLAN_MANAGER" connection-state=\
established,related disabled=yes in-interface-list=WAN out-interface=\
vlan_MANAGEMENT protocol=tcp src-port=80,443
add action=accept chain=forward comment=\
"Pakiety wracajace z zew. do VLAN_SERVER" connection-state=\
established,related in-interface-list=WAN out-interface=vlan_SERVER \
protocol=tcp src-port=80,443
add action=accept chain=forward comment=\
"Pakiety wracajace z zew. do VLAN_TERMINAL" connection-state=\
established,related in-interface-list=WAN out-interface=vlan_TERMINAL \
protocol=tcp src-port=80,443,25,110,143,465,587,993,995
add action=accept chain=forward comment=\
"Pakiety IPSEC wracajace z zew. do VLAN_TERMINAL" connection-state=\
established,related in-interface-list=WAN out-interface=vlan_TERMINAL \
protocol=udp src-port=500,1701,4500
add action=accept chain=forward comment=\
"Pakiety wracajace z zew. do VLAN_VOIP (SIP Control)" connection-state=\
established,related in-interface-list=WAN out-interface=vlan_VOIP \
protocol=tcp src-port=5060
add action=accept chain=forward comment=\
"Pakiety wracajace z zew. do VLAN_VOIP (SIP Control, RTP Protocol)" \
connection-state=established,related in-interface-list=WAN out-interface=\
vlan_VOIP protocol=udp src-port=5060,10000-30000
add action=accept chain=forward comment=\
"Pakiety wracajace z zew. do VLAN_WIFI" connection-state=\
established,related in-interface-list=WAN out-interface=vlan_WIFI \
protocol=tcp src-port=80,443
add action=accept chain=forward comment=\
"Pakiet wyslany z VLAN_MANAGER do wszystkich pozostalych VLAN " \
connection-state=established,related,new in-interface=vlan_MANAGEMENT \
out-interface=all-vlan
add action=accept chain=forward comment=\
"Pakiet wracajacy z VLAN-ow do VLAN_MANAGER" connection-state=\
established,related in-interface=all-vlan out-interface=vlan_MANAGEMENT
add action=accept chain=forward comment="Zezwolenie na powr\F3t pakiet\F3w z V\
LAN_SERVER do VLAN_TERMINAL, ale tylko dla \9Cledzonych port\F3w FIREBIRD.\
" connection-state=established,related in-interface=vlan_SERVER \
out-interface=vlan_TERMINAL protocol=tcp src-port=3050,5900
add action=accept chain=forward comment="Zezwolenie na po\B3aczenie z VLAN_TER\
MINAL do VLAN_SERVER, ale tylko dla \9Cledzonych port\F3w FIREBIRD." \
connection-state=established,related,new dst-port=3050,5900 in-interface=\
vlan_TERMINAL out-interface=vlan_SERVER protocol=tcp
add action=accept chain=forward comment="Zezwolenie na powr\F3t pakiet\F3w WIN\
DOWS SHARE z VLAN_SERVER do VLAN_TERMINAL, ale tylko dla \9Cledzonych port\
\F3w." connection-state=established,related dst-port=\
137,138,139,445,389,445,901 in-interface=vlan_TERMINAL out-interface=\
vlan_SERVER protocol=tcp
add action=accept chain=forward comment="Zezwolenie na powr\F3t pakiet\F3w WIN\
DOWS SHARE z VLAN_SERVER do VLAN_TERMINAL, ale tylko dla \9Cledzonych port\
\F3w." connection-state=established,related,new in-interface=vlan_SERVER \
out-interface=vlan_TERMINAL protocol=tcp src-port=\
137,138,139,445,389,445,901
add action=drop chain=forward comment="Blokada pakietow w lancuchu FORWARD" \
log=yes log-prefix="DROP FORWARD"
add action=accept chain=input comment=\
"Zezwalamy na ruch przychodzacy dla interfejsu lo" connection-state=\
established,related,new in-interface=lo
add action=accept chain=input comment="Zezwalamy na PING" connection-state=\
established,related,new protocol=icmp
add action=accept chain=input comment=\
"Dostep WINBOX-a z VLAN_MANAGER do routera MikroTika" connection-state=\
established,related,new dst-port=8291 in-interface=vlan_MANAGEMENT \
protocol=tcp
add action=accept chain=input comment=\
"Dostep VLAN-ow do uslugi czasu routera MikroTika" connection-state=\
established,related,new dst-port=123 in-interface=all-vlan protocol=udp
add action=accept chain=input comment=\
"Dostep do zewnetrznych serwerow czasu routera MikroTika" \
connection-state=established,related dst-port=123 in-interface-list=WAN \
protocol=udp
add action=accept chain=input comment=\
"Dostep VLAN-ow do DNS routera MikroTika" connection-state=\
established,related,new dst-port=53 in-interface=all-vlan protocol=udp
add action=accept chain=input comment="Dostep MikroTika do zew. DNS-ow" \
connection-state=established,related in-interface-list=WAN protocol=udp \
src-port=53
add action=drop chain=input comment=\
"Blokada wszystkich pakietow przychodzcych do MIKROTIKA" log-prefix=\
"DROP INPUT" priority=0
add action=accept chain=output comment=\
"Zezwalamy na ruch wychodzacy dla interfejsu lo" out-interface=lo
add action=accept chain=output comment="Zezwalamy na PING" connection-state=\
established,related,new protocol=icmp
add action=accept chain=output comment="Dostep WINBOX-a z VLAN_MANAGER do rout\
era MikroTika dla pakietow powracajacych.do VLAN_MANAGER" \
connection-state=established,related out-interface=vlan_MANAGEMENT \
protocol=tcp src-port=8291
add action=accept chain=output comment="Dostep VLAN-ow do uslugi czasu routera\
\_MikroTika dla pakietow powracajacych do VLAN-ow" connection-state=\
established,related out-interface=all-vlan protocol=udp src-port=123
add action=accept chain=output comment=\
"Dostep do zewnetrznych serwerow czasu routera MikroTika" \
connection-state=established,related,new dst-port=123 out-interface-list=\
WAN protocol=udp
add action=accept chain=output comment=\
"Dostep VLAN-ow do DNS routera MikroTika" connection-state=\
established,related,new out-interface=all-vlan protocol=udp src-port=53
add action=accept chain=output comment="Dostep MikroTika do zew. DNS-ow" \
connection-state=established,related,new dst-port=53 out-interface-list=\
WAN protocol=udp
add action=drop chain=output comment=\
"Blokada wszystkich pakietow wychodzacych z MIKROTIKA" log-prefix=\
"OUTPUT DROP"
/ip firewall nat
add action=masquerade chain=srcnat comment="NTP fix" dst-port=123 \
out-interface-list=WAN protocol=udp to-ports=12300-12390
add action=masquerade chain=srcnat comment=MASKARADA out-interface-list=WAN

/ip firewall filter add chain=input action=accept  src-address=159.148.147.251/24 in-interface-list=WAN protocol=tcp port=80 connection-state=established,related,new comment="Dostep routera do serwera z aktualizacjami MikroTikOS" 

/ip firewall filter add chain=input action=accept dst-address=159.148.147.251 in-interface-list=WAN protocol=tcp port=80 connection-state=established,related,new comment="Dostep routera do serwera z aktualizacjami MikroTikOS"

Opracowane na podstawie:

Szczególne podziękowania dla:

  • firmy PLATAN Sp. z o. o. z Sopotu za uczestnictwo w szkoleniu konfiguracji VOIP, w którym VLAN okazał się jego integralną częścią
  • firmy Ogarniacze Sp. z o. o. z Krakowa za krótką, acz dającą mi dużo do myślenia prezentację technologii VLAN







MIKROTIK VLAN
Synchronizacja VLAN-ów miedzy Mikrotik router CCR, a Mikrotik switch CSS