Sida macmiilka OpenVPN ee ka dambeeya NAT uu u noqdo bixitaanka internetka
Bixitaanku isaga ayaa dibadda wacaya, marka router-kiisu uma baahna port soo gal ah. Raac waxa hubku marsaruuto, waxa bixitaanku gudbiyo iyo halka waddada dib u noqodku ka timaaddo.
Saddex host oo Linux ah, hal naqshad: hub OpenVPN oo si dadban loo gaari karo, laptop macmiil ah iyo mashiin bixitaan oo ka dambeeya router guri caadi ah oo aan waxba gudbin gudaha. Bixitaanku isaga ayaa hubka waca. Kadib taraafikada internetka macmiilku waxay ka gashaa tunnel-ka laptop-ka oo ka baxdaa xiriirka sare ee bixitaanka laftiisa. Wax kasta oo layaab leh oo ku jira habayntan waxay ka timaaddaa hal faahfaahin: bixitaanku ayaa bilaabay xiriirka, marka waddada gudaha horey ayay u jirtaa oo looma baahna gudbin port si loo abuuro.
Waxa soo socdaa waxay raacdaa waddada baakadda halkii ay ka raaci lahaayeen nidaamka isku-xirka, sababtoo ah isku-xirku macne ma leh ilaa aad ogaato qaybta go'aanka qaadasha. Lakab kastaa waxay qaaddaa hal go'aan oo sax ah, khaladaadkuna waxay isku ururaan halka laba lakab loo arko mid.
Laba kulan oo gaadiid, hal waddo gudaha ah
Host kastaa waxay haysataa xiriirkeeda dibadda ee hubka, midkoodna wax kama oga kan kale. Taraafikada macmiilka ee internetka waa qulqul gudaha ah oo gaar ah oo ku soo dhaca tunnel-ka macmiilka kadibna mar kale laga soo saaro tunnel-ka bixitaanka. Hubku waa inuu marsaruuto qulqulkaas gudaha ah, bixitaankuna waa inuu gudbiyo.
outer: consumer --TLS--> hub
outer: exit --TLS--> hub
inner: consumer --tun--> hub --internal--> exit --tun--> uplink
Maadaama labada xiriir ee dibadda ay ka baxaan dhinaca macmiilka, router-ka bixitaanku marnaba ma arko SYN soo gal ah oo marnaba uma baahna qaanuunka NAT ee meesha loo socdo. Waa inuu kaliya sii hayaa gaadiidka la aasaasay oo nool, taas oo uu horey u sameeyo xiriir kasta oo dheer. Waxba internetka dadweynaha kuma qasban inay marka hore gaaraan bixitaanka, taasina waa sababta ciwaanka firfircoon ee xiriirkaas sare aanu dhibaato ahayn. Router-ku wali waa inuu oggolaadaa kulanka baxa, laakiin taasi waa isla ogolaanshaha browser-ku horey u isticmaalo.
Waxa iroute uu dhab ahaan ku rakibo gudaha server-ka
Hubku waa qalabka kaliya ee go'aamiya lammaanaha kee leeyahay meesha loo socdo, wuxuuna go'aankaas ku qaataa shaxdiisa marsaruutka ee meesha isticmaalaha, ma aha tan kernel-ka. Diiwaanka client-config-dir ee bixitaanka oo lagu magacaabo exit-node wuxuu halkaas ku dalban karaa horgalaha caadiga ah:
# /etc/openvpn/server/ccd/exit-node
iroute 0.0.0.0 0.0.0.0
Sadarkaas wuxuu u sheegaa habka server-ka "baakadaha gudaha oo leh meel kasta oo loo socdo waxay leeyihiin macmiilkan". Kuma daro waddo caadi ah nidaamka hawlgalka hubka mana ka dhigto hubka iridda internetka. Tixraaca OpenVPN 2.6 wuxuu hayaa marsaruutka gudaha ee gaar u ah macmiilka iyo marsaruutka kernel-ka oo ah habab gaar ah, kala-soociddaasina waa sababta naqshaddan u shaqayso iyada oo aan taaban waddada caadiga ah ee hubka.
Macmiilku wuxuu u baahan yahay tilmaanta muraayadda, oo la keeno push, si taraafikadiisu u galo tunnel-ka halkii ay ka bixi lahayd iridda maxalliga ah. Marka la eego topoolojiyada subnetwork-ka, barkadu waa waddo ku xiran qalabka tun ee bixitaanka, marka jihada dib u noqodku uma baahna push dheeraad ah; waxa bixitaanku aanu qaadanayn waa dib u jiidista hoose, taas oo taraafikadiisa xiriirka sare ku celin lahayd tunnel-ka uu isku dayayo inuu isticmaalo. U dir kaliya macmiilka oo ka akhri waddooyinka la hirgeliyay macmiilka halkii aad ka aamini lahayd in faylka CCD la doortay.
# /etc/openvpn/server/ccd/consumer-01
push "redirect-gateway def1"
Gudbinta waxaa sameeya kernel-ka bixitaanka
Gudaha bixitaanka, baakad ka timaadda macmiilka waxay ku timaaddaa interface-ka tun iyada oo loo jeediyay host internet ah. Kernel-ku wuxuu eegaa shaxdiisa marsaruutka, wuxuu helaa xiriirka sare ee dhabta ah sida iswaafajinta ugu fiican kadibna wuxuu dabaqaa laba siyaasadood oo madax banaan: in baakaddan gudbin karo gabi ahaanba, iyo inay ka bixi karto interface-kaas ciwaankaas asalka ah. Gudbintu waa sysctl, oo qaybo badan waxay caadi ahaan damisnaataa.
Marka bixitaanku wuxuu u baahan yahay gudbin IPv4 oo si joogto ah loo shiday, qaanuun u oggolaada ilaha tunnel-ka macmiilka xagga xiriirka sare, iyo waddada jawaabta ee dib ugu noqota tun. Gudbinta oo loo shido hostka oo dhan waxay sidoo kale beddelaa dhaqanka wax kasta oo kale oo dhex mara, marka qaanuunku waa inuu magacaabaa ilaha iyo interface-yada halkii uu aqbali lahaa wax walba.
Waddada dib u noqodka waxaa iibsada tarjumaadda asalka
Host internet ah ma laha waddo ciwaanka 10.90.0.x, marka jawaabaha waa la tuuri lahaa ka hor inta aysan gaarin bixitaanka. Dib u qorista asalka marka baakaddu ka baxdo xiriirka sare ayaa taas xallisa, dabagalka xiriirkuna wuxuu dib u noqodka ku rogaa dib u qorista.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.90.0.0/24 -o enp1s0 -j MASQUERADE
ip -4 route get 10.90.0.9 # run on the exit: must point at the tun
Qaanuunka kore waa barta bilowga hal interface xiriir sare, ma aha siyaasad firewall. Cidhiidhi ilaha ku eg qoondaynta aad dhab ahaan oggolaatay, oo hay siyaasadda gelitaanka bixitaanka laftiisa gooni, si daboolka taraafikada tunnel-ku si aamusnaan ah uusan u bandhigin adeegyada maxalliga ah. Host leh ciwaan xiriir sare firfircoon, daboolku wuxuu sidoo kale kaa badbaadiyaa dabagalka ciwaanka gacanta.
Halka hubku ku dhaqan gelin karo iyo halka uu ku dhaqan gelin karin
Iyada oo client-to-client iyo waddada xogta caadiga ah ee meesha isticmaalaha, hubku wuxuu dhex dhigaa baakadaha gudaha lammaanayaasha dhexdooda gudaha habka server-ka. Marnaba ma gudbaan silsiladda FORWARD ee kernel-ka hubka, marka qaanuun kernel halkaas kuma xaddidi karo gudbinta lammaanayaasha dhexdooda, si kastaba ha loo qoro si taxadar leh. Dhaqangelintu waa inay ku noolaataa siyaasadda server-ka laftiisa: yaa loo oggol yahay inuu xirmo, faylka CCD kee uu helo, iyo in la bixiyo mulkiyadda caadiga ah ee bixitaanka.
Taasina waa sababta iroute caadi ahaan u yahay go'aan kalsooni ballaaran. Bixitaanku waa inuu si sharci ah u aqbalo taraafikada dib u noqodka ee ciwaannada internetka ee aan la cayimin, wuxuuna noqon doonaa mishiin aad maamusho, cusboonaysiiso oo la socoto. In mulkiyaddaas la siiyo lammaane aadan router siin lahayn waa khaladka naqshaddan ay ku casuumayso.
Xubinimada ayaa ah xakamaynta dhabta ah. Macmiil kasta oo awood u leh inuu habeeysto waddooyinkiisa wuxuu isku dayi karaa inuu isticmaalo bixitaanka, marka xaddididda cidda xirmi karta, ama lammaanayaasha bixitaanku u adeegi doono, waa qayb ka mid ah naqshadda ee ma aha fikrad dambe.
Si badbaado leh u guuldareysto marka bixitaanku lumo
Bixitaanka ka bixi khadka, mulkiyadda gudaha ee caadiga ah waxay la lumaysaa kulankiisa. Waxa aan dhicin waa in hubku si aamusnaan ah u noqdo bixitaanka beddelka: waddo caadi ah oo ka timaadda barkada VPN oo u socota xiriirka sare ee hubka ma jirto, iyo qaanuun daboolid ballaaran oo hubka ku yaal oo si farxad leh u gudbin lahaa isla taraafikadaas ma jirto. Guuldareydadaas si ula kac ah u tijaabi, kadibna soo kabashada ku tijaabi qulqul cusub halkii aad ka tijaabin lahayd bog horey u furan.
# on the consumer, with the exit up and then down
ip -4 route get 1.1.1.1
curl -sS -o /dev/null -w '%{http_code}\n' https://example.com
Haddii taraafikada macmiilka ay wali gaarto internetka ka dib marka bixitaanku tago, wax kale ayaa qaadaya oo xadka aad ka fikirtay ma jiro. DNS iyo IPv6 sidoo kale u tixgeli go'aanno gaar ah: waddada IPv4 iyo daboolku wax kama sheegaan taraafikada AAAA, xallinta uu hubku riixona waxay ka jawaabi doontaa halka su'aashu dhab ahaan ka baxdo.