fbpx

22T37 Firewall Podstawy [konfiguracja MikroTik]

MikroTik Blokowanie Ruchu na Firewall’u

Więcej miejsc do posłuchania:

Spotify

0:00 Wprowadzenie

0:31 Topologia

1:41 Konfiguracja

17:05 Podsumowanie

Transkrypcja


Cześć. W tym odcinku pokażę, jak zabezpieczyć swoją sieć działającą na MikroTiku typowymi podstawowymi regułami na Firewall’u. Jak taki Firewall działa, jak są przetwarzane reguły, w jaki sposób te reguły pisać, w jaki sposób te reguły testować i jednocześnie zabezpieczyć się przed wersją odcięcia się od zdalnego dostępu do naszego MikroTika. W tym odcinku zobaczysz wszystkie te elementy.

Przejdźmy zatem do topologii jaką tutaj mamy. W dzisiejszym odcinku pokażę jak stworzyłem schemat reguł Firewall’owych na MikroTiku 1, czyli routerze, który jest zaznaczony w ramce czerwonej. Po lewej stronie. Reguły będą się opierały na adresacji, w związku z tym wrócimy sobie też z kilka razy omawiając poszczególne reguły, jakie mamy adresacje. Natomiast żebyś zrozumiał ogólną koncepcję: jeżeli chodzi o tą sieć 10.253.253 to to jest dla mnie VAN i to jest sieć, która umożliwia połączenia zdalne remote access od systemów zewnętrznych tym zielonym tutaj tunelem. Oprócz tego jest zestawiony pomiędzy lokalizacjami czyli MikroTikiem 1 a 2 tunel Site to Site w adresacji jak widzisz, jeżeli chodzi o wewnętrzną adresację tego tunelu tj. 10.255.255.1 i druga strona tego tunelu tj 10.255.255.2. Będziemy się posługiwać tą adresacją tworząc poszczególne reguły Firewall’a.

No to przejdźmy teraz do konfiguracji. Mamy tutaj WinBoxa. Ja jestem zalogowany na MikroTiku1. Zanim zacznę omawiać reguły Firewall’owe to warto wejść najpierw w IP –> Services. Sprawdzić jakie usługi mamy uruchomione na naszym routerze. Założenie jest takie, że powinniśmy wyłączyć wszystko, czego nie używamy. Czyli ograniczamy do minimum protokoły czy usługi, które działają na tym naszym routerze w celu ograniczenia potencjalnego ryzyka. Jeżeli używam SSH i WinBoxa jak w moim przypadku to tylko do tych dwóch usług się ograniczam. Kolejnym krokiem jest stworzenie reguł Firewall’owych. Reguły te tworzysz tutaj w kontekście IP –> Firewall, otwierasz to okienko i pierwsze co tutaj można zauważyć, to, że jest numerowanie poszczególnych reguł. Mam tutaj 12 reguł 0-11 i są to reguły, które są przetwarzane właśnie w tej kolejności. Czyli należy pamiętać, że na tym Firewallu reguła zerowa najpierw jest przetwarzana 1 aż do 11. Jeżeli dany pakiet, a każdy pakiet jest sprawdzany w kontekście tych reguł Firewall’owych, trafi w pierwszą akceptującą, czyli taką pasującą regułę, no to nie są przetwarzane kolejne reguły i dlatego konstrukcja typowa jest taka, że najbardziej specyficzne takie reguły, które wiemy, że chcemy najpierw sprawdzać powinny być na samej górze. Natomiast reguły, które będą dotyczyły wszystkiego, czego nie skonfigurowaliśmy wyżej, powinny by na samym dole. Tak się klasycznie robi, ja skonfigurowałem na samym dole akcję dotyczące i reguły dotyczące kasowania ruchu w akcji droop dla wszystkich trzech chainów.

