Laboratorju VPN ta' VirtualBox: VM tal-bieb kontra netwerk host biss
Agħżel bejn VM tal-bieb irrotat u segment host biss għal laboratorju VPN ta' VirtualBox, imbagħad ġiegħel il-mistieden ifalli magħluq meta l-mina taqa'.
Trid tiddeċiedi kemm il-laboratorju VPN tiegħek jistħoqqlu makkinarju. VM tal-bieb irrotat bejn żewġ segmenti ta' VirtualBox tirriproduċi t-traduzzjoni tal-indirizzi, it-triq lura u l-pożizzjoni tal-firewall li warajha joqgħod klijent reali. Segment wieħed host biss jagħtik bieb wieħed ikkontrollat u xejn aktar. Il-verżjoni tal-bieb tiswa tliet mistednin u tabella tal-irrotar li inti żżomm; il-verżjoni host biss tiswa mistieden wieħed u politika waħda. Tliet mistoqsijiet jifirduhom, u t-tielet jiddeċiedi jekk it-test tiegħek jistax jgħaddi xejn.
Wieġeb tliet mistoqsijiet qabel ma tikklona xejn
Ibda b'dak li s-server VPN irid josserva. Jekk is-server irid jara indirizz sors li mhuwiex tal-mistieden tat-test, xi ħaġa trid tittraduċi bejniethom, u dik il-ħaġa trid tkun router li inti tikkontrolla. Netwerking host biss tagħti lill-host adattatur fis-segment tal-mistieden, mhux traduttur. Meta mbagħad il-mistieden ikun irid jasal għal xi ħaġa barra, inti tqabbad adattatur NAT, u l-magna NAT ta' VirtualBox stess terġa' tikteb is-sors mingħajr ma tistaqsik.
Imbagħad staqsi jekk il-mistieden jistax jasal għal xi ħaġa għajr mill-mina. Dik it-tweġiba tagħżel interna jew host biss, u dan huwa l-mistoqsija li ħafna kitbiet tal-laboratorju jaqbżu. Fl-aħħar, staqsi x'għandu jiġri meta l-mina taqa', għax dan jiddeċiedi politika u mhux topoloġija, u laboratorju li jipprova biss it-triq ferħana ma jkunx ipprova kważi xejn.
| 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 |
Qabbad it-tliet rwoli b'netwerks interni
Uża tliet mistednin u żewġ segmenti bl-isem, bil-bieb bħala l-unika magna li għandha adattatur fuq it-tnejn:
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
M'hemmx pass ta' ħolqien separat għal netwerk intern. Is-sekwenza f'--intnet1 hija s-segment: żewġ magni jaqsmuha biss jekk l-isem jaqbel eżattament, u xejn fuq il-host mhuwa mqabbad magħha. Dan l-aħħar proprjetà hija r-raġuni għaliex il-laboratorju jerġa' jirrepeti ruħu nadif, għax it-toroq tal-host, il-klijent VPN tiegħu stess u l-firewall tiegħu ma jistgħux jaslu għand il-mistednin b'aċċident. Segment intern lanqas m'għandu server DHCP sakemm ma żżidx wieħed, allura l-indirizzi statiċi huma l-eqreb triq.
Agħti lill-klijent biss l-indirizz WAN tiegħu, b'bieb awtomatiku li jindika lejn l-indirizz WAN tal-bieb. Is-server jirċievi indirizz LAN u juża l-indirizz LAN tal-bieb bħala l-bieb awtomatiku tiegħu. Mistieden li jżomm żewġ indirizzi fuq segment wieħed, jew li għandu triq mitlufa lejn is-segment l-ieħor, għandu triq madwar ir-router, u t-testijiet hawn taħt jigdbu lilek.
Inżomm fajl tat-test ħdejn l-ismijiet tal-VM bl-erba' indirizzi u ż-żewġ ismijiet tas-segmenti, u nwaħħalha f'kull shell. Ġimgħat wara, meta bidla fil-profil tkisser xi ħaġa, dak il-fajl huwa d-differenza bejn id-debug tal-profil u d-debug tal-memorja tiegħi stess.
Agħżel intern jew host biss għas-segment li m'għandux joħroġ
Il-modalità host biss toħloq adattatur virtwali fuq il-host stess, normalment vboxnet0, u tagħti lill-host indirizz fis-segment tal-mistieden. Dan huwa konvenjenti għall-amministrazzjoni u fatali għal test ta' iżolament, għax il-host issa jista' jasal għall-mistieden direttament u kull servizz fuq in-naħa tal-host isir triq possibbli. Il-modalità interna m'għandhiex adattatur tal-host xejn. Iż-żewġ modi jiġu konfużi faċilment fil-pannell tas-settings tan-netwerk, allura iċċekkja d-differenza dokumentata u mhux it-tikketta (ara l-paġna dettalji tan-netwerking ta' VirtualBox).
Għal mistieden li jrid juża l-mina, l-intern huwa l-ogħla default sikur, bil-bieb bħala l-unika ħruġ. Jekk iżżomm host biss, ittratta l-adattatur tal-host bħala triq ta' ġestjoni u għidha b'leħen għoli: il-host jista' jasal għall-mistieden, u l-mistieden m'għandux ikun jista' juża l-host bħala ħruġ.
VBoxManage modifyvm lab-client --nic1 hostonly --hostonlyadapter1 vboxnet0
L-iżolament li tista' tipprova huwa l-iżolament li kkonfigurajt. Mistieden b'adattatur intern wieħed, triq awtomatika fil-bieb u ebda adattatur NAT m'għandux triq li tevita l-bieb. Mistieden b'adattatur host biss u adattatur NAT għandu żewġ toroq, u waħda biss minnhom hija dik li xtaqt tittestja.
Irrot u ttraduċi fuq il-bieb, imbagħad ġiegħelha tfalli magħluqa
VirtualBox ma jgħaddix bejn segmenti; il-mistieden jagħmel dan. Bil-VM tas-server VPN wara l-bieb, ippermetti l-għaddi u ttraduċi t-traffiku tal-klijent hekk kif joħroġ lejn is-server:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
B'dik ir-regola s-server jara l-indirizz LAN tal-bieb minflok dak tal-klijent, u hekk jidher klijent reali wara NAT ta' operatur għal ras tan-netwerk. Ippreserva l-valur sysctl f'/etc/sysctl.d/ u r-regola fis-servizz tal-firewall li juża d-distribuzzjoni, inkella reboot jerġa' jdaħħal il-laboratorju bil-kwiet fi stat irrotat iżda mhux tradott.
L-għaddi mhuwiex awtorizzazzjoni. Taħt il-politika FORWARD awtomatika ta' ACCEPT, mistieden li t-triq awtomatika tiegħu tindika lejn il-bieb joħroġ mill-interface li tagħżel it-tabella tal-irrotar, bil-mina jew mingħajrha. Jekk il-bieb għandu wkoll adattatur NAT għall-installazzjoni tal-pakketti, dak l-adattatur huwa ħruġ bla kriptaġġ li jaħdem fil-mument li l-mina taqa', u t-test tiegħek tal-VPN biss qatt ma kien test tal-VPN biss.
Meta s-server ikun fil-bogħod u l-bieb innifsu jtemm il-mina, l-istess deċiżjoni tindika lejn l-interface tal-mina, mhux lejn in-NIC li tasal għall-internet:
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
Żomm it-trasport ta' barra tal-mina stess u triq ta' ġestjoni barra mill-banda separati mit-traffiku mgħoddi. Jekk l-uniku mod kif issewwi l-bieb huwa permezz tal-mina li qed tiddenbugja, il-laboratorju jsir eżerċizzju ta' ssakkra barra. Console serjali, adattatur ta' ġestjoni host biss, jew snapshot ta' stat tajjeb magħruf huma irħas milli tirkupra router miksur bl-idejn.
Ivverifika t-triq mill-mistieden, mhux mill-host
Aħdem lejn barra. Ikkonferma li l-klijent jasal għall-indirizz WAN tal-bieb, imbagħad għas-server permezz tal-bieb, imbagħad li konnessjoni mal-port VPN toħroġ u terġa' lura. Qabda fuq iż-żewġ interfaces tal-bieb turi jekk it-tweġiba tasalx u jekk tinxteħitx fit-triq lura, li qabda biss fuq il-klijent ma tistax tiddistingwi:
tcpdump -ni eth0 udp port 1194
tcpdump -ni tun0 udp port 1194
Imbagħad ipprova l-ħruġ. Staqsi mill-mistieden lil servizz tar-riflessjoni tal-indirizzi liema sors jara u qabbel dan mal-indirizz tal-ħruġ tal-bieb stess; jekk it-tweġiba taqbel mal-indirizz tal-host, teżisti triq madwar il-mina. Iċċekkja liema resolver juża l-mistieden fil-fatt, u iċċekkja l-IPv6 b'mod separat, għax segment fejn l-IPv6 huwa attivat waqt li l-mina ġġorr biss IPv4 joħroġ bid-disinn u mhux b'aċċident.
Fl-aħħar, kissirha apposta. Waqqaf il-mina, jew imblokka l-port ta' barra tagħha, u iftaħ konnessjoni ġdida mill-mistieden. Trid tfalli, u r-raġuni trid tkun waħda li tista' ssemmi: ebda triq, regola ta' rifjut jew resolver mejjet. Erġa' ibda l-mina u kkonferma li l-mistieden jirkupra mingħajr ma jerġa' jibni n-netwerk. Jekk VPN mesh bħal Hamachi jew ZeroTier jaqsam il-laboratorju, ftakar li adattatur bil-pont isegwi l-isem tal-adattatur, mhux il-mesh, allura l-pont irid jiġi ridirezzjonat wara li l-klijent jinstalla l-adattatur virtwali tiegħu stess.
VBoxManage list bridgedifs
VBoxManage modifyvm lab-client --bridgeadapter1 <mesh-adapter-name>
Li taqsam il-mina tal-mistieden mal-host tirrifletti l-problema. Li tindika t-triq awtomatika tal-host lejn il-mistieden jaħdem, u proxy ġewwa l-mistieden ukoll; NAT permezz tal-host ma jġorrx il-mina tal-mistieden għat-traffiku li beda l-host. Ippreserva l-ismijiet tas-segmenti u r-regoli tal-firewall f'post wieħed, ħu snapshot tal-istat li jaħdem, u rrekordja l-indirizz tas-sors li osserva s-server. Il-bidla li jmiss fil-profil imbagħad tiswa esekuzzjoni waħda ta' skript minflok laboratorju mibni mill-ġdid.