OpenVPN gudaha Docker: heshiiska fulinta ee macaamiil yar u baahan yahay
Sawir la eegay, hal borofayl la ilaaliyay, gelitaanka TUN iyo NET_ADMIN. Waxa weelka helo, waxa aanu helin, iyo sida loo caddeeyo in tunnelku shaqeeyo.
Geli macaamiil VPN weelka gudihiisa waxaadna heshaa hal meel magacyo oo tunnel ku dhex jiro, ma aha martigeliyaha dhammaan taraafikadiisa VPN ku maro. Kuwani waa mashaariic gaar ah, oo in loo arko mid ayaa ah jidka ay weelashu si shil ah u noqdaan kuwa mudnaan leh. Hagahan waxa uu daboolaa kaliya kan hore: hal sawir la eegay, hal borofayl la ilaaliyay iyo geedi socod macaamiil oo ku xaddidan meeshiisa magacyo shabakadeed.
Ka bilow qalab uu qof hore u ansixiyay. Tallaabooyinka hoose waxay u malaynayaan sawir ay ku jiraan faylka fulinta openvpn iyo borofayl macaamiil buuxa oo shahaadadiisa iyo maaddada furaha lagu xalliyay gudaha rakibaadda. Ma dhisaan software, ma soo saaraan aqoonsiyo, mana daboolaan deegaan la'aan root iyo weelasha Windows ee asalka ah, kuwaas oo mid kastaa jawaabta beddelo.
Waxa weelka helo iyo waxa aanu helin
Ku hay borofaylka iyo wax kasta oo uu tixraaco galka maxalliga ah oo leh fasax xaddidan, oo loo rakibay akhris-kaliya. Wadooyinka qaraabada ah ee borofaylka gudihiisa waa in lagu xalliyo rakibaaddaas; kani waa faahfaahin ay dadku seegaan marka shahaadadu galka borofaylka ka sarreeyo oo weelku waligiis arkin.
services:
vpn:
image: ${VPN_CLIENT_IMAGE:?set the reviewed image reference}
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- ./vpn:/vpn:ro
working_dir: /vpn
entrypoint: ["openvpn"]
command: ["--config", "/vpn/client.ovpn"]
Faylkaasi waxa uu bixiyaa saddex shay oo wax kale ma weydiisto. Tixraaca sawirka waa in lagu dhejiyo digest haddii siyaasaddaada geynta ay sidaas tidhaahdo, borofaylkuna waa inuu noqdaa kan la eegay, ma aha nuqul qof ku saxay martigeliyaha.
Akhris-kaliya halkan waxa loola jeedaa in weelku aanu beddeli karin faylashaada martigeliyaha; macneheedu ma aha in weelku aanu akhrin karin furaha gaarka ah ee aad rakibtay. Taasi waa ujeeddada oo dhan ee rakibaadda, sababtaas awgeedna fasaxyada faylka, lahaanshaha iyo sida sirta martigeliyaha u timid wali waa muhiim. Waligaa ha ku gudbin password khadka amarka hana ku dubin lakabka sawirka, sababtoo ah labaduba waxay ku sii jiraan meelo aadan hadhow nadiifin karin.
Awoodaha, entrypoint iyo dabinada dhexdooda
Laba dejitaan ayaa loo baahan yahay oo waxay qabtaan shaqooyin aan xiriir lahayn. NET_ADMIN waxa uu fasaxaa wax ka beddelka interface-yada iyo wadooyinka gudaha meesha magacyada weelka. Gelitaanka qalabka /dev/net/tun waxa uu u fasaxaa geedi socodka inuu gabi ahaanba furo qalabka tunnelka. Mid la'aanta midka kale waxay soo saartaa guuldarro cad, taas oo ku habboon: qalabka TUN ee maqan wuxuu ku guuldarraystaa furitaanka, halka awoodda maqan ay ku guuldarraystaa marka macaamiilku isku dayo inuu habeeyo interface-ka.
Midkoodna ma caddeeyo privileged: true. Weelka mudnaanta leh waxa uu helaa dhammaan awoodaha iyo gelitaanka qalabka, taasina waa bixin aad uga weyn tan ay u baahan tahay hawshan. tixraaca mudnaanta iyo awoodaha deegaanka fulinta waxa uu sharaxaa inta ay gaadho bixintaas. Haddii chart ama qoraal blog ay codsadaan, marka hore hubi in shuruuddu ay tahay waddo qalab maqan ama awood maqan.
Ka gudubka entrypoint waa qaybta qaniinta. Si toos ah u wacidda openvpn waa sax sawir caadi ah oo khalad ku ah sawir kasta oo badeeco ah oo qoraalka bilowgiisa diyaariyo xeerarka derbiga dabka, faylasha xalliyaha ama aqoonsiyada ka hor inta aanu daemonku shaqeyn. Ka gudubka qoraalkaas waxa uu boodaa diyaarinta oo waxa uu kuu reebaa inaad baarto tunnel soo kacay meel magacyo badh-habaysan.
Ku socodsii macaamiilka hore oo u ogolow inuu noqdo geedi socodka ugu weyn ee weelka. Geedi socodka daemon noqda isla markiiba baxa, weelku mar kale ayuu ku bilaabmaa wareeg, logogyada aad u baahan tahayna waxay ku firirsan yihiin dib-u-bilaabid isku mid ah.
Ka caddee gudaha meesha magacyada, ma aha martigeliyaha
Kor u qaad stack-ga, log-ga ku xaqiiji in macaamiilku gaadhay xaalad xiran, ka dibna baadh meesha magacyada ee dhab ahaan haysta tunnelka.
docker compose up -d
docker compose logs --tail 40 vpn
docker compose exec vpn ip -br addr
docker compose exec vpn ip route
Liiska ciwaannada waa inuu muujiyaa interface tunnel oo leh ciwaan ka socda barkada, shaxda wadooyinkuna waa inay muujisaa yoolalka la riixay oo u jeeda. Haddii interface-ku maqan yahay, macaamiilku waligiis ma gaadhin heerka abuuristiisa. Haddii uu jiro laakiin aad waddo midna isticmaalin, meesha la raadinayo waa push ama xulashooyinka waddada.
Kadib tijaabi yoolka aad danaynayso, meesha magacyada ee ku qasban inuu isticmaalo tunnelka, adigoo isticmaalaya barnaamijka oo aan kaliya ping ahayn. Xallinta magacyada waa guuldarro gaar ah oo mudan in si cad loo tijaabiyo: ciwaanka DNS la riixay isagu iskii ma cusboonaysiiyo xalliyaha weelka, macaamiil madax banaan oo iska indhatiray push-na wuxuu magacyada ku xallin doonaa waxa sawirku habeeyay.
Xaaladda go'day waa qayb ka mid ah heshiiska
Dabeecadda dib-u-xirka waxay u baahan tahay hubin u gaar ah, sababtoo ah siyaasadda dib-u-bilaabista waxay caddeynaysaa in geedi socodku dib u bilaabmo oo wax ma sheegto waxa taraafikadu sameeyo intaas. Jooji tunnelka, isku day yoolka loogu talagalay oo fiirso haddii xiriirka la diido, laadlaado, ama si aamusan ugu guulaysto waddada caadiga ah ee weelka. Natiijada ugu dambeysa waa tan muhiimka ah, oo kama muuqato log caafimaad qaba.
Haddii hawshu aysan waligeed isticmaalin karin waddada caadiga ah, si cad u qaabeeso xeerarka derbiga dabka iyo calaamad diyaargarow gudaha meesha magacyada. Kill switch waa siyaasad aad qorto oo tijaabiso, ma aha sifo aad ka dhaxasho markaad macaamiil ku shaqeysiiso weel.
Ugu dambeyntii, xusuuso xadka: wadooyinkani waxay ku nool yihiin meesha magacyada weelka oo ma beddelaan shaxda wadista martigeliyaha. Xeerarka gudbinta, tarjumaadda iyo derbiga dabka ee Docker waxay sii ahaanayaan qayb ka mid ah waddada dibadda, dekedda la daabacayna ma aha interface VPN.