U ogolow hal macmiil OpenVPN inuu SSH ku gaaro mid kale isagoon furin barkada
Ka fogee client-to-client, u ogolow kernel-ka inuu gudbiyo hal qulqul, oo dhinaca kale ee barkada ha ahaado mid xiran. Laba xeer oo server-ka ah iyo mid ku yaal bartilmaameedka.
Hal macmiil wuxuu u baahan yahay inuu gaaro adeegga SSH ee macmiil kale, oo inta kale ee barkada waa inay ahaato mid go'doonsan sida maanta. Beddelka soo jiidashada leh waa client-to-client, kaas oo daara gelitaanka dhig-macmiilasha oo dhan mar qudha oo go'aanka u dhiiba OpenVPN halkii kernel-ka. Jawaab cidhiidhi ah ayaa beddelkaas damiya oo u ogolaataa isku-xirka iyo dab-damiska server-ka laftiisa inay qaadaan hal qulqul oo sax ah.
Habka ayaa ka muhiimsan qoraalka xeerka, sababtoo ah labada dariiqo waxay baakadda dhigaan meelo kala duwan. Ogaanshaha tan aad dooratay waxay sharraxaysaa xeerka u muuqda inuusan waxba qaban iyo dhig-macmiilka ku xirma isaga la'aan.
Halka client-to-client uu baakadda u raro
Marka client-to-client daaran yahay, server-ku wuxuu baakadda dhig-macmiilka gudbiyaa gudaha halkii uu dib ugu diri lahaa qalabka tunnel-ka, sidaas darteed baakaddu marnaba ma gaarto dariiqa gudbinta kernel-ka. Taasi waa mid ku habboon waxayna sidoo kale macneheedu tahay in dab-damiskaagu marnaba uusan arkin qulqulka uu tahay inuu ilaaliyo. Ka tag doorashada damisan oo server-ku wuxuu baakadda dib ugu jiheeyaa isla isku-xirka, taas oo hor dhigta netfilter. Isla isku-xir gudaha, isla isku-xir dibadda, oo silsiladda FORWARD ayaa codka hesha.
Isku-beddelku waa cad: waxaad heshaa hal dhibic siyaasadeed oo waxaad qaadataa shaqada jiheynta iyo gudbinta oo jidka gaaban kuu qabanayay. Shaqadaasi way yar tahay hal qulqul oo way kordhaa iyada oo la raacayo kasta oo ka-reebis aad ku darto. Hadda tiri ka-reebisyada, sababtoo ah xeerarka ayaa ah halka siyaasadda dhig-macmiilasha dhab ahaan ku nooshahay.
Jidka baakadda dhig-macmiilka ay dhab ahaan qaadato
Ka soo qaad adeeg Linux Community OpenVPN 2.6, habaynta TUN ee bannaanka isticmaalaha halkii DCO, topoloji subnet, tun0, iyo barkad 10.44.0.0/24 oo leh macmiil A ku yaal 10.44.0.21 iyo macmiil B ku yaal 10.44.0.37. Topoloji subnet-ka, cinwaanka iyo maaskarada A helay ayaa horey u daboolaya barkada, sidaas darteed A wuxuu baakadda u diraa qalabka tunnel-ka isagoon u baahnayn waddo dheeraad ah oo la riixay. Hubi waddada dhabta ah ee A halkii aad ka malayn lahayd mid.
Server-ka baakaddu waxay timaaddaa iyada oo loo cinwaan galiyay B, taas oo aan ahayn cinwaan maxalli ah, sidaas darteed waa la gudbiyaa. Gudbinta IPv4 waa inay daaran tahay si taasi u dhacdo, oo raadinta waddada waa inay baakadda dib ugu dirto tun0. Sidaas darteed dab-damisku wuxuu arkaa qulqul la gudbiyay oo isku-xir isku mid ah labada dhinacba leh, waana taas faahfaahinta ay badi xeerarku seegaan. Halkan looma baahna tarjumaad isha, oo haynta cinwaanka A oo dhawr ah ayaa u ogolaata B inuu dabaqo xeerkiisa ku saleysan isha.
Laba xeer oo server-ka ah, sidan oo kale
Sadex xeer ayaa qaada ogolaanshaha oo dhan: gudbinta, ka-reebista lammaanaha, iyo diidmo caadi ah oo loogu talagalay lammaanaha tunnel-ka. Xeerka aqbalaadda wuxuu magacaabaa lammaanaha iyo adeegga, sidaas darteed ogolaanshuhu wuu ka badbaadaa barkad kororta. Dhig ka hor wax kasta oo diidmo guud ah oo loogu talagalay socodka tunnel-ilaa-tunnel, sababtoo ah isku-dhacii ugu horreeya ayaa guuleysta:
sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i tun0 -o tun0 -s 10.44.0.21 -d 10.44.0.37 -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -i tun0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o tun0 -j DROPAmarradaas waa tusaale oo waxay ka tirsan yihiin habka ay martigeliyahaagu u isticmaalo inuu xeerarka ku hayo; gelinta wakhtiga socodka ayaa luntay bilowga xiga. Xeerka xaaladda ayaa ah kan u ogolaata jawaabaha B iyo gacan-qabsiga TCP inay soo noqdaan iyada oo aan la helin aqbal labaad oo muraayad ah.
Hubi tirinta ka dib halkii aad hubin lahayd liiska xeerarka, sababtoo ah xeer aan marnaba isku-dhacin wuxuu u eg yahay mid shaqeeya. Haddii tirintu ay ku sii socoto eber, baakaddu ma qaadanayso jidka aad u malaynayso.
Waxa B ay tahay inuu wali ogolaado
B ayaa maamusha adeegga SSH, sidaas darteed B ayaa go'aamiya haddii wax ku dhageysto cinwaanka tunnel-ka iyo haddii dab-damiskiisa martigeliyaha uu aqbalo isha. Ogolaanshaha shabakada ee server-ka ma aha ogolaansho loogu talagalay akoon kasta oo B ah, oo xaqiijinta furaha martigeliyaha iyo aqoonsiga isticmaalaha ayaa wali khuseeya sida meel kasta oo kale.
Marka hore tijaabi kiiska togan: isku-xir SSH cusub oo ka socda A oo tagaya cinwaanka tunnel-ka B, oo lagu aqbalay furaha martigeliyaha la filayay. Kadib tijaabi dhig-macmiil kale ama deked kale oo xaqiiji in la diiday, sababtoo ah ogolaansho aamusan wax walba ogolaada lama kala garto mid shaqeeya ilaa ay muhiim noqoto. Labada qaybood ee tijaabadaas waa lagama maarmaan, tan labaadna waa tan dadku boodaan.
Qor cinwaannada la qoondeeyay, waddooyinka dhabta ah ee labada macmiil iyo xeerarka saxda ah ee server-ka iyo B. Ping guuleysta oo loo diray dekedda ama deked furan oo server-ka ah midkoodna ma caddeeyo wax ka mid ah tan, maadaama labaduba run noqon karaan iyada oo gudbinta dhig-macmiilasha wali xanniban. Qor tirooyinkaas inta tunnel-ku kor yahay, sababtoo ah cinwaanka macmiil uu helo ka dib dib u xirmin ayaa laga yaabaa inuu ahaado mid kale.