Labordy VPN VirtualBox: VM porth yn erbyn rhwydwaith gwesteiwr yn unig
Dewiswch rhwng VM porth a lwybrwyd a segment gwesteiwr yn unig ar gyfer labordy VPN VirtualBox, yna gwnewch i'r gwestai fethu ar gau pan fydd y twnnel yn cwympo.
Mae angen i chi benderfynu faint o beiriannau y mae eich labordy VPN yn ei haeddu. Mae VM porth a gyfeiriwyd rhwng dau segment VirtualBox yn atgynhyrchu'r cyfieithiad cyfeiriadau, y llwybr dychwelyd a safle'r wal dân y mae cleient go iawn yn eistedd y tu ôl iddi. Mae un segment gwesteiwr yn unig yn rhoi un drws dan reolaeth i chi a dim byd arall. Mae'r fersiwn porth yn costio tri gwestai a thabl llwybro rydych yn ei gynnal; mae'r fersiwn gwesteiwr yn unig yn costio un gwestai a pholisi. Mae tri chwestiwn yn eu gwahanu, a'r trydydd sy'n penderfynu a all eich prawf basio o gwbl.
Atebwch dri chwestiwn cyn clonio unrhyw beth
Dechreuwch gyda'r hyn y mae'n rhaid i'r gweinydd VPN ei arsylwi. Os oes rhaid i'r gweinydd weld cyfeiriad ffynhonnell nad yw'n un y gwestai prawf, rhaid i rywbeth gyfieithu rhyngddynt, a rhaid i'r rhywbeth hwnnw fod yn llwybrydd rydych yn ei reoli. Mae rhwydweithio gwesteiwr yn unig yn rhoi addasydd i'r gwesteiwr ar segment y gwestai, nid cyfieithydd. Pan fydd angen i'r gwestai gyrraedd unrhyw beth y tu allan wedyn, byddwch yn cysylltu addasydd NAT, ac mae peiriant NAT VirtualBox ei hun yn ailysgrifennu'r ffynhonnell heb ofyn i chi.
Nesaf, gofynnwch a gaiff y gwestai gyrraedd unrhyw beth ac eithrio drwy'r twnnel. Mae'r ateb hwnnw'n dewis mewnol neu westai yn unig, a dyma'r cwestiwn y mae'r rhan fwyaf o ysgrifau labordy yn ei hepgor. Yn olaf, gofynnwch beth sy'n rhaid digwydd pan fydd y twnnel yn cwympo, oherwydd mae hynny'n penderfynu polisi yn hytrach na thopoleg, ac nid yw labordy sy'n profi dim ond y llwybr hapus wedi profi bron dim byd.
| 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 |
Cysylltwch y tri rôl â rhwydweithiau mewnol
Defnyddiwch dri gwestai a dau segment a enwyd, gyda'r borth yn unig beiriant sy'n dal addasydd ar y ddau:
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
Nid oes cam creu ar wahân ar gyfer rhwydwaith mewnol. Y llinyn yn --intnet1 yw'r segment: dim ond os yw'r enw'n cyd-fynd yn union y mae dwy beiriant yn ei rannu, ac nid oes dim ar y gwesteiwr ynghlwm wrtho. Yr eiddo olaf hwnnw yw'r rheswm y mae'r labordy'n ailadrodd yn lân, gan na all llwybrau'r gwesteiwr, ei gleient VPN ei hun na'i wal dân gyrraedd y gwestai ar ddamwain. Nid oes gan segment mewnol weinydd DHCP chwaith oni bai eich bod yn ychwanegu un, felly cyfeiriadau statig yw'r llwybr byrraf.
Rhowch ei gyfeiriad WAN yn unig i'r cleient, gyda phorth diofyn yn pwyntio at gyfeiriad WAN y borth. Mae'r gweinydd yn cael cyfeiriad LAN ac yn defnyddio cyfeiriad LAN y borth fel ei borth diofyn. Mae gan westai sy'n cadw dau gyfeiriad ar un segment, neu lwybr crwydrol i'r segment arall, lwybr o amgylch y llwybrydd, a bydd y profion isod yn dweud celwydd wrthych.
Rwy'n cadw ffeil destun wrth ymyl enwau'r VM gyda'r pedwar cyfeiriad a dau enw segment, ac yn ei gludo i bob cragen. Wythnosau'n ddiweddarach, pan fydd newid proffil yn torri rhywbeth, y ffeil honno yw'r gwahaniaeth rhwng dadfygio'r proffil a dadfygio fy atgof fy hun.
Dewiswch fewnol neu westai yn unig ar gyfer y segment na ddylai ollwng
Mae modd gwestai yn unig yn creu addasydd rhithwir ar y gwesteiwr ei hun, fel arfer vboxnet0, ac yn rhoi cyfeiriad i'r gwesteiwr ar segment y gwestai. Mae hynny'n gyfleus ar gyfer gweinyddu ac yn angheuol ar gyfer prawf ynysu, oherwydd gall y gwesteiwr gyrraedd y gwestai'n uniongyrchol nawr ac mae pob gwasanaeth ar ochr y gwesteiwr yn dod yn llwybr posibl. Nid oes gan fodd mewnol addasydd gwesteiwr o gwbl. Mae'r ddau fodd yn hawdd i'w cymysgu yn y panel gosodiadau rhwydwaith, felly gwiriwch y gwahaniaeth a ddogfennwyd yn hytrach na'r label (gweler y dudalen manylion rhwydweithio VirtualBox).
Ar gyfer gwestai sy'n rhaid iddo ddefnyddio'r twnnel, mewnol yw'r diofyn mwy diogel, gyda'r borth fel yr unig ffordd allan. Os ydych yn cadw gwestai yn unig, tridiwch addasydd y gwesteiwr fel llwybr rheoli a dywedwch hynny'n uchel: caiff y gwesteiwr gyrraedd y gwestai, ac ni ddylai'r gwestai allu defnyddio'r gwesteiwr fel allanfa.
VBoxManage modifyvm lab-client --nic1 hostonly --hostonlyadapter1 vboxnet0
Yr ynysu y gallwch ei brofi yw'r ynysu y gwnaethoch ei ffurfweddu. Nid oes gan westai ag un addasydd mewnol, llwybr diofyn wrth y borth a dim addasydd NAT unrhyw lwybr sy'n osgoi'r borth. Mae gan westai ag addasydd gwesteiwr yn unig ac addasydd NAT ddau lwybr, a dim ond un ohonynt yw'r un y gwnaethoch fwriadu ei brofi.
Llwybrwch a chyfieithwch ar y borth, yna gwnewch iddo fethu ar gau
Nid yw VirtualBox yn anfon ymlaen rhwng segmentau; y gwestai sy'n gwneud hynny. Gyda VM y gweinydd VPN y tu ôl i'r borth, galluogwch anfon ymlaen a chyfieithu traffig y cleient wrth iddo adael tuag at y gweinydd:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Gyda'r rheol honno mae'r gweinydd yn gweld cyfeiriad LAN y borth yn lle un y cleient, sef sut mae cleient go iawn y tu ôl i NAT cariwr yn edrych i ben y rhwydwaith. Cadwch werth sysctl yn /etc/sysctl.d/ a'r rheol yn unrhyw wasanaeth wal dân y mae'r dosbarthiad yn ei ddefnyddio, neu bydd ailgychwyn yn dychwelyd y labordy'n dawel i gyflwr llwybredig ond heb ei gyfieithu.
Nid yw anfon ymlaen yn awdurdodiad. O dan bolisi FORWARD diofyn ACCEPT, mae gwestai y mae ei lwybr diofyn yn pwyntio at y borth yn gadael drwy ba bynnag ryngwyneb y mae'r tabl llwybro yn ei ddewis, twnnel ai peidio. Os oes gan y borth addasydd NAT hefyd ar gyfer gosod pecynnau, mae'r addasydd hwnnw'n allanfa heb ei hamgryptio sy'n gweithio'r eiliad y bydd y twnnel yn cwympo, ac nid oedd eich prawf VPN yn unig erioed yn brawf VPN yn unig.
Pan fydd y gweinydd ymhell i ffwrdd yn lle hynny a'r borth ei hun yn terfynu'r twnnel, mae'r un penderfyniad yn pwyntio at ryngwyneb y twnnel, nid at y NIC sy'n cyrraedd y rhyngrwyd:
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
Cadwch gludydd allanol y twnnel ei hun a llwybr rheoli all-fand yn ar wahân i draffig a anfonir ymlaen. Os mai'r unig ffordd i atgyweirio'r borth yw drwy'r twnnel rydych yn ei ddadfygio, mae'r labordy'n dod yn ymarfer cloi allan. Mae consol gyfresol, addasydd rheoli gwesteiwr yn unig, neu snapshot o gyflwr da hysbys yn rhatach na chael llwybrydd wedi torri yn ôl â llaw.
Gwiriwch y llwybr o'r gwestai, nid o'r gwesteiwr
Gweithiwch tuag allan. Cadarnhewch y gall y cleient gyrraedd cyfeiriad WAN y borth, yna'r gweinydd drwy'r borth, yna bod cysylltiad â phorth VPN yn gadael ac yn dychwelyd. Mae cipolwg ar ddau ryngwyneb y borth yn dangos a yw'r ateb yn cyrraedd ac yn cael ei ollwng ar y llwybr dychwelyd, rhywbeth na all cipolwg ar y cleient yn unig ei wahaniaethu:
tcpdump -ni eth0 udp port 1194
tcpdump -ni tun0 udp port 1194
Yna profwch yr allanfa. Gofynnwch o'r gwestai i wasanaeth adlewyrchu cyfeiriadau pa ffynhonnell y mae'n ei gweld a chymharwch hynny â chyfeiriad allanfa'r borth ei hun; os yw'r ateb yn cyd-fynd â chyfeiriad y gwesteiwr, mae llwybr o amgylch y twnnel yn bodoli. Gwiriwch pa ddatryswr y mae'r gwestai'n ei ddefnyddio mewn gwirionedd, a gwiriwch IPv6 ar ei ben ei hun, oherwydd mae segment lle mae IPv6 wedi'i alluogi tra bod y twnnel yn cario IPv4 yn unig yn gollwng yn ôl dyluniad yn hytrach nag ar ddamwain.
Yn olaf, torrwch ef yn fwriadol. Stopiwch y twnnel, neu rwystrwch ei borth allanol, ac agorwch gysylltiad newydd o'r gwestai. Rhaid iddo fethu, a rhaid i'r rheswm fod yn un y gallwch ei enwi: dim llwybr, rheol wrthod, neu ddatryswr marw. Ailgychwynnwch y twnnel a chadarnhewch fod y gwestai'n gwella heb ailadeiladu'r rhwydwaith. Os yw mesh VPN fel Hamachi neu ZeroTier yn rhannu'r labordy, cofiwch fod addasydd pont yn dilyn enw'r addasydd, nid y mesh, felly rhaid ailgyfeirio'r bont ar ôl i'r cleient osod ei addasydd rhithwir ei hun.
VBoxManage list bridgedifs
VBoxManage modifyvm lab-client --bridgeadapter1 <mesh-adapter-name>
Mae rhannu twnnel gwestai â'r gwesteiwr yn adlewyrchu'r broblem. Mae pwyntio llwybr diofyn y gwesteiwr at y gwestai yn gweithio, ac felly hefyd dirprwy y tu mewn i'r gwestai; nid yw NAT drwy'r gwesteiwr yn cario twnnel y gwestai ar gyfer traffig a ddechreuwyd gan y gwesteiwr. Cadwch enwau'r segmentau a rheolau'r wal dân mewn un man, cymerwch snapshot o'r cyflwr gweithio, a chofnodwch y cyfeiriad ffynhonnell a arsylwyd gan y gweinydd. Yna mae'r newid proffil nesaf yn costio un rhediad sgript yn lle labordy wedi'i ailadeiladu.