Co to jest chain? To jest taki zestaw reguł, które przetwarza MikroTik i każdy z tych zestawów, każdy z chainów oznacza inny typ przetwarzania. Czyli jeżeli mówimy o input, tym trybie, to jest to pakiet który dotyczy naszego routera MikroTik. Czyli jego docelowym adresatem jest MikroTik, który konfigurujemy. Jeżeli chodzi o chain forward, to to jest zestaw reguł, które dotyczą przekazywania pakietu pomiędzy jednym interfejsem a innym interfejsem. Czyli jest interfejs wejściowy i wyjściowy. No i na końcu mamy chain output, najrzadziej używany. To jest chain, który dotyczy pakietów, które są generowane z MikroTika i wychodzą przez jakiś interfejs. Tutaj nacisk chyba na to wychodzenie to jest ta reguła właśnie, która dotyczy output. Na początku skonfigurowałem dwie reguły, które dotyczą przetwarzania ruchu dla sesji ustanowionych. Czyli jeżeli my nawiązujemy jak to tradycyjnie ma miejsce daną sesję z wewnętrznej naszej sieci, to chcemy, żeby ruch powracający w ramach tej sesji był akceptowany przez nasz router i Firewall. Chodzi o to, że musimy wtedy dużo mniej reguł wpisać, co ułatwia znacząco nam pracę na Firewallu. Musimy tylko zadbać o to, żeby odpowiednio stworzyć i ułożyć reguły dotyczące tych pierwszych pakietów, które nawiązują dane połączenia. Możemy sobie też sprawdzić, tu w zakładce na Firewallu – Connections, jakie aktualnie połączenia mamy realizowane w ramach tego naszego routera. To może być przydatne, jeżeli się zastanawiamy jakie reguły powinniśmy stworzyć. O tym jeszcze powiem. Żeby zabezpieczyć ten nasz ruch ale jednocześnie zezwolić na wszystkie pakiety, które powinny w ramach naszej sieci być przekazywane. Czyli najpierw dwie reguły w chain forward input, dotyczące stablished I related connections.

Więcej na ten temat tego konceptu podchodzenia do tworzenia reguł i poszczególnych funkcji tego chaina będę opowiadał w podkaście więc teraz się skupmy na konfiguracji. Jeżeli chodzi o kolejny wpis czy kolejną grupę to są wpisy, które ja stworzyłem dotyczące zarządzania. Łączę się tutaj Winboxem w związku z tym zezwoliłem na ruch Winboxowy w protokole TCP, na porcie 82.91, w chainie input i w chainie output. I oczywiście stosownie do tego skonfigurowałem źródłową adresację. Ten adres 10.25.1 to jest moja sieć zarządzania w tym przykładzie. To jest oczywiście element, który jest zalecany żeby stworzyć osobną dedykowaną sieć zarządzania, z której będziemy się łączyć, żeby zarządzać naszą infrastrukturą. Oczywiście Source Destination Ports musi być odpowiednio też dostosowany i można oczywiście tutaj zastosować, ale to już jest kwestia Twojej koncepcji, gdzie trafiają pakiety, które w ramach sesji menagementowych są generowane i wysyłane. Jak widzisz mi się zwiększają liczniki zarówno ilości pakietów, zarówno w regule trzeciej, czyli output dla menagementu jak i w tej części established delited connections bo tutaj mam input. Tu możnaby oczywiście też output dodać, jeżeli to miałoby zastosowanie w Twoim przypadku. Idąc dalej, co mamy dalej za reguły. Mam tutaj tunel Side to Side, który wcześniej pokazywałem, czyli pomiędzy MikroTikiem pierwszym po lewej stronie a MikroTikiem drugim, jest zestawiony tunel Site to Site na sieci podkładowej w adresacji 10.253.253. Wewnętrzna adresacja w tym tunelu 10.255.255.1 i końcówka 2 po prawej stronie z MikroTika. Więc jeżeli chodzi o regułę Site to Site to jak widać jest tutaj skonfigurowana dla sieci tej podkładowej, czyli żeby mogła być nawiązana komunikacja z MikroTika drugiego do pierwszego. To source adres IP jest z końcówką 106 w sieci 10.253.253. Protokół UDP i port, który jest związany z naszym interfejsem WireGuard.

