Laba diiwaan A, hal cinwaan, hal daemon: magac kasta oo isticmaaluhu qoro, xirmada timaadda waa isku mid, nidaamka ku xidhan port 1194-na ma hayo wax uu ku kala garto labada. Tani maaha qaabayn khaldan oo sugaysa hagaajin; waa xadka waxa raadinta magac ay sheegi karto. Wax kasta oo ka dhex dooranaya laba nuqul oo OpenVPN waa inuu noqdaa qiime uu macmiilku geliyo xiriirka oo dhinaca hore dib u akhrin karo, macmiilka caadiga ah ee OpenVPN-na ma geliyo qiime sidan oo kale ah si cad. Waxa soo socdaa waa halka ay taas kuu reebto, iyo qaabaynta run ahaantii kala qaybisa gaadiidka.

Ka bilow waxa xalliyuhu soo celiyo

Macmiil wuxuu weydiistaa vpn-a.example oo wuxuu helaa cinwaan; cinwaankaas iyo port ayaa ah waxa uu wacayo oo dhan. Magaca waxaa lagu bixiyaa gudaha, inta lagu jiro raadinta, walina ma noqdo goob ku taal xarigga, sidaas darteed dhageystaha dhinaca kale ma arki karo calaamadda la isticmaalay. U jeedi vpn-a.example iyo vpn-b.example hal martigeliye, labada raadin waxay bixiyaan isla meesha, taasina waa sababta daemonku u nuugo labada xiriir hal nuqul isagoon diiwaangelin faraq. Borofiilada ku salaysan cinwaanka waxay u dhaqmaan sida kuwa ku salaysan magaca, isla sababtaas.

Tani waxay sidoo kale xirtaa qoyska xalal keliya oo soo jiidasho leh: magacyo dheeraad ah, shahaadad gaar ah magac kasta oo ku taal hal socket, ama qaanuun derbi-dab ah oo ku xidhan magaca la weydiiyay. Midkoodna ma ku shaqayn karo macluumaad hore loo tuuray ka hor inta aan xirmada ugu horreysa ka bixin macmiilka. Haddii laba serwer ay tahay inay kala maqnaadaan, kala qaybintu waa inay la safartaa xiriirka laftiisa, taas oo macnaheedu yahay cinwaan, port, ama goob culays oo uu qeexo borotokoolka.

Doorashada kaliya ee la tiriyaa waxay gudaha u socotaa xirmada

HTTP waxay tan ku maareysaa madax Host, TLS-na waxay ku maareysaa fidinta magaca serwer gudaha ClientHello, sidaasna hal cinwaan wuxuu u adeegaa goobo badan gadaashiis hal dhageyste. Labaduba way shaqeeyaan sababtoo ah borotokoolka xariggu wuxuu qaadaa codsi adeeg gaar ah. Xaqiiqada muhiimka ah ee ku saabsan OpenVPN waa in aan midkoodna goobahaas uusan ku jirin lakabka sanduuqa dhexdhexaadka ah uu baaro.

Habaynta caadiga ah, gacan-qabsiga TLS ee ilaaliya kanaalka kontoroolka wuxuu dhacaa ka dib marka fadhiga dibadda la dhiso oo waxaa lagu qaadaa gudihiisa, sidaas darteed dhageyste aan dhammaystirin fadhigaas wuxuu arkaa qulqul aan caddayn. Weli wuxuu odhan karaa kani waa OpenVPN, sababtoo ah opcode-ka iyo wareegga baytyada bilowga ah waa la aqoonsan karaa, laakiin magaca serwerka, haddii uu jiro, wuxuu fadhiyaa qaybta sirta ah. Naqshad rajaynaysa inuu ka akhriyo martigeliye mala-awaal ah xirmada dibadda waxay akhrinaysaa goob uusan borotokoolku waligiis halkaas ku qorin. Taasi waxay ka timaaddaa sida tunnel-ka loo dhisay, ma aha dalool uu iswaafajinta qaabab caqli badan xiri karto.

Halka kala-qaybiyaha borotokoolku joogsado

Isku-dhufo-qaade nooca mashruuca sslh diiwaangeliyo wuxuu dhagaystaa hal port, wuxuu baarayaa baytyada bilowga ah, wuxuuna xiriirka u dhiibaa backend kasta oo ku hadla borotokoolka la aqoonsaday. Taasi waa qiimo dhab ah marka hal port ay tahay inuu wada adeego SSH, HTTPS iyo OpenVPN.

