Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Ang pagpapatuloy ng kwento tungkol sa ZeroTier, mula sa teoryang nakabalangkas sa artikulong "Smart Ethernet Switch para sa Planet Earth", nagpapatuloy ako sa pagsasanay kung saan:

  • Gumawa at mag-configure tayo ng pribadong network controller
  • Gumawa tayo ng virtual network
  • I-configure at ikonekta natin ang mga node dito
  • Suriin natin ang pagkakakonekta ng network sa pagitan nila
  • I-block natin ang access sa GUI ng network controller mula sa labas

Network Controller

Tulad ng nabanggit kanina, upang lumikha ng mga virtual network, pamahalaan ang mga ito, pati na rin ang pagkonekta ng mga node, ang gumagamit ay nangangailangan ng isang network controller, isang graphical interface (GUI) kung saan umiiral sa dalawang anyo:

ZeroTier GUI Options

  • Isa mula sa developer na ZeroTier, available bilang pampublikong solusyon sa cloud SaaS na may apat na plano sa subscription, kabilang ang libre, ngunit limitado sa bilang ng mga pinamamahalaang device at antas ng suporta
  • Ang pangalawa ay mula sa isang independiyenteng developer, medyo pinasimple sa functionality, ngunit available bilang isang pribadong open source na solusyon para sa paggamit sa nasasakupan o sa cloud resources.

Sa aking pagsasanay, ginamit ko ang dalawa at bilang isang resulta, sa wakas ay nanirahan ako sa pangalawa. Ang dahilan nito ay ang mga babala ng developer.

“Nagsisilbing mga awtoridad sa sertipikasyon ang mga network controller para sa mga virtual network ng ZeroTier. Ang mga file na naglalaman ng mga secret key ng controller ay dapat na maingat na bantayan at ligtas na i-archive. Ang kanilang kompromiso ay nagbibigay-daan sa mga hindi awtorisadong umaatake na lumikha ng mga mapanlinlang na pagsasaayos ng network, at ang kanilang pagkawala ay humahantong sa pagkawala ng kakayahang kontrolin at pamahalaan ang network, na epektibong ginagawa itong hindi magamit."

Link sa dokumentasyon

At gayundin, mga palatandaan ng iyong sariling cybersecurity paranoia :) 

  • Kahit na dumating ang Cheburnet, dapat may access pa rin ako sa aking network controller;
  • Ako lang ang dapat gumamit ng network controller. Kung kinakailangan, pagbibigay ng access sa iyong mga awtorisadong kinatawan;
  • Posibleng paghigpitan ang pag-access sa controller ng network mula sa labas.

Sa artikulong ito, wala akong nakikitang punto sa paninirahan nang hiwalay sa kung paano mag-deploy ng controller ng network at ang GUI para dito sa nasa lugar na pisikal o virtual na mapagkukunan. At mayroon ding 3 dahilan para dito: 

  • magkakaroon ng mas maraming liham kaysa sa binalak
  • tungkol dito na sinabi sa GUI developer GitHab
  • ang paksa ng artikulo ay tungkol sa ibang bagay

Samakatuwid, ang pagpili ng landas ng hindi bababa sa paglaban, gagamitin ko sa kuwentong ito ang isang network controller na may GUI batay sa VDS, na nilikha ng mula sa template, mabait na binuo ng aking mga kasamahan mula sa RuVDS.

Paunang setup

Pagkatapos gumawa ng server mula sa tinukoy na template, nakakakuha ang user ng access sa Web-GUI controller sa pamamagitan ng browser sa pamamagitan ng pag-access sa https://:3443

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Bilang default, ang server ay naglalaman na ng paunang nabuong self-signed TLS/SSL certificate. Ito ay sapat na para sa akin, dahil hinaharangan ko ang pag-access dito mula sa labas. Para sa mga nais gumamit ng iba pang uri ng mga sertipiko, mayroon mga tagubilin sa pag-install sa GUI developer GitHab.

Kapag nag-log in ang user sa unang pagkakataon Mag-login na may default na login at password - admin и password:

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Iminumungkahi nitong baguhin ang default na password sa isang custom

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Medyo naiiba ang ginagawa ko - hindi ko binabago ang password ng isang umiiral nang user, ngunit lumikha ng bago - Lumikha ng Gumagamit.

Itinakda ko ang pangalan ng bagong user - username:
Nagtakda ako ng bagong password - Maglagay ng bagong password
Kinukumpirma ko ang bagong password - Ipasok muli ang password:

Ang mga character na ilalagay mo ay case sensitive - mag-ingat!

Checkbox upang kumpirmahin ang pagbabago ng password sa susunod na pag-login - Baguhin ang password sa susunod na pag-login: Hindi ako nagdiriwang. 