Jeżeli byś chciał zobaczyć jaki to jest port to można kliknąć tu po lewej stronie WireGuard i zobaczyć na jakich portach nasłuchujemy dla poszczególnych usług. I idźmy dalej. Jeżeli chodzi o kolejną regułę to jest reguła, która mówi, że LAN, urządzenia w sieci LAN MikroTIka drugiego mogą się łączyć do MikroTika 1 i odpowiednio adresacja jest dla tego przypadku przypisana. Adekwatnie dla drugiego kierunku czy inicjacji ruchu z drugiej strony od MikroTika 1 do 2. Mamy tutaj taką możliwość. Tu trochę użyłem skrótu od MikroTika bo tak naprawdę mówimy tu o LANie. Czyli jak popatrzysz sobie na urządzenia, które są podpięte do MikroTika 1 i 2 to mówimy o tych VPC11, 12 i VPC 21, 22 dlatego reguły są w chainie forward bo pakiet, który będzie generowany przez MikroTika 1 będzie przechodził przez tunel, MikroTik 2 i VPC 22 albo 21, to będzie realizowane przez chan forward. I jak widzisz jest tu faktycznie chain forward zastosowany. Jeżeli chodzi o te wpisywanie reguł i sprawdzanie – nie jest to proste, zwłaszcza jak zaczyna tych reguł być dużo i masz dużo usług. WIęc warto to bez wątpienia testować, sprawdzać czy właściwie trafiają nam reguły w nasze wpisy, jeżeli nie to odpowiednio je dostosowywać. Na koniec mam jeszcze wpis dotyczący Road Warrior czyli dostępu zdalnego użytkowników do MikroTika 2. Czyli mówimy teraz o użytkownikach, którzy idą z LANu tego MikroTika 2, czyli 10.0.20 do użytkowników Road Warrior. Tu bym pewnie zmienił ten opis bo kierunek jest odwrotny, więc trochę wprowadza w błąd. Nie disable tylko commend czyli zmienimy, że to będzie z MikroTika 2 LAN do Road Warrior i możemy tą regułę włączyć. Co tutaj mamy jeszcze. Mamy zezwolenie na ruch od naszych użytkowników w LAN-ie do internetu. Czyli z naszej sieci 10.0.10 do wszystkich adresów bo nie są określone docelowe adresy IP. Czyli zezwalamy na cały taki ruch. Żeby dać Ci przykład nowej reguły to dodam nową regułę, będzie ona dotyczyła LANu do internetu dla użytkowników z LANu drugiego. Czyli tutaj będzie forward, adresacja będzie 10.0.20.0.24 i akcja będzie accept. Domyślnie wpisujemy na samym końcu tą regułę i muszę ją przesunąć do odpowiedniej sekcji. Czyli widzimy, że LAN 1 i LAN 2 ma dostęp do internetu w ramach tej reguły, która jest tutaj przedstawiona. To jest oczywiście przykładowy zestaw reguł, który możesz zastosować jeżeli Twoja sytuacja jest inna a zapewne jest inna bo każda topologia będzie inna, inna ilość usług, inna ilość sieci LAN więc każdy musi zbudować tą koncepcję dla siebie od nowa. Natomiast ogólna idea powinna właśnie iść w tą stronę. Nie zawsze się tak robi. Nie będę tutaj rozwijał tego tematu, więcej opowiem w podkaście, dlaczego się robi czasem inaczej i jakie ma to konsekwencje. Ale teraz chciałem Ci pokazać jak należy postępować jeżeli chodzi o pisanie tych reguł.

Jeżeli masz sytuacje zupełnie świeżą, czyli masz nową instalację i tworzysz sobie te reguły, które wymyśliłeś, że powinny wystarczyć i sobie sprawdzasz czy wszystkie urządzenia ze sobą się łączą to taka koncepcja jakby i taka konstrukcja się sprawdzi. Natomiast w większości przypadków to mamy doczynienia z sytuacją gdzie mamy już zainstalowaną jakąś ilość systemów, jakieś sieci LAN i chcemy podwyższyć sobie ten poziom bezpieczeństwa. W takim przypadku ja proponuje najpierw skonfigurować sobie te reguły drop ale nie włączać je w tryb kasowania pakietów, tylko je zmienić do akcji accept i loguj. Dzięki temu będziemy mogli zobaczyć co się tak naprawdę tam dzieje. Tutaj też możemy wybrać accept i loguj. I teraz poniżej mamy też odrazu wyświetlone okno logowania. To możesz sobie wyświetlić, tu niżej jest, czyli masz zakładkę Log. Ja sobie wprowadziłem, jeżeli chodzi o logowanie możesz sobie tutaj w parametrach tego logowania wpisać Log Prefix i to jest element, który pozwoli Ci łatwiej wyfiltrować daną grupę wpisów. Ja sobie akurat ustawiłem drop input i teraz na dole możesz sobie w tej zakładce Log filtrować po lewej stronie wiadomości, które zawierają informacje drop. Drop input tutaj akurat mam przedstawione i mogę sobie zjechać i zobaczyć szczegółową informacje jakie pakiety zostały zalogowane w ramach tej reguły. To co tu widzę to np widzę, że z adresu 10.253.253.106, to wróćmy teraz do topologii… To jest adres MikroTika 2 na interfejsie eth1. Widzę ruch w protokole UDP na adres broadcastowy, na jakiś port 56.78. Czyli jest to ruch, który jest związany z serwisem autowykrywania sąsiadów tutaj MikroTika i teraz w zależności od tego czy chcesz zezwalać na taki ruch, czy funkcjonalność, którą wykorzystujesz na MikroTiku wymaga takiej konstrukcji no to możesz taką dodatkową regułę tutaj zapisać lub nie. Zróbmy przykład, że zapiszemy, czyli tutaj będzie input i source adres będzie 10.253.253.106, protokół UDP i port 5678 destination port 5678 action, accept I mamy tutaj naszą regułę.