sslh wuxuu hayaa baaritaan gaar ah borotokool kasta, baaritaankiisa TLS-na wuxuu ka soo saari karaa magac serwer ama qiime ALPN ClientHello dhab ah. Aqoonsiga OpenVPN asalka ah waa kala-saarid ka duwan akhrinta fidinta TLS, labaduna isu ma geeyaan, sababtoo ah macmiil aan waligiis ClientHello u dirin socket-ka dhageysiga wuxuu baaritaanka uga tagaa wax la akhriyo. Sidaas darteed qaanuunka u dhigma OpenVPN wuxuu ku jawaabaa “kani waa macmiil OpenVPN” oo ma sii socdo. Laba backend OpenVPN oo ka dambeeya qaanuunkaas lama kala garan karo, dhinaca hore ma hayo aasaas doorasho, fadhigastaana wuxuu ku soo degaa isla meel. Isku-dhufo-qaadku wuxuu hal port ku wadaagaa adeegyo kala duwan; kuma sameeyo martigelin mala-awaal ah gudaha hal adeeg.

Qaabaynta run ahaantii kala qaybisa laba serwer

Kala qaybinta daacadda ah ee ugu jaban waa cinwaan guud oo labaad, mid nuqul kasta, borofiilada jiraana waxay hore u qaadaan waxa loo baahan yahay sababtoo ah waxay u jeedaan cinwaanno kala duwan. Tan xigta waa port kale oo isla cinwaanka ah, taas oo aan waxba kharash gelin aan ahayn lambar borofiil kasta. TCP iyo UDP waxay hayaan shaxanno port oo gooni ah, sidaas darteed 1194/tcp iyo 1194/udp waa sockets aan xiriir la lahayn mid kastana wuu wada noolaan karaa hal martigeliye; tani waa kala qaybin gaadiid ma aha dariiqa magaca, oo inta badan lagu khaldaa. Labada xulashooba waxay ka gudbaan dib-u-eegista derbi-dabka, sababtoo ah qaanuunku wuxuu u dhigmaa wax xirmadu runtii ku jiro.

Haddii xadka aad u baahan tahay uu dhex maro kooxaha isticmaalayaasha ee aan ahayn laba hirgelin, hal nuqul oo leh qaabayn macmiil oo kala duwan, maaraynta shahaadadiisa iyo siyaasad gelitaan cad ayaa dabooli kara. Waxa la iibsado waa siyaasad gudaha serwer, ma aha go'doomin serwerrada dhexdooda, labaduna waa baahi kala duwan. Go'doomin ay tahay inuu ku sii jiro xaalad waxyeello weli wuxuu u baahan yahay cinwaanka ama geeska derbi-dabka.

Xiriiriyaha TLS ee la hor dhigay OpenVPN wuxuu u bandhigi karaa dhinaca hore ee awoodda leh magac serwer dhab ah, laakiin kaliya marka dhinaca macmiilka sidoo kale loo qaabeeyay lakabkaas dheeriga ah. Borofiilada jira ma helaan dhaqankaas iyagoo kaliya loo jeediyay isla cinwaanka.

Caddayso doorashada ka hor intaadan dhisin

Magacow goobta aqoonsan doonta backend, ka dibna xaqiiji in macmiilku runtii soo diro; haddii jawaabtu tahay cinwaan qorshuhu wuu taagan yahay, haddii ay tahay magac serwer gudaha gacan-qabsi aan waligiis gaarin dhageystaha, shaqo DNS ah ma badbaadin karto. Saddex amar ayaa dhinaca dhageysiga si dhakhso ah u go'aamiya.

ss -lntup | grep -E ':443|:1194'
openssl s_client -connect vpn-a.example:443 -servername vpn-a.example </dev/null | head -n 20
journalctl -u openvpn-server@server-a -n 20 --no-pager

Sadarka openssl wuxuu shahaado bixiyaa kaliya halka wax ku yaal cinwaankaas uu TLS ku dhammeeyo; dhageyste OpenVPN asalka ah hortiisa wuu istaagaa ama wuu guuldarraystaa, taasina lafteedu waa jawaabta waxa lakabka dibaddu bandhigo. Sadarka journal, marka backend kasta lagu akhriyo, wuxuu muujinayaa nuqulka aqbaleeyay fadhiga. Diiwaannada dhinaca hore waxay qoraan waxa la kala saaray walina ma qoraan waxa la doonayay, sidaas darteed backend-ku waa kan kaliya ee awood u leh halka isticmaaluhu ku soo dego.

Ku dhammee laba borofiil oo loogu talagalay inay gaaraan serwerro kala duwan, mid mid u xiriir oo qor diiwaanka backend-ka mid kasta. Haddii labada fadhi ay ka soo muuqdaan isla journal, doorashada ayaa maqan ee ma aha qaabayn khaldan, hagaajintuna waa cinwaan ama port uu macmiilku bartilmaameedsan karo. Tafatirka qaanuunka dariiqa ma caawin doono, sababtoo ah qaanuunka waligiis lama siin wax uu ku darto. Marka kala qaybintu dhab noqoto, ku qor borofiilada agtooda si qofka xiga uusan u kordhin magac kale oo uusan u rajayn inuu shaqada qabto.

Maqaallo la xiriira