Stwórzmy i skonfigurujmy kontroler sieci prywatnej
Stwórzmy sieć wirtualną
Skonfigurujmy i podłączmy do niego węzły
Sprawdźmy łączność sieciową między nimi
Zablokujmy dostęp do GUI kontrolera sieciowego z zewnątrz
Сетевой контролер
Jak wspomniano wcześniej, do tworzenia sieci wirtualnych, zarządzania nimi, a także łączenia węzłów, użytkownik potrzebuje kontrolera sieci, którego interfejs graficzny (GUI) występuje w dwóch postaciach:
Opcje interfejsu graficznego ZeroTier
Jeden od dewelopera ZeroTier, dostępny jako rozwiązanie SaaS w chmurze publicznej z czterema planami subskrypcyjnymi, w tym darmowymi, ale ograniczonymi pod względem liczby zarządzanych urządzeń i poziomu wsparcia
Drugie pochodzi od niezależnego programisty i ma nieco uproszczoną funkcjonalność, ale jest dostępne jako prywatne rozwiązanie typu open source do użytku lokalnego lub w zasobach w chmurze.
W swojej praktyce stosowałem obydwa i w rezultacie ostatecznie zdecydowałem się na ten drugi. Powodem były ostrzeżenia dewelopera.
„Kontrolery sieciowe służą jako urzędy certyfikacji dla sieci wirtualnych ZeroTier. Pliki zawierające tajne klucze kontrolera muszą być starannie strzeżone i bezpiecznie archiwizowane. Ich kompromis umożliwia nieautoryzowanym atakującym tworzenie fałszywych konfiguracji sieci, a ich utrata prowadzi do utraty możliwości kontrolowania i zarządzania siecią, skutecznie czyniąc ją bezużyteczną.”
A także oznaki własnej paranoi dotyczącej cyberbezpieczeństwa :)
Nawet jeśli przyjdzie Cheburnet, nadal muszę mieć dostęp do mojego kontrolera sieciowego;
Tylko ja powinienem używać kontrolera sieciowego. W razie potrzeby zapewnienie dostępu swoim upoważnionym przedstawicielom;
Powinna istnieć możliwość ograniczenia dostępu do sterownika sieciowego z zewnątrz.
W tym artykule nie widzę większego sensu rozwodzić się osobno nad wdrażaniem kontrolera sieciowego i jego graficznego interfejsu użytkownika na lokalnych zasobach fizycznych lub wirtualnych. Są też 3 powody:
Dlatego wybierając ścieżkę najmniejszego oporu posłużę się w tej historii kontrolerem sieciowym z GUI opartym na VDS, stworzonym przez Z szablonu, opracowany dzięki uprzejmości moich kolegów z RuVDS.
Początkowe ustawienia
Po utworzeniu serwera z określonego szablonu użytkownik uzyskuje dostęp do kontrolera Web-GUI poprzez przeglądarkę wchodząc na https:// :3443
Domyślnie serwer zawiera już wstępnie wygenerowany certyfikat TLS/SSL z podpisem własnym. To mi wystarczy, bo blokuję dostęp do tego z zewnątrz. Dla tych, którzy chcą korzystać z innych typów certyfikatów, istnieje Instrukcje Instalacji na deweloperze GUI GitHab.
Gdy użytkownik loguje się po raz pierwszy Zaloguj z domyślnym loginem i hasłem - Admin и password:
Sugeruje zmianę domyślnego hasła na niestandardowe
Robię to trochę inaczej - nie zmieniam hasła istniejącego użytkownika, ale tworzę nowe - Utwórz użytkownika.
Ustawiłem nazwę nowego użytkownika - Użytkownik:
Ustawiłem nowe hasło - Wprowadź nowe hasło:
Potwierdzam nowe hasło - Wprowadź ponownie hasło:
Wprowadzane znaki uwzględniają wielkość liter – bądź ostrożny!
Pole wyboru umożliwiające potwierdzenie zmiany hasła przy następnym logowaniu - Zmień hasło przy następnym logowaniu: Nie świętuję.
Aby zatwierdzić wprowadzone dane, naciśnij Ustaw hasło:
Następnie: Loguję się ponownie - Wyloguj Się / Zaloguj, już pod danymi uwierzytelniającymi nowego użytkownika:
Następnie przechodzę do zakładki Użytkownicy - użytkownicy i usuń użytkownika Adminklikając na ikonę kosza znajdującą się po lewej stronie jego imienia.
W przyszłości będziesz mógł zmienić hasło użytkownika klikając na jego nazwę lub na ustawione hasło.
Tworzenie sieci wirtualnej
Aby utworzyć sieć wirtualną należy przejść do zakładki Dodaj sieć. Z punktu Użytkownik można to zrobić poprzez stronę Strona główna — strona główna Web-GUI, która wyświetla adres ZeroTier tego kontrolera sieciowego i zawiera łącze do strony z listą sieci utworzonych za jego pośrednictwem.
Strona Dodaj sieć użytkownik nadaje nazwę nowo utworzonej sieci.
Przy zastosowaniu danych wejściowych − Utwórz sieć użytkownik zostaje przeniesiony na stronę z listą sieci, która zawiera:
Nazwa sieci — nazwa sieci w formie linku, po kliknięciu można ją zmienić ID sieci — identyfikator sieci detal — link do strony ze szczegółowymi parametrami sieci łatwe ustawienie — link do strony w celu łatwej konfiguracji członkowie — link do strony zarządzania węzłami
Aby uzyskać dalszą konfigurację, kliknij łącze łatwe ustawienie. Na stronie, która się otworzy, użytkownik określa zakres adresów IPv4 dla tworzonej sieci. Można to zrobić automatycznie, naciskając przycisk Wygeneruj adres sieciowy lub ręcznie wpisując maskę sieci w odpowiednim polu CIDR.
Po potwierdzeniu pomyślnego wprowadzenia danych należy powrócić do strony z listą sieci za pomocą przycisku Wstecz. W tym momencie podstawową konfigurację sieci można uznać za zakończoną.
Łączenie węzłów sieci
Najpierw należy zainstalować usługę ZeroTier One na węźle, z którym użytkownik chce połączyć się z siecią.
Co to jest ZeroTier One?ZeroTier XNUMX to usługa działająca na laptopach, komputerach stacjonarnych, serwerach, maszynach wirtualnych i kontenerach, która zapewnia połączenia z siecią wirtualną poprzez wirtualny port sieciowy, podobnie jak klient VPN.
Po zainstalowaniu i uruchomieniu usługi możesz łączyć się z sieciami wirtualnymi, korzystając z ich 16-cyfrowych adresów. Każda sieć pojawia się w systemie jako wirtualny port sieciowy, który zachowuje się jak zwykły port Ethernet.
Można znaleźć łącza do dystrybucji, a także polecenia instalacyjne na stronie producenta.
Możesz zarządzać zainstalowaną usługą za pomocą terminala wiersza poleceń (CLI) z uprawnieniami administratora/root. W systemie Windows/MacOS również za pomocą interfejsu graficznego. W systemie Android/iOS tylko przy użyciu GUI.
Sprawdzanie powodzenia instalacji usługi:
Interfejs wiersza polecenia:
zerotier-cli status
Wynik:
200 info ebf416fac1 1.4.6 ONLINE
GUI:
Sam fakt, że aplikacja jest uruchomiona i obecność w niej linii Node ID z adresem węzła.
Podłączenie węzła do sieci:
Interfejs wiersza polecenia:
zerotier-cli join <Network ID>
Wynik:
200 join OK
GUI:
Windows: kliknij ikonę prawym przyciskiem myszy ZeroTier XNUMX w zasobniku systemowym i wybierając element - Dołącz do sieci.
MacOS: апустить приложение ZeroTier XNUMX w menu paska, jeśli nie zostało jeszcze uruchomione. Kliknij ikonę ⏁ i wybierz Dołącz do sieci.
Android/iOS: + (plus obraz) w aplikacji
W wyświetlonym polu wprowadź kontroler sieciowy określony w GUI ID siecii naciśnij Dołącz/Dodaj sieć.
Przypisywanie adresu IP do hosta
Teraz wracamy do kontrolera sieci i na stronie z listą sieci klikamy link członkowie. Jeśli na ekranie zobaczysz obraz podobny do tego, oznacza to, że kontroler sieci otrzymał żądanie potwierdzenia połączenia z siecią z podłączonego węzła.
Na tej stronie zostawiamy wszystko bez zmian i podążamy za linkiem Przypisanie IP przejdź do strony przypisania adresu IP do węzła:
Po przypisaniu adresu kliknij przycisk Wstecz wróć na stronę listy podłączonych węzłów i ustaw nazwę - Nazwa członka i zaznacz pole wyboru, aby autoryzować węzeł w sieci - Upoważniony. Nawiasem mówiąc, to pole wyboru jest bardzo wygodne w przypadku odłączania/łączenia się z siecią hosta w przyszłości.
Zapisz zmiany za pomocą przycisku Odśwież kod.
Sprawdzanie stanu połączenia węzła z siecią:
Aby sprawdzić status połączenia na samym węźle, uruchom:
Interfejs wiersza polecenia:
Aby połączyć pozostałe węzły, powtórz operacje 1-5 dla każdego z nich.
Sprawdzanie łączności sieciowej węzłów
Robię to uruchamiając polecenie świst na urządzeniu podłączonym do sieci, którą aktualnie zarządzam.
Na zrzucie ekranu kontrolera Web-GUI widać trzy węzły podłączone do sieci:
ZTNCUI - 10.10.10.1 - mój kontroler sieciowy z GUI - VDS w jednym z DC RuVDS. Do normalnej pracy nie ma potrzeby dodawania go do sieci, ale zrobiłem to, bo chcę zablokować dostęp do interfejsu WWW z zewnątrz. Więcej na ten temat później.
MójKomp — 10.10.10.2 - mój komputer służbowy jest fizycznym komputerem PC
Kopia zapasowa - 10.10.10.3 — VDS w innym DC.
Dlatego z komputera służbowego sprawdzam dostępność innych węzłów za pomocą poleceń:
ping 10.10.10.1
Pinging 10.10.10.1 with 32 bytes of data:
Reply from 10.10.10.1: bytes=32 time=14ms TTL=64
Reply from 10.10.10.1: bytes=32 time=4ms TTL=64
Reply from 10.10.10.1: bytes=32 time=7ms TTL=64
Reply from 10.10.10.1: bytes=32 time=2ms TTL=64
Ping statistics for 10.10.10.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 14ms, Average = 6ms
ping 10.10.10.3
Pinging 10.10.10.3 with 32 bytes of data:
Reply from 10.10.10.3: bytes=32 time=15ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64
Reply from 10.10.10.3: bytes=32 time=8ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64
Ping statistics for 10.10.10.3:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 4ms, Maximum = 15ms, Average = 7ms
Użytkownik ma prawo skorzystać z innych narzędzi sprawdzających dostępność węzłów w sieci, zarówno wbudowanych w system operacyjny, jak i takich jak NMAP, Advanced IP Scanner itp.
Ukrywamy dostęp do GUI kontrolera sieciowego z zewnątrz.
Ogólnie rzecz biorąc, mogę zmniejszyć prawdopodobieństwo nieautoryzowanego dostępu do VDS, na którym znajduje się mój kontroler sieci, używając zapory ogniowej na moim koncie osobistym RuVDS. Ten temat raczej nadaje się na osobny artykuł. Dlatego tutaj pokażę, jak zapewnić dostęp do kontrolera GUI tylko z sieci, którą stworzyłem w tym artykule.
W tym celu należy połączyć się poprzez SSH z VDS na którym znajduje się kontroler i otworzyć plik konfiguracyjny komendą:
nano /opt/key-networks/ztncui/.env
W otwartym pliku, po linii „HTTPS_PORT=3443” zawierającej adres portu, na którym otworzy się GUI, należy dodać dodatkową linię z adresem, pod którym otworzy się GUI - w moim przypadku jest to HTTPS_HOST=10.10.10.1 .XNUMX.
Następnie zapiszę plik
Сtrl+C
Y
Enter
i uruchom polecenie:
systemctl restart ztncui
I to wszystko, teraz GUI mojego kontrolera sieciowego jest dostępne tylko dla węzłów sieci 10.10.10.0.24.
Zamiast zawierania
Na tym chcę zakończyć pierwszą część praktycznego przewodnika po tworzeniu sieci wirtualnych w oparciu o ZeroTier. Czekam z niecierpliwością na Twoje komentarze.
Tymczasem dla zabicia czasu do publikacji kolejnej części, w której opowiem jak połączyć sieć wirtualną z fizyczną, jak zorganizować tryb „wojownika drogi” i coś jeszcze, proponuję spróbować organizowanie własnej sieci wirtualnej za pomocą kontrolera sieci prywatnej z GUI w oparciu o VDS z marketplace witryna internetowa RUVDS. Co więcej, wszyscy nowi klienci mają bezpłatny okres próbny wynoszący 3 dni!
PS Tak! Prawie zapomniałam! Możesz usunąć węzeł z sieci za pomocą polecenia w interfejsie CLI tego węzła.
zerotier-cli leave <Network ID>
200 leave OK
lub polecenie Usuń w interfejsie GUI klienta w węźle.