Teraz jeszcze możemy do tego dodać komentarz. Discavery MikroTik 2. Ok i damy tutaj przed drop all. No i zobaczymy za chwilę. Raz na jakiś czas te pakiety się pojawiają, zobaczymy za chwilę czy się pojawi to w liczniku pakietów trafiających w tą regułę, coś co właśnie co właśnie jest związane z tą regułą. Możemy tu oczywiście też wpisać ten adres uszczeguławiający. To jak bardzo chcesz uszczegółowić tą regułę to jest kwesta Twojej decyzji. Im więcej oczywiście tutaj wpiszesz szczegółowych danych dotyczących tej reguły, tym będziesz miał bardziej specyficzny wynik. Czyli generalnie dobrze. Natomiast więcej pracy oczywiście to kosztuje. Więc tu w zależności od tego co chcesz osiągnąć, ile masz czasu, ile masz zasobów. Zachęcam również do przemyślenia sobie pisania tych komentarzy, dotyczących reguł bo bez tego po jakimś czasie jak wrócisz do konfiguracji tego Firewalla to nie będziesz wiedział co się dzieje. Tutaj widać, że już pierwszy pakiet się pojawił, czyli nam reguła działa i ten pakiet, który tu niżej widzieliśmy trafia w tą regułę powyżej. Czyli w ten sposób możemy sobie eliminować jakby pakiety, które nam trafiają w tą ogólną regułę i na koniec jak już nie widzimy niczego co nas tutaj niepokoi możemy ją spokojnie przełączyć w trybie blokowania. Czyli tutaj nie accept tylko drop, tak i wyłączamy logowanie.

Jeżeli już nic więcej nie potrzebujemy sprawdzać to logowanie nam tylko nie potrzebnie będzie obciążało nasz router. Więc w ten sposób postępujemy. Jeżeli nam z czasem się okaże, że jakaś usługa nie działa i potrzebujemy sprawdzić co to jest i dostosować nasze reguły to w ten sposób możemy sobie z powrotem włączyć logowanie, włączyć akcję accept i działać na tej zasadzie. Jeszcze ważna jedna rzecz na koniec. Tu po lewej stronie na górze jest safe mode przycisk i ten przycisk jest pomocny, zwłaszcza jeżeli działasz zdalnie na jakimś routerze. Warto go sobie włączyć bo jeżeli się okaże, że nie przemyślałeś danej reguły, którą tworzysz właściwie i sam się odciąłeś od tego routera, no to jeżeli masz ten safe mode włączony to router to wykryje po jakimś czasie i przywróci poprzednią działającą konfigurację. Odzyskasz dostęp do MikroTika. Jeżeli tego nie zrobisz no to pozostanie Ci fizyczne, jeżeli nie masz zdalnej konsoli to jakby wrócenie do tego urządzenia i zmiana konfiguracji tak, żeby przywrócić dostęp zdalny. To w zależności od tego, jakie masz środowisko ale jeżeli chodzi o produkcyjne zastosowanie warto włączać ten przycisk, zaoszczędzi Ci to dużo nerwów i czasu. To tyle, jeżeli chodzi o taką podstawową konfiguracje reguł Firewall’owych. Jeżeli chcesz więcej się dowiedzieć to zapraszam do podkastu.

Dzisiaj to tyle. Dziękuję Ci za uwagę. Jeżeli chcesz się dowiedzieć więcej jakie są różnice pomiędzy tymi chainami, różnice pomiędzy przetwarzaniem danych pakietów, jak poradzić sobie z wypracowaniem odpowiedniego kompromisu pomiędzy bezpieczeństwem i pracochłonnością to o tym opowiem szerzej w moim podkaście. Także zapraszam Cię do niego, jeżeli ten temat interesuje Cię bardziej w szczegółach. Na dzisiaj to tyle, dziękuję Ci za uwagę i do zobaczenia już za tydzień.


Kliknij w obrazek, aby przejść do zapisu na warsztaty

Autor: Darek Koralewski

Od początku swojej kariery, czyli od 2004 roku, zajmuję się sieciami komputerowymi ze szczególnym uwzględnieniem ich bezpieczeństwa oraz sieciami programowalnymi. Mam na swoim koncie całą listę certyfikatów różnych producentów, dwa najważniejsze to te poświadczające najwyższy poziom wiedzy eksperckiej z zakresu rozwiązań Aruba ClearPass ACCX#901 oraz z projektowania sieci opartych o rozwiązania Aruba ACDX#1255. Więcej informacji możesz znaleźć na moich portalach społecznościowych.