Upang kumpirmahin ang inilagay na data, pindutin ang Itakda ang password:

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Pagkatapos: Nag-log in ulit ako - Logout / Mag-login, nasa ilalim na ng mga kredensyal ng bagong user:

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Susunod, pumunta ako sa tab ng mga gumagamit - Users at tanggalin ang gumagamit adminsa pamamagitan ng pag-click sa icon ng basurahan na matatagpuan sa kaliwa ng kanyang pangalan.

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Sa hinaharap, maaari mong baguhin ang password ng user sa pamamagitan ng pag-click sa kanyang pangalan o sa nakatakdang password.

Paglikha ng isang virtual network

Upang lumikha ng isang virtual network, kailangan ng user na pumunta sa tab Magdagdag ng network. Mula sa punto gumagamit ito ay maaaring gawin sa pamamagitan ng pahina Tahanan — ang pangunahing pahina ng Web-GUI, na nagpapakita ng ZeroTier address ng network controller na ito at naglalaman ng link sa pahina para sa listahan ng mga network na nilikha sa pamamagitan nito.

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Sa pahina Magdagdag ng network ang gumagamit ay nagtatalaga ng isang pangalan sa bagong likhang network.

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Kapag inilalapat ang data ng input − Lumikha ng Network dinadala ang user sa isang page na may listahan ng mga network, na naglalaman ng: 

Pangalan ng network — ang pangalan ng network sa anyo ng isang link, kapag nag-click ka dito maaari mo itong baguhin 
Network ID — tagatukoy ng network
detalye — link sa isang pahina na may detalyadong mga parameter ng network
madaling setup — link sa pahina para sa madaling pag-setup
mga miyembro — link sa pahina ng pamamahala ng node

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Para sa karagdagang setup, sundan ang link madaling setup. Sa pahinang bubukas, tinutukoy ng user ang isang hanay ng mga IPv4 address para sa network na ginagawa. Magagawa ito nang awtomatiko sa pamamagitan ng pagpindot sa isang pindutan Bumuo ng address ng network o mano-mano sa pamamagitan ng paglalagay ng network network mask sa naaangkop na field CIDR.

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Kapag kinukumpirma ang matagumpay na pagpasok ng data, dapat kang bumalik sa pahina na may listahan ng mga network gamit ang Back button. Sa puntong ito, maaaring ituring na kumpleto ang pangunahing pag-setup ng network.

Pagkonekta ng mga node ng network

  1. Una, ang serbisyong ZeroTier One ay dapat na naka-install sa node na gustong kumonekta ng user sa network.

    Ano ang ZeroTier One?ZeroTier One ay isang serbisyong tumatakbo sa mga laptop, desktop, server, virtual machine at container na nagbibigay ng mga koneksyon sa isang virtual network sa pamamagitan ng virtual network port, katulad ng isang VPN client. 

    Kapag na-install at nagsimula na ang serbisyo, maaari kang kumonekta sa mga virtual network gamit ang kanilang 16-digit na mga address. Ang bawat network ay lilitaw bilang isang virtual network port sa system, na kumikilos tulad ng isang regular na Ethernet port.
    Ang mga link sa mga pamamahagi, pati na rin ang mga utos sa pag-install, ay matatagpuan sa pahina ng tagagawa.

    Maaari mong pamahalaan ang naka-install na serbisyo sa pamamagitan ng command line terminal (CLI) na may mga karapatan ng admin/root. Sa Windows/MacOS ay gumagamit din ng graphical na interface. Sa Android/iOS lang gamit ang GUI.

  2. Sinusuri ang tagumpay ng pag-install ng serbisyo:

    CLI:

    zerotier-cli status

    Resulta: 

    200 info ebf416fac1 1.4.6 ONLINE
    GUI:

    Ang mismong katotohanan na ang application ay tumatakbo at ang presensya sa loob nito ng isang linya na may Node ID na may node address.

  3. Pagkonekta ng node sa network:

    CLI:

    zerotier-cli join <Network ID>

    Resulta: 

    200 join OK

    GUI:

    Windows: i-right click sa icon ZeroTier One sa system tray at pagpili ng item - Sumali sa Network.

    Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
    MacOS: Ilunsad ang application ZeroTier One sa menu ng bar, kung hindi pa nailunsad. Mag-click sa icon na ⏁ at piliin Sumali sa Network.

    Android/iOS: + (kasama ang larawan) sa app

    Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
    Sa field na lalabas, ilagay ang network controller na tinukoy sa GUI Network ID, at pindutin ang Sumali/Magdagdag ng Network.

  4. Pagtatalaga ng IP address sa isang host
    Ngayon bumalik kami sa controller ng network at sa pahina na may listahan ng mga network sundin ang link mga miyembro. Kung makakita ka ng larawang katulad nito sa screen, nangangahulugan ito na nakatanggap ang iyong network controller ng kahilingan upang kumpirmahin ang koneksyon sa network mula sa konektadong node.

    Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
    Sa pahinang ito, iniiwan namin ang lahat sa ngayon at sundin ang link pagtatalaga ng IP pumunta sa pahina para sa pagtatalaga ng IP address sa node:

    Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
    Pagkatapos italaga ang address, i-click ang button likod bumalik sa pahina ng listahan ng mga konektadong node at itakda ang pangalan - Pangalan ng miyembro at lagyan ng check ang checkbox upang pahintulutan ang node sa network - Awtorisadong. Sa pamamagitan ng paraan, ang checkbox na ito ay isang napaka-maginhawang bagay para sa pagdiskonekta/pagkonekta mula sa host network sa hinaharap.

    Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
    I-save ang mga pagbabago gamit ang button Papanariwain.

  5. Sinusuri ang katayuan ng koneksyon ng node sa network:
    Upang suriin ang katayuan ng koneksyon sa node mismo, patakbuhin ang:
    CLI:

    zerotier-cli listnetworks

    Resulta:

    200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
    200 listnetworks 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2/24

    GUI:

    Ang katayuan ng network ay dapat na OK

    Upang ikonekta ang natitirang mga node, ulitin ang mga operasyon 1-5 para sa bawat isa sa kanila.

Sinusuri ang pagkakakonekta ng network ng mga node

Ginagawa ko ito sa pamamagitan ng pagpapatakbo ng utos ping sa device na nakakonekta sa network na kasalukuyang pinamamahalaan ko.

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
Sa screenshot ng Web-GUI controller makikita mo ang tatlong node na konektado sa network:

  1. ZTNCUI - 10.10.10.1 - ang aking network controller na may GUI - VDS sa isa sa mga RuVDS DC. Para sa normal na trabaho hindi na kailangang idagdag ito sa network, ngunit ginawa ko ito dahil gusto kong harangan ang pag-access sa web interface mula sa labas. Higit pa tungkol dito mamaya. 
  2. MyComp - 10.10.10.2 - ang aking computer sa trabaho ay isang pisikal na PC
  3. Backup - 10.10.10.3 — VDS sa ibang DC.

Samakatuwid, mula sa aking computer sa trabaho ay sinusuri ko ang pagkakaroon ng iba pang mga node gamit ang mga utos:

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

Ang gumagamit ay may karapatang gumamit ng iba pang mga tool para sa pagsuri sa pagkakaroon ng mga node sa network, parehong nakapaloob sa OS at tulad ng NMAP, Advanced IP Scanner, atbp.

Itinatago namin ang access sa network controller GUI mula sa labas.

Sa pangkalahatan, maaari kong bawasan ang posibilidad ng hindi awtorisadong pag-access sa VDS kung saan matatagpuan ang aking network controller gamit ang isang firewall sa aking RuVDS personal na account. Ang paksang ito ay mas malamang para sa isang hiwalay na artikulo. Samakatuwid, dito ipapakita ko kung paano magbigay ng access sa GUI controller lamang mula sa network na nilikha ko sa artikulong ito.

Upang gawin ito, kailangan mong kumonekta sa pamamagitan ng SSH sa VDS kung saan matatagpuan ang controller at buksan ang configuration file gamit ang command:

nano /opt/key-networks/ztncui/.env

Sa binuksan na file, pagkatapos ng linya na "HTTPS_PORT=3443" na naglalaman ng address ng port kung saan bubukas ang GUI, kailangan mong magdagdag ng karagdagang linya kasama ang address kung saan magbubukas ang GUI - sa aking kaso ito ay HTTPS_HOST=10.10.10.1 .XNUMX. 

Susunod na i-save ko ang file

Сtrl+C
Y
Enter 

at patakbuhin ang utos:

systemctl restart ztncui

At iyon lang, ngayon ang GUI ng aking network controller ay magagamit lamang para sa mga network node 10.10.10.0.24.

Sa halip ng isang konklusyon 

Dito ko gustong tapusin ang unang bahagi ng praktikal na gabay sa paglikha ng mga virtual network batay sa ZeroTier. Inaasahan ko ang iyong mga komento. 

Samantala, upang magpalipas ng oras hanggang sa paglalathala ng susunod na bahagi, kung saan sasabihin ko sa iyo kung paano pagsamahin ang isang virtual na network sa isang pisikal, kung paano mag-ayos ng mode na "road warrior" at iba pa, iminumungkahi kong subukan mo pag-aayos ng iyong sariling virtual network gamit ang isang pribadong network controller na may GUI batay sa VDS mula sa marketplace sa Online RUVDS. Bukod dito, lahat ng bagong kliyente ay may libreng panahon ng pagsubok na 3 araw!

PS Oo! Muntik ko ng makalimutan! Maaari mong alisin ang isang node mula sa network gamit ang isang command sa CLI ng node na ito.

zerotier-cli leave <Network ID>

200 leave OK

o ang Delete command sa client GUI sa node.

-> Panimula. Teoretikal na bahagi. Smart Ethernet Switch para sa Planet Earth
-> Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1
-> Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 2

Pinapatakbo ng ZeroTier. Isang praktikal na gabay sa pagbuo ng mga virtual network. Bahagi 1

Pinagmulan: www.habr.com

Magdagdag ng komento