Dhá chliant OpenVPN a nascadh ar aon óstach Linux le fwmark
Teastaíonn an réamhshocrú ón dá chliant. Ceangail an freastalaí istigh le ród óstach, cuir cosc ar an dara cliant ó na táblaí a athscríobh, agus ansin stiúir sreafaí le fwmark.
Nuair a chuirtear dara cliant OpenVPN ar aon óstach Linux amháin, teipeann sé i gceann de dhá áit. Nó ní féidir leis an gcliant istigh a fhreastalaí féin a shroicheadh mar gheall go bhfuil an tollán amuigh tar éis an t-iompar sin a ghabháil, nó athscríobhann an dara cliant an tábla ródaithe agus stopann an chéad tollán ag obair. Baineann an dá fhadhb le ródú, ní le criptiú, agus réitítear an dá cheann sula n-iompraíonn an tollán nua aon trácht feidhmchláir. Tá na seoltaí anseo mar thaispeántas: is é tun0 an tollán amuigh, is é 203.0.113.9 an freastalaí istigh, agus is é TCP 9999 an sreabhadh a chaithfidh an cosán istigh a úsáid.
Dhá mhód teipe, aon tábla ródaithe
Osclaíonn cliant istigh soicéad UDP chuig a fhreastalaí, agus leanann an soicéad sin an tábla ródaithe reatha ar nós aon cheann eile. Má tá an réamhshocrú ag an tollán amuigh cheana, téann na paicéid láimhe isteach sa tollán amuigh. Ní oibríonn sé sin ach amháin nuair is féidir le freastalaí amuigh freastalaí istigh a shroicheadh agus nuair a aontaíonn an taobh thall an sreabhadh a iompar; mura ndéanann, stopann an lámh agus déanann an cliant iarracht arís.
Tagann an dara teip ó bhrú an fhreastalaí. Is é redirect-gateway def1 an brú is gnách, a shuiteálann 0.0.0.0/1 agus 128.0.0.0/1 seach an réamhshocrú a athsholáthar. Dá bhrí sin bíonn dhá chliant a shuiteálann a bpéire /1 féin ag bualadh ar a chéile, agus bíonn an péire is nuaí chun tosaigh beagnach gach ceann scríbe. Féach ar an dá réimír sa tábla nuair a fhaigheann tollán bás tar éis an dara ceann a nascadh, mar b'fhéidir nár athraíodh an réamhshocrú féin riamh.
Marcáil an sreabhadh agus tabhair tábla dó
Stiúir an trácht roghnaithe trína mharcáil sa tábla mangle agus an marc a mheaitseáil i riail pholasaí. Díríonn an riail ar thábla tiomnaithe a bhfuil an gléas istigh mar réamhshocrú aige, ionas nach dtéann ach paicéid mharcáilte an cosán istigh.
iptables -t mangle -A PREROUTING -p tcp -m multiport --dport 9999 -j MARK --set-mark 0x9999
ip rule add fwmark 0x9999 table 200 pref 1000
ip route add default dev tun1 table 200Tagann an chuid is mó de na teipeanna sa riail seo as dhá dhearmad. Caithfidh an luach marc a shocraíonn an balla dóiteáin agus an luach a mheaitseálann an riail a bheith díreach mar a chéile, mar ní thugann difríocht earráid ná éifeacht. Agus ní fheiceann PREROUTING ach paicéid a thagann ón taobh amuigh, mar sin teastaíonn riail OUTPUT leis an meaitseáil chéanna ó nasc a thosaíonn ar an óstach seo sula marcáiltear ar chor ar bith é.
Bain úinéireacht an ródaithe den dara cliant
Coinníonn dhá rogha an dara cliant ón tábla a chur in eagar, agus feidhmíonn siad ag pointí éagsúla. Déanann route-nopull neamhaird de na roghanna ródaithe a bhrúitear, mar sin ní shuiteáiltear aon rud. Glacann route-noexec leis na roghanna brúite isteach i dtimpeallacht an chliaint ach fágtar an t-athrú tábla le hook, agus is é sin a theastaíonn uait nuair is gá duit a fheiceáil cad a thairg an freastalaí.
Ritheann an hook leis na luachanna brúite ina thimpeallacht, agus níor cheart dó ach na hiontrálacha a cheadaigh tú a chur leis. Déan idempotent é: glan an tábla atá aige sula ndéanfaidh tú é a atógáil, agus ná glac leis gur fhág an rith roimhe staid ghlan. Iarrann athnascadh ar an hook arís, agus carnann hook a chuireann leis gan glanadh róid dhúblacha.
Roghnaigh úinéir amháin agus scríobh síos é. Cruthaíonn próifíl a shocraíonn an dá rogha, nó hook a bhíonn in iomaíocht le script láimhe, tábla nach féidir le duine ar bith a mhíniú níos déanaí.
Ceangail seoltaí an dá fhreastalaí
Teastaíonn ród óstach tríd an ngléas amuigh ón bhfreastalaí istigh sula nascann an cliant istigh. Is í an iontráil sin a choinníonn an t-iompar istigh taobh istigh den tollán amuigh seach ligint dó an réamhshocrú a leanúint.
ip route add 203.0.113.9/32 dev tun0
ip route get 203.0.113.9Cuir ród óstach mheaitseálach leis don fhreastalaí amuigh sa phríomhthábla freisin, nó féadann athnascadh iompar an chliaint amuigh féin a ródú isteach ina thollán féin. Níl an t-ord roghnach: cuir na hiontrálacha seo leis tar éis don chomhéadan ábhartha a bheith ann, is é sin hook nó script a ritheann tar éis an naisc. Baintear ród a dhíríonn ar ghléas atá síos nó déantar neamhaird di, mar sin ní mhaireann iontráil a scríobhtar ag am tosaithe an tseichimh a ghlac tú leis.
Seiceáil an chuardach seach an tábla iomlán a léamh. Ainmníonn aschur an chuardaigh ród an gléas agus an seoladh foinse a úsáidfidh an t-eithne, agus is é sin go díreach a fhaigheann an cliant nuair a osclaíonn sé a shocéad.
Tástáil an tslabhra agus déan an teip sofheicthe
Déan gabháil ar an gcomhéadan amuigh agus an cliant istigh ag nascadh. Ba cheart an lámh istigh a bheith le feiceáil mar phálasta criptithe taobh istigh den tollán amuigh; má fheictear mar UDP lom chuig 203.0.113.9 é, tá an ród óstach ar iarraidh agus níor tógadh an slabhra riamh.
Is é an toradh is measa slabhra a fhilleann go ciúin ar an uplink fisiceach, mar ní fhógraíonn staid an chomhéadain aon rud agus fágann an trácht istigh ón seoladh foinse mícheart. Má féidir leis an dara cliant nascadh go díreach nuair a thiteann an tollán amuigh, díchumasaigh an cosán sin nó ceangail den chomhéadan amuigh é ionas go mbeidh an teip sofheicthe.
Críochnaigh le dhá shreabhadh agus aon dump rialach amháin: ba cheart go dtógfadh nasc marcáilte agus ceann neamh-mharcáilte cosáin éagsúla, agus ba cheart do ip rule show an tosaíocht a bhí ar intinn agat a liostú. Má thógann an dá shreabhadh an cosán céanna, níl an marc á chur i bhfeidhm san áit a gceapann tú.