VirtualBox VPN laborategia: pasabide VM edo ostalariarentzako sare soila
Aukeratu bideratutako pasabide VM baten eta ostalariarentzako segmentu baten artean VirtualBox VPN laborategi baterako, eta egin gonbidatuak itxita huts egitea tunela erortzen denean.
Zure VPN laborategiak zenbat makineria merezi duen erabaki behar duzu. Bi VirtualBox segmenturen artean bideratutako pasabide VM batek helbideen itzulpena, itzulera-bidea eta benetako bezero bat atzean esertzen den suebakiaren posizioa erreproduzitzen ditu. Ostalariarentzako segmentu bakar batek ate kontrolatu bat ematen dizu eta besterik ez. Pasabideko bertsioak hiru gonbidatu eta zuk mantentzen duzun bideratze-taula bat kostatzen ditu; ostalariarentzako bertsioak gonbidatu bat eta politika bat. Hiru galderak bereizten dituzte, eta hirugarrenak erabakitzen du zure probak batere gaindi dezakeen.
Erantzun hiru galderari ezer klonatu aurretik
Hasi VPN zerbitzariak zer behatu behar duen. Zerbitzariak probako gonbidatuarena ez den iturburu-helbide bat ikusi behar badu, zerbaitek itzuli behar du bien artean, eta zerbait horrek zuk kontrolatzen duzun bideratzaile bat izan behar du. Ostalariarentzako sareak ostalariari egokigailu bat ematen dio gonbidatuaren segmentuan, ez itzultzaile bat. Gonbidatuak gero kanpoko zerbaitetara iritsi behar duenean, NAT egokigailu bat konektatzen duzu, eta VirtualBoxen NAT motorrak berak iturburua berridazten du galdetu gabe.
Ondoren galdetu gonbidatuak tunelaren bidez ez beste ezeretara irits daitekeen. Erantzun horrek barnekoa edo ostalariarentzakoa aukeratzen du, eta laborategi-azalpen gehienek saltatzen duten galdera da. Azkenik, galdetu zer gertatu behar den tunela erortzen denean, horrek politika erabakitzen baitu, topologia ez, eta bide zoriontsua soilik frogatzen duen laborategi batek ia ezer ez du probatu.
| What the test requires | Routed gateway VM | Host-only guest |
|---|---|---|
| Server sees a translated source address | Yes, from your own MASQUERADE rule | No, VirtualBox NAT does it instead |
| The guest has exactly one egress | Yes, while the second adapter faces the tunnel | Only until a NAT adapter is attached |
| Policy is testable during a tunnel failure | Rules live in one place | Rules live on each guest |
Konektatu hiru rolak barne-sareekin
Erabili hiru gonbidatu eta izendatutako bi segmentu, pasabidea bietan egokigailua duen makina bakarra izanik:
VBoxManage modifyvm lab-client --nic1 intnet --intnet1 WAN
VBoxManage modifyvm lab-server --nic1 intnet --intnet1 LAN
VBoxManage modifyvm lab-gw --nic1 intnet --intnet1 WAN --nic2 intnet --intnet2 LAN
Ez dago barne-sare baterako sorrera-urrats bereizirik. --intnet1-ren barruko katea da segmentua: bi makinak bat egiten dute izena zehazki bat datorrenean soilik, eta ostalarian ezer ez dago horri konektatuta. Azken propietate hori da laborategia garbi errepikatzen den arrazoia, ostalariaren bideak, bere VPN bezeroa eta bere suebakia ezin baitira ustekabean gonbidatuetara iritsi. Barne-segmentu batek ez du DHCP zerbitzaririk ere gehitzen ez baduzu, beraz helbide estatikoak dira biderik laburrena.
Eman bezeroari bere WAN helbidea soilik, pasabide lehenetsiak pasabidearen WAN helbidera seinalatuz. Zerbitzariak LAN helbide bat jasotzen du eta pasabidearen LAN helbidea erabiltzen du bere pasabide lehenetsi gisa. Segmentu batean bi helbide gordetzen dituen edo beste segmentura bide galdua duen gonbidatu batek bideratzailearen inguruko bidea du, eta beheko probek gezurra esango dizute.
VM izenen ondoan testu-fitxategi bat gordetzen dut lau helbideekin eta bi segmentu-izenekin, eta shell bakoitzean itsasten dut. Aste batzuk geroago, profileko aldaketak zerbait hausten duenean, fitxategi hori da profila araztea eta nire memoria araztea bereizten dituena.
Aukeratu barnekoa edo ostalariarentzakoa isuri behar ez duen segmenturako
Ostalariarentzako moduak egokigailu birtual bat sortzen du ostalarian bertan, normalean vboxnet0, eta ostalariari helbide bat ematen dio gonbidatuaren segmentuan. Hori erosoa da administraziorako eta hilgarria isolamendu-probarako, ostalaria orain gonbidatura zuzenean irits baitaiteke eta ostalari aldeko zerbitzu bakoitza bide posible bihurtzen da. Barne-moduak ez du ostalari egokigailurik batere. Bi moduak erraz nahasten dira sare-ezarpenen panelean, beraz egiaztatu dokumentatutako aldea, etiketa ez (ikusi VirtualBox sare xehetasunak orria).
Tunela erabili behar duen gonbidatu batentzat, barnekoa da lehenetsi seguruena, pasabidea irteera bakarra izanik. Ostalariarentzakoa mantentzen baduzu, tratatu ostalariaren egokigailua kudeaketa-bide gisa eta esan ozen: ostalaria gonbidatura irits daiteke, eta gonbidatuak ezin du ostalaria irteera gisa erabili.
VBoxManage modifyvm lab-client --nic1 hostonly --hostonlyadapter1 vboxnet0
Froga dezakezun isolamendua konfiguratu duzun isolamendua da. Barne-egokigailu bat, pasabidean bide lehenetsia eta NAT egokigailurik ez dituen gonbidatu batek ez du pasabidea saihesten duen biderik. Ostalariarentzako egokigailua eta NAT egokigailua dituen gonbidatu batek bi bide ditu, eta horietako bat soilik da probatu nahi zenuena.
Bideratu eta itzuli pasabidean, eta gero egin huts egiten itxita
VirtualBoxek ez du segmentuen artean birbidaltzen; gonbidatuak egiten du. VPN zerbitzariaren VM pasabidearen atzean dagoela, gaitu birbidalketa eta itzuli bezeroaren trafikoa zerbitzarira irteten den heinean:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Arau horrekin zerbitzariak pasabidearen LAN helbidea ikusten du bezeroarenaren ordez, eta horrela ikusten du benetako bezero batek operadorearen NAT atzean sare-buru batentzat. Gorde sysctl balioa /etc/sysctl.d/-n eta araua distribuzioak erabiltzen duen suebaki zerbitzuan, bestela berrabiarazte batek laborategia isilean bideratuta baina itzuli gabeko egoerara itzuliko du.
Birbidaltzea ez da baimen ematea. ACCEPT-ren FORWARD politika lehenetsiaren pean, bide lehenetsia pasabidera seinalatzen duen gonbidatu batek bideratze-taulak aukeratzen duen interfazean irteten du, tunelarekin edo gabe. Pasabideak paketeak instalatzeko NAT egokigailua ere badu, egokigailu hori irteera zifratu gabe funtzionala da tunela erortzen den unean, eta zure VPN-soiliko proba ez zen inoiz VPN-soiliko proba izan.
Zerbitzaria urrun dagoenean eta pasabideak berak tunela amaitzen duenean, erabaki berak tunelaren interfazera seinalatzen du, internetera iristen den NIC-ra ez:
iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Mantendu tunelaren kanpoko garraioa eta banda kanpoko kudeaketa-bidea birbidalitako trafikoaz bereizita. Pasabidea konpontzeko modu bakarra arazten ari zaren tunelaren bidez bada, laborategia blokeo-ariketa bihurtzen da. Serie-kontsola bat, ostalariarentzako kudeaketa-egokigailu bat edo ezagutzen den egoera on baten snapshot bat merkeagoak dira hautsitako bideratzaile bat eskuz berreskuratzea baino.
Egiaztatu bidea gonbidatutik, ez ostalaritik
Lan egin kanporantz. Egiaztatu bezeroa pasabidearen WAN helbidera iristen dela, gero zerbitzarira pasabidearen bidez, gero VPN porturako konexio bat irteten eta itzultzen dela. Pasabidearen bi interfazeetan egindako harrapaketa batek erakusten du erantzuna iristen den eta itzulera-bidean botatzen den, bezeroan soilik egindako harrapaketa batek bereizi ezin duena:
tcpdump -ni eth0 udp port 1194
tcpdump -ni tun0 udp port 1194
Gero frogatu irteera. Galdetu gonbidatutik helbideen isla zerbitzu bati zein iturburu ikusten duen eta alderatu pasabidearen irteera-helbidearekin; erantzuna ostalariaren helbidearekin bat badator, tunelaren inguruko bidea dago. Egiaztatu gonbidatuak benetan zein resolver erabiltzen duen, eta egiaztatu IPv6 bereizita, IPv6 gaituta dagoen eta tunelak IPv4 soilik daraman segmentu batek diseinuz isurtzen baitu, ez ustekabean.
Azkenik, hautsi nahita. Gelditu tunela, edo blokeatu bere kanpoko portua, eta ireki konexio berri bat gonbidatutik. Huts egin behar du, eta arrazoia izenda dezakezun bat izan behar da: biderik ez, ukapen-arau bat edo resolver hilda. Berrabiarazi tunela eta egiaztatu gonbidatua sarearen berreraikuntza gabe suspertzen dela. Hamachi edo ZeroTier bezalako mesh VPN batek laborategia partekatzen badu, gogoratu zubi-egokigailu batek egokigailuaren izena jarraitzen duela, ez mesha, beraz zubia berriro zuzendu behar da bezeroak bere egokigailu birtuala instalatu ondoren.
VBoxManage list bridgedifs
VBoxManage modifyvm lab-client --bridgeadapter1 <mesh-adapter-name>
Gonbidatu baten tunela ostalariarekin partekatzeak arazoa islatzen du. Ostalariaren bide lehenetsia gonbidatura seinalatzeak funtzionatzen du, eta gonbidatuaren barruko proxy batek ere bai; ostalariaren bidezko NATak ez du gonbidatuaren tunela eramaten ostalariak sortutako trafikoarentzat. Gorde segmentu-izenak eta suebaki-arauak leku bakarrean, egin funtzionatzen duen egoeraren snapshot bat, eta erregistratu zerbitzariak behatu zuen iturburu-helbidea. Hurrengo profil-aldaketak script exekuzio bat kostatuko du, berreraikitako laborategi bat beharrean.