Laba dhibaato oo magac ayaa ka muuqda ku dhowaad irid kasta oo yar oo OpenVPN ah. Ma gaari kartid laptop ku xiran magaca ku yaal shahaadadiisa, adeegyada ka dambeeya tunnel-ka-na magac ma leh. Waxay u muuqdaan hal dhibaato oo waxay u baahan yihiin daaweyn ka soo horjeeda, sababtoo ah hal cinwaan ayaa la socda fadhi kasta kan kalena ma socdo. Go'aanso nooca magac ee aad ku darayso ka hor inta aadan wax beddelin.

Go'aanso magac kasta, ma aha iridda oo dhan

Imtixaanku waa fudud yahay: cinwaankani ma beddelmaa marka macmiilku dib u xirmo? Haddii haa, magaca waa in laga soo saaraa fadhiga VPN. Haddii maya, waxa uu ka tirsan yahay diiwaan joogto ah oo aad akhridi karto oo dib u eegis ku samayn karto.

Name kindSource of truthWhere it lives
Connected clientThe address OpenVPN just assignedGenerated hosts file, rewritten per session
Service behind the tunnelA fixed address you choseStatic address= drop-in
Anything with a certificate nameThe certificate, not the poolEither, but the name must match the certificate

Isku qasidda waa guuldarada caadiga ah. Adeeg ku dhegan faylka la soo saaray ayaa lumaya markii ugu horreysay ee skriptigu dib u qoro, macmiil ku qoran diiwaan joogto ahna waxa uu tilmaamayaa kii ugu dambeeyay ee haystay cinwaankaas. Labada khaladba waxay ahaanayaan kuwo aan la arkin ilaa magac lagu xalliyo mishiinka qaldan. Waqtigaas, qofka debug-gaynaya waxa uu u malaynayaa in DNS jabtay oo aanay ahayn faylka.

Jidka firfircoon: learn-address iyo barkada

OpenVPN wuu yaqaannaa qoondaynta, markaa u ogolow inuu kuu sheego. Doorashooyinkan server-ka waxay qoondaynta ka dhigaan mid waarta oo skript-ku-qor karo:

client-config-dir /etc/openvpn/ccd
ifconfig-pool-persist /etc/openvpn/ip-pool 60
script-security 2
learn-address /etc/openvpn/learn-address.sh

learn-address wuxuu socodsiiyaa skriptigaaga mar kasta oo cinwaan lagu daro, la cusboonaysiiyo ama la tirtiro, wuxuuna gudbiyaa hawlgalka, cinwaanka iyo magaca guud. Skript ugu yar ayaa ku daraya hal sadar macmiil kasta wuxuuna ka tuurayaa marka la tirtiro:

#!/bin/sh
HOSTS=/etc/openvpn/hosts.lan
case "$1" in
  add|update) echo "$2 $3" >> "$HOSTS" ;;
  delete)     sed -i "/^$2 /d" "$HOSTS" ;;
esac
kill -HUP $(cat /var/run/dnsmasq.pid)

Qalabka tun, doodda labaad waa cinwaanka tunnel-ka macmiilka, markaa sadarka si toos ah ayaa loo isticmaali karaa. Qalabka tap, OpenVPN waxa uu gudbiyaa cinwaanka MAC ee macmiilka, sababtoo ah qaybta tap waxay qaadi kartaa borotokoolo aan IPv4 ahayn, markaasna waa inaad cinwaanka ka raadiso faylka barkada magaca guud ka hor inta aadan wax qorin.

Caddee waxa faylka la soo saaray yahay: sawirka cidda hadda ku xiran. Magacyadu waxay lumaadaan marka la gooyo, taas oo si sax ah u tahay waxa aad rabto laptop-yada u dhexeeya shabakadaha, iyo si sax ah waxa aadan rabin server habeenkii oo dhan shidan.

Jidka joogtada ah: address= iyo ballaarinta domain-ka

U jeedi dnsmasq faylka la soo saaray halkii faylka hosts ee nidaamka, oo sii domain si magacyada gaagaaban ugu ballaadhaan magacyo si buuxda u qalma:

domain=corp.example
no-hosts
addn-hosts=/etc/openvpn/hosts.lan
listen-address=127.0.0.1,10.8.0.1
bind-interfaces

Marka domain la dejiyo, sadar sida 10.8.0.6 alice waxa uu ka jawaabaa alice iyo alice.corp.example labadaba. Ku hay listen-address oo kaliya iridda tunnel-ka iyo loopback, sababtoo ah xalliyaha si shil ah loogu daabacay interface-ka LAN waa adeeg aadan qorshayn inaad bixiso.

Adeegyada aan waligood barkada ka iman waxay helaan diiwaannadooda. Ku dheji fayl drop-in gaar ah gudaha galka habaynta qaybinta si cusboonaysiinta xidhmada aanay u tirtiri karin:

address=/files.corp.example/10.8.0.20
address=/db.corp.example/10.9.0.5

Gudbi xalliyaha ama waxba ma dhacayo

Xalliye aan cidna weydiin waxba ma beddelo. Server-ku waa inuu ku dhawaaqaa:

push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN corp.example"

Macaamiisha Windows waxay labada doorasho iskood u dabaqaan. Inta badan macaamiisha Linux ma sameeyaan: waxay u baahan yihiin isku-dhufasho xalliye la taageeray sida jillaabka update-resolv-conf ee qaybinta ama maaraynta DNS ee NetworkManager, ama domain raadin iyo nameserver gacanta lagu dejiyay. Hubi xalliyaha dhabta ah ee macmiilka halkii aad ka malayn lahayd in push-ka la ixtiraamay, sababtoo ah push la iska indhatiray waxa uu u eg yahay si sax ah server aan jawaabin.

Xaqiiji saddex lakab

Marka hore si toos ah server-ka weydii, ka dib macmiil, ka dib codsiga:

dig +short @10.8.0.1 alice.corp.example
getent hosts files.corp.example

Haddii weydiimaha tooska ah jawaabaan codsiguna aanu jawaabin, khaladku waa gudbinta macmiilka ee ma aha aagga. Haddii magacu xalliyo isla markaana xidhiidhku wali guuldareysto, magacu wuu fiican yahay waxa xigana waa dariiqa ama derbiga dabka.

Qor labada qaybood ee ku xiga habaynta: magacyada la soo saaro, kuwa la dhejiyay, iyo shahaadada mid kastaa ay tahay inuu la jaanqaado. Qofka xiga ee server ku daraya wuxuu koobi doonaa qaabkii ugu horreeyay ee uu helo.

Maqaallo la xiriira