Ku xiran OpenVPN laakiin waxba ma soo degaan: safar laga bilaabo macmiilka
Tunnel-ku wuu shaqaynayaa oo browser-ku weli wuu wareegayaa. Ka soco macmiilka xagga dibadda: laba duub, hal beddel ku jira kernel-ka, interface-ka dhabta ah ee bixitaanka, ka dib DNS.
Daaqadda macmiilku waxay tidhaahdaa Connected, ciwaanka tunnel-ku wuu jiraa, browser-kuna weli wuu wareegayaa. Isku darkaas waa caadi, maxaa yeelay gacan-qabsiga guulaystay wuxuu kaliya caddeeyaa in tunnel-ka la dhisay; ma sheegto in server-ku u gudbin doono baakadahaaga, uu dib u qori doono isha ay ka yimaadeen, ama uu ka jawaabi doono weydiimahaaga DNS. Khaladka dadka badankiisu sameeyaan waa inay marka hore furaan hagaajinta server-ka. Taa beddelkeeda ka shaqee macmiilka xagga dibadda, maxaa yeelay tallaabo kasta oo hoose waxay sheegaysaa in tan xigta ay mudan tahay in la hubiyo.
Ka bilow macmiilka oo u soco dibadda
Samee saddex tijaabo sidan u kala horreeya oo qor halka tan ugu horraysa ku guuldareysato. Ping ciwaanka tunnel-ka server-ka, taas oo caddaynaysa in tunnel-ka laftiisu qaado taraafikada. Ping ciwaan guud oo lambar leh, taas oo caddaynaysa gudbinta iyo turjumaadda iyada oo aan lagelidin xallinta magacyada. Ka dib isku day inaad xalliso magaca martigeliyaha, taas oo ah tijaabada kaliya ee isticmaasha DNS. Natiijo kastaa waxay shakiga ka saartaa lakab dhamaystiran.
Ha u boodin tijaabada saddexaad sababtoo ah browser-ku wuxuu u muuqdaa mid ka dhaqso badan. Soo dejinta bogga oo guuldareystay waxay daboolaysaa saddexda lakab isku mar, halkaas ayay dadku ka bilaabaan kadibna dib u dhisaan tunnel shaqeynayay. Boggu guuldareysta ma sheego mid ka mid ah saddexda uu jabay.
Laba duub ayaa muujinaya halka baakaduhu joogsadaan
Inta ping ka socda macmiilka oo u socda ciwaan guud, qaado hal duub interface-ka tunnel-ka iyo mid kale xiriirka sare ee lagu filayo inuu gaaro internet-ka. Labadaba isku mar ku socodsii si taariikhaha waqtigu isugu yimaadaan.
sudo tcpdump -ni tun0 -c 20 icmp
sudo tcpdump -ni enp1s0 -c 20 icmp
Haddii codsiyadu ka muuqdaan tunnel-ka oo aan waligood ka muuqan xiriirka sare, server-ku wuxuu u tuuray inta u dhaxaysa tunnel-ka iyo fiilada, sababtuna waa gudbin ama siyaasadda dab damiska gudbinta, ma aha NAT. Haddii ay ka muuqdaan labadaba, server-ku qaybtiisii wuu qabtay oo jawaabtu waxay ku lumaysaa meel ka sii fog, taas oo tilmaamaysa turjumaad, shaandheyn sare ama xannibaad ka timid bixiye.
Magaca xiriirka sare ka qaado shaxda marinku, ma aha buugga waxbarashada. Sawirada daruuraha iyo adapter-yada la magac beddelay ayaan badanaa la mid ahayn interface-ka tusaalaha buugga, duubka laga qaaday qalabka khaldan wuxuu u eg yahay sida server aan gudbinayn:
ip -4 route get 9.9.9.9
Qaybta dev ee soo-saarkaas waa magaca qaanuunka NAT uu hadhow u baahan doono, sidaas darteed hayso.
Gudbintu waa beddel ku jira kernel-ka iyo siyaasad dab damis
Kernel-ku waa inuu asal ahaan ogolaado gudbin. Akhri qiimaha hadda jira, ka dib ka dhig dejinta mid joogto ah halkii aad ku qori lahayd kernel-ka socda oo keliya:
sysctl net.ipv4.ip_forward
printf 'net.ipv4.ip_forward=1\n' > /etc/sysctl.d/70-vpn-forward.conf
sysctl --system
Gudbintu waa badhka kaliya. Martigeliyaha isticmaala UFW siyaasadda gudbinta waxaa lagu dejiyaa /etc/default/ufw waana inay tahay ACCEPT ka hor inta dib u raridda aysan dhaqan galin. Tuurista caadiga ah ee jidka gudbinta waxay gacan-qabsiga ka tagtaa mid caafimaad qaba isla markaana si aamusan u tuurta baakad kasta oo isku dayaya inuu tunnel-ka ka baxo, waana calaamadda aad ka bilaabtay.
Martigeliyayaasha si toos ah u maamula nftables waxay isku su'aal ku qabaan qaab kale. Fiiri tiriyayaasha silsiladda gudbinta inta tijaabada macmiilku socoto, maxaa yeelay silsiladda la weydiiyo iyo tan tuurtaa waxay isku mid uga muuqdaan faylka hagaajinta.
Ku magac dar interface-ka dhabta ah ee bixitaanka qaanuunka NAT
Turjumaadda isha waxay ku habboon tahay interface-ka dhab ahaan ka baxa martigeliyaha, oo la socda barka server-ku qaybiyo. Labada qaybood ee qaanuunkaas waa inay sharraxaan xaqiiqada, midkoodna ma aha ikhtiyaari.
iptables -t nat -A POSTROUTING -s 10.44.0.0/24 -o enp1s0 -j MASQUERADE
Guuldarada caadiga ah waa qaanuun laga koobiyeeyay buug oo sheegaya -o eth0 mishiin adapter-kiisu magac kale leeyahay. Qaanuunku wuxuu soo degaan isagoo aan digniin lahayn, waxna lama mid noqdo, macmiilkuna wali internet ma haysto. Barku waa badhka kale ee isla khaladkaas: haddii server-ku qaybiyo 10.44.0.0/24 oo qaanuunku daboolo 10.8.0.0/24, wax walba waligood lama mid noqon doonaan.
Fiiri tiriyayaasha halkii aad ku kalsoonaan lahayd qoraalka qaanuunka. Liistadu waxay soo sheegtaa baakadaha qaanuun kasta, qaanuunka aan waligiis mid noqon wuxuu ku sii jiraa eber si kastaba ha qalabkeedu u fiicnaado. Ka hor inta aad wax ka akhrido lambarkaas, sii hal daqiiqo taraafikada dhabta ah ee macmiilka:
iptables -t nat -L POSTROUTING -v -n
Tirinta baakadaha eber ka dib tijaabo dhab ah oo macmiilku waxay ka dhigan tahay in iswaafajintu khaldan tahay, ma aha in tunnel-ku jabay. Marka ay iswaafajiso, kaydi qaanuunada si ay uga gudbaan dib u kicinta; hagaajin ku nool oo kaliya taariikhda shell-kaaga waxay la lunto dib u kicinta ugu horreysa.
Haddii server-ku sidoo kale yahay nuqul NAT daruureed, madasha ayaa iyaduna cod leh. Nuqulka turjuma ciwaannada badanaa wuxuu u baahan yahay in la damiyo hubinta isha iyo meesha loo socdo halka bixiyuhu bixiyo dejintaas, iyo dekedda VPN lafteedu waa inay dibadda ka gaari kartaa.
DNS waa guuldarada labaad ee ka dambeysa tan hore
Ping ciwaan ku shaqeeya inta magacyadu guuldareystaan waa dhibaato xalliyaha, waxayna leedahay sababteeda. Macmiilka haysta xalliyaha maxalliga ah wuxuu weydiimahaas u diraa tunnel buuxa oo wuxuu sugayaa jawaab aan weligeed iman, maxaa yeelay xalliyaha maxalliga ah hadda wuxuu ku jiraa dhinaca khaldan ee marinka.
Ka riix xalliye server-ka si macmiilku u ogaado halka uu ka weydiiyo. Laba gelitaan waxay macmiilka siinayaan beddel haddii tan hore aan la gaari karin, labaduna waa inay noqdaan xalliyeyaal tunnel-ku dhab ahaan ogolaaday.
push "dhcp-option DNS 9.9.9.9"
push "dhcp-option DNS 149.112.112.112"
Macmiilada Windows ayaa haddii kale ku noqon kara xalliyaha maxalliga ah, taas oo block-outside-dns u jirto inuu ka hortago, iyadoo qiimaha lagu bixiyo luminta magacyada kaliya shabakadda maxalliga ah xallin karto. Macmiilada Linux ee isticmaala systemd-resolved badanaa waxay iska indhatiraan xalliyaha la riixay ilaa skript uu rakibo, sidaas darteed ka hubi resolvectl status qalabka tunnel-ka ka hor inta aad go'aansan in riixidda la iska indhatiray.
Safarka ku dhammee sida isticmaaluhu u arko. Ka soo rar bog dhab ah macmiilka, xaqiiji ciwaanka uu ka baxo, dib u kici server-ka, dib u xiriir oo ku celi saddexda tijaabo. Wareeggii labaad oo kaliya ayaa caddeeya in qaanuunada la kaydiyay, siyaasadda dab damiska iyo xalliyaha la riixay dhammaantood wada sii noolaadeen.