22T43 5 Kroków WireGuard z DDNS [konfiguracja MikroTik]
DDNS MikroTik Road Warrior
Więcej miejsc do posłuchania:
Link do artykułu.
0:00 Wprowadzenie
0:24 Topologia
4:58 Konfiguracja MikroTika
16:39 Podsumowanie
Transkrypcja
Cześć. Dzisiaj konfiguracja DDNS’a czyli Dynamic DNS’a dla scenariusza Wireguard’owego, gdzie zakładamy, że na interfejsie WAN będziemy mieli zmienne adresy IP publiczne i chcemy zaktualizować nazwy domenowe dla aktualnego adresu IP i powiązać to z dostępem po Wiregardzie.
Zacznijmy od naszej topologii, co będę dzisiaj konfigurował. Skupie się na DDNS’ie dla dostępu zdalnego, czyli mamy tutaj system Linux, który będzie się łączył zdalnie przez Wireguarda w trybie Road Warrior do MT 1 i to będzie w sieci 10.255.254.0. 2 będzie dla Linuxa, 1 będzie dla MikroTika. Idea jest teraz taka, żebym skonfigurował DynDNS’a dla zmieniających się adresów IP na WAN’ie MT1. Po krótkim sprawdzeniu jakie są dzisiaj popularne opcje, doszedłem do wniosku, że zrobię dzisiaj odcinek na Dynu, czyli takim serwisie, który jest dość rozbudowany, jeżeli chodzi o DDNS’a. Jest również darmowy, jeżeli dobrze pamiętam do 4 takich adresów. No i co ważne, wygląda na to, że jest profesjonalnie prowadzony, czyli, że nie będzie problemu z wydajnością. Jeżeli chodzi o skorzystanie z tego serwisu no to wystarczy się zarejestrować a następnie kliknąć tutaj po prawej stronie na górze w panel i mamy różne usługi, które możemy tutaj wykorzystywać. Dzisiaj skupie się na DDNS’ie.
Jeżeli chodzi o dodanie mam tutaj już jeden wpis dodany, który jest z moim MikroTikiem powiązany. Żeby dodać taki wpis trzeba tutaj po prawej stronie kliknąć add. Mamy dwie opcje do wyboru. Opcja 1 – korzystamy z domeny, która jest dostarczana przez właściciela tego serwisu. Ale ja dzisiaj postanowiłem wykorzystać inną opcję. Bo ta jest oczywiście jak najbardziej często stosowana. Ale ja mam własną domenę i mogę tą domenę użyć jako opcję drugą. Czyli tutaj po prostu wpisałbym mt1.netadminpro.pl i dzięki temu będę mógł kierować na domenę, którą ja posiadam. Co tu jest istotne, jeżeli wpiszesz własną domenę to oczywiście trzeba mieć na uwadze, że trzeba albo przekierować do DNS’a, do serwera DNS naszego klienta i to będzie przypadek, który ja tutaj będę dzisiaj robił. Ewentualnie zaparkować swoją domenę na DNS’ie dostępnym tutaj przez tego właściciela usługi. Czyli ja już wpisałem sobie na moim Linuxie DNS’a, który jest związany akurat tutaj z NS11. Dynu.com. Tak, żeby odpytywanie o tą domenę, kontretnie mt1.netadminpro.pl
Odpytywanie tego DNS’a dało adres IP, który skonfiguruje za chwilę. Jeżeli chodzi o konfigurację to to oczywiście mogę sobie wpisać ręcznie ten adres no ale nie o to chodzi. Chodzi o to, żeby to się automatycznie odświeżało. Żeby to zrobić to trzeba tutaj kliknąć DDNS SETUP i możemy sobie przejść do konfiguracji. Mamy tu różne systemy operacyjne i możemy różnych klientów, różne platformy, tutaj połączeń z tym naszym Dynu. Ja dzisiaj będę robił konfiguracje związane z MikroTikiem. I tu jeżeli chodzi o MikroTika to trzeba zrobić następującą rzecz. Czyli skopiować ten pierwszy skrypt cały, uzupełnić dane, które są tutaj wyszczególnione, czyli użytkownika, hasło, nazwę interfejsu i tą nazwę DNS’ową, którą tutaj będziemy wykorzystywać. W moim przypadku to jest ten mt1.netadminpro.pl, jeżeli chodzi o ten skrypt to mam go tutaj już przygotowanego. Wypełnione te dane, które tutaj są potrzebne. Jeżeli chodzi o nazwę interfejsu to to jest u mnie WAN-eth1 i nazwa domenowa to jest mt1.netadminpro.pl.
To pokażę Ci tutaj jeszcze nazwę tego config’u. Tylko połączę się z tym MikroTikiem. Interfejs. I to jest skopiowane… Tutaj WAN-eth1-MT1, czyli nazwa tego interfejsu musi się pojawić w tym skrypcie. Dobra. Jeżeli mamy już przygotowany ten skrypt, to to co potrzebujemy dalej zrobić to jest konfiguracja samego MikroTika.
Jeżeli chodzi o konfiguracje na MikroTiku to to, co potrzebujemy zrobić to wejść w konfigurację system Scripts i mam tu już skrypt dodany, ale jeżeli nowy dodajesz to po prostu dajemy add. Tutaj możemy dać Dynu2. I to co jest tutaj potrzebne to wklejenie w pole Source tej naszej zawartości skryptu. Co jest istotne ten skrypt się zaczyna od części tutaj zdefiniowania pewnych zmiennych. Czyli od global ddnsuser. Czyli tą część trzeba wkleić w to pole. Pole source. Tutaj tego nie wkleję bo jestem teraz podłączony przez konsole więc mam schowka tutaj uruchomionego. Ale chciałem Ci powiedzieć jaka jest idea tego skryptu. Jak widzisz zaczyna się od global ddnsuser. Jeżeli byś chciał ten skrypt sobie wkleić i sprawdzić w całości to możesz skopiować cały ten skrypt, przejść do konsoli. Tutaj mam MikroTika po SSH podłączonego i po prostu wkleić cały skrypt. I skrypty został wykonany. Możemy sprawdzić to, że skrypt został wykonany przechodząc na MikroTika i patrząc sobie w logi. I tutaj jest 15:35. I to jest to, co przed chwilą wywołałem.
Jeżeli chodzi o automatyczne wykorzystywanie tego skryptu, bo tak byśmy chcieli oczywiście. Czyli tak: najpierw sobie warto zapisać nazwę tego skryptu bo on będzie potrzebny. Czyli nazwa Dynu. Potem wchodzimy w Scheduler i tutaj możemy stworzyć takie cykliczne zadanie. Ja mam teraz je wyłączone. Za chwilę je włączę. Jakaś nazwa oczywiście tego zadania. W moim przypadku DynuScheduler. Jeżeli chodzi o to, co potrzebujesz tutaj włączyć to tak jak tam było w tym skrypcie pokazane. Tu możesz na górze zobaczyć. Policy, read, write, test. Czyli możemy resztę odznaczyć. Read, Write i Test. Tylko w takim zakresie jest potrzebny ten zakres wykonywania i On Event nazwa tego skryptu Dynu. To zapisujemy. Włączamy.
Jeszcze sprawdzę jakie były uprawnienia dla samego skryptu. Tutaj też odpowiednio jest już ustawione. Więc w ten sposób konfigurując dostęp do tego systemu chmurowego mamy możliwość wysyłania w określonym czasie, czy co określony czas aktualizacji dotyczącej adresu IP wskazanego interfejsu. Ja sobie tutaj wskazałem teraz interwał 10 sekund. No i teraz możemy sobie zrobić taki test. Czyli najpierw zobaczmy ten symulowany nasz klient. Czyli on ma tutaj sobie… Tylko może się przez inną konsolę podłączę. Czyli teraz zobaczmy sobie jak mamy skonfigurowanego klienta WireGuarda end point jest 10.253.253.133 Zobaczmy teraz na MikroTika jaki ma adres IP. Mamy teraz adres 10.253.253.103 Tak. Czyli widzimy, że klient się kieruje na poprzedni adres, który był wpisany i w konfiguracji samego klienta ta informacja nie została jeszcze uwzględniona. Dlaczego nie została uwzględniona? Dlatego, że musimy rozłączyć tego klienta i ponownie go podłączyć. Czyli żeby zrobić tutaj odświeżenie danych klienta to trzeba położyć interfejs, ustawić jeszcze raz parametry Wire Guarda. To w przypadku Linuxa mamy taką jedną linijkę i ta nazwa mt1.netadminpro.pl będzie rozwiązana teraz na nowy adres. No i podnosimy teraz interfejs. No i zobaczmy na koniec jaki jest adres. Teraz mamy z końcówką 103. Jeżeli jesteś ciekaw albo nie pamiętasz, nie widziałeś może pełnej konfiguracji tego klienta Linuxowego, między innymi tych komend, które tutaj używam to możesz zerknąć na bloga.
Jest tutaj konfiguracja klienta WireGuard na Ubuntu. Tutaj link będzie w artykule również umieszczony ale generalnie to WireGuard Road Warrior VPN konfiguracja MikroTik. I te poszczególne komendy trzeba skopiować po prostu i uruchomić a jeżeli chodzi o komendę w momencie której Ubuntu sobie rozwiązuje nazwę DNS’ową na adres IP to jest to polecenie, czyli wg set wg1, tu klucze prywatne, publiczne i adres lub nazwa tego MikroTika do którego się chcemy łączyć tym klientem. Więc jeżeli tutaj wstawisz nazwę DNS’ową to po każdej zmianie adresu publicznego IP na MikroTiku trzeba jeszcze raz zestawić to połączenie z klientem. Dlatego, że on sobie to mapuje, adres IP odczytany z DNS’a i już zostaje przy tym adresie IP. Jeżeli ten adres się zmienił no to wiadomo, że połączenie nie będzie możliwe.
Więc zobaczmy czy zapingujemy drugą stronę tunelu. Czyli widać, że tunel jest zestawiony. Pakiety na oba interfejsy, czyli lokalny i zdalny dla tego tunelu WireGuard’owego działają. Jeżeli chodzi o topologię to tutaj przypomnę 1 to był MikroTik MT1, 2 to był ten Linux Road Warrior. Czyli mamy zestawiony działający tunel WireGuardowy i jeżeli zmienimy teraz adres IP na interfejsie MT1, no to zróbmy taki test. Tutaj widać, że w logach cały czas ta aktualizacja idzie. W takim razie zmieńmy jeszcze adres IP. Powtórzmy tą operację i zobaczmy jak się zaktualizuje adres IP w DDNS’ie. Żeby go zmienić to możemy np tutaj wejść w tą zakładkę. Niech będzie teraz 43. Ja tu oczywiście muszę sobie też wtedy adres zmienić. Tutaj odkryłem odrazu powiem, że jeżeli robiłeś tak jak tutaj pokazywałem w poprzednich odcinkach osobny VRF dla management’u to ta aktualizacja do DNS’a odbywa się właśnie przez ten VRF menagement, czy generalnie przez tą usługę, która jest związana z zarządzeniem, więc jeżeli chcemy tą w konfiguracji automatycznego odświeżenia do DNS’a uruchamiać tzn. że musi mieć ta sieć menagement’owa wyjście do internetu. No to zalogujmy się jeszcze raz.
Zobaczmy teraz adresy IP. Czyli mamy teraz adres 143. Możemy zobaczyć w logi. No i widać, że tutaj został wykryty nowy adres, że musi być aktualizacja. Super, to od strony MikroTika zadziałało. No to zobaczmy teraz na DDNS’ie. No i mamy aktualizację adresu na 143. Czyli możemy wrócić teraz do klienta i ponownie wykonać tą samą operację odłączenia i podłączenia jeszcze raz WireGuarda, bo zauważ, że będziemy mieli stary adres. Czyli mamy tutaj nadal 103. Czyli teraz położę interfejs. Zaktualizuje. Podniosę interfejs. No i już mamy 143 i jest powiązane to połączenie, żeby sobie spingować. I widzimy, że działa. Jest jeszcze jedna opcja konfiguracji, niezależna od Dynu. Jest wbudowana możliwość konfiguracji dynamicznego adresu IP czy DDNS’a w MikroTiku. Ja nie mogę Ci tego pokazać na moim środowisku ponieważ na wirtualnym urządzeniu nie działa to.
Mogę Ci pokazać natomiast w którym miejscu można to skonfigurować. Czyli IP, Cloud. Tu wystarczy, że włączysz i można odświeżać to, co potrzebujesz, czyli ten adres IP publiczny, który potrzebujesz odświeżać. U mnie to nie będzie działało z tego co sprawdzałem wcześniej bo nie mamy platformy, na której to będzie supportowane, czyli na cloud’owej wersji, czyli na tym CHR free, które ja używam, nie ma wsparcia dla Cloud’a co jest zrozumiałe no bo skoro nic nie kupiłem od producenta, to dlaczego miałby uruchamiać mi tutaj usługę chmurową. Natomiast chcę Ci pokazać jakby to mogło wyglądać. Tu jest inny film, który został nagrany i można zobaczyć jak taka konfiguracja wygląda. Czyli po prostu zaznaczasz, że to będzie ten DNS. Pokazuje nam się tutaj jakaś nazwa, nasz adres publiczny oczywiście. Ta nazwa DNS’owa nie jest konfigurowalna. Ona wynika z serial number, czyli z numeru seryjnego naszego MikroTika. No i ma tutaj rozszerzenie dostarczone również przez producenta. I to jest w zasadzie tyle co tutaj możemy skonfigurować jeżeli byś chciał sobie tą nazwę bardziej ulepszyć, czyli jakąś bardziej zrozumiałą taką zamapować, to możesz w swoim DNS’ie, w swojej usłudze podać tą nazwę DNS’ową i zmienić ją w atrybucie C-Name, czyli taki wpis C-Name w DNS’ie tworzysz i wiążesz tą swoją nazwę swojej domeny z tym tutaj adresem. Więc w zależności od tego jaką usługę będziesz chciał wykorzystać, jaki sposób implementacji będziesz chciał użyć masz conajmniej takie dwie metody.
Oczywiście systemów DDNS jest dużo więcej, trzeba tylko sprawdzić w jaki sposób MikroTik może aktualizować tą nazwę czy ten adres IP publiczny do konkretnego serwera. W przypadku tego Dynu jest to z tego co widzę bardziej rozbudowana opcja. Można bezpośrednio swoją domenę podać więc jest tutaj
więcej możliwości. Ja polecam bez wątpienia tą wersję implementacji.
W tym odcinku to tyle. Jeżeli masz jakieś pytania to oczywiście pisz w komentarzu. Za dzisiejszą uwagę Ci dziękuję i do zobaczenia już za tydzień.