Pi moja, instansi mbili za OpenVPN: kila kitengo husoma nini
Daemon mbili za OpenVPN kwenye Pi moja husoma faili tofauti za usanidi na hutoka kupitia hook tofauti. Panga kila instansi, kisha jaribu njia ya payload kivyake.
Hesabu michakato ya OpenVPN kabla ya kugusa profaili. Pi inayokaribisha watumiaji wa roaming na pia kupiga simu huduma ya juu huendesha daemon mbili, na kila moja husoma faili ya usanidi iliyochaguliwa na jina la instansi uliyoandika. Violezo vya kifurushi huwapa kila daemon saraka yake ya kazi, faili yake ya hali ya utekelezaji na kifaa chake cha handaki. Ukikosea mgawanyiko huu, utatumia jioni moja ukibadilisha mpangilio sahihi ndani ya faili ambayo mchakato unaoendesha haufungui kamwe.
Kila jina la instansi huchagua faili yake
Katika faili za kitengo zinazoambatana na OpenVPN 2.6, hoja za kuanza hubeba nafasi ya instansi inayojazwa na maandishi baada ya alama ya @. Kiolezo cha seva hufanya kazi kutoka saraka ya usanidi ya seva na hutatua hoja yake dhidi ya %i.conf iliyopo hapo, wakati kiolezo cha mteja hufanya sawa kutoka saraka ya mteja. Kwa hiyo [email protected] husoma admits.conf katika saraka ya seva na [email protected] husoma uplink.conf katika saraka ya mteja, na hakuna jina moja kati ya hayo lenye maana yoyote katika saraka nyingine.
Thibitisha ramani kwenye mashine badala ya kudhani kifurushi kimehifadhi thamani chaguo-msingi za juu. Drop-in ya usambazaji inaweza kubadilisha kabisa saraka ya kazi au hoja ya usanidi.
systemctl cat [email protected]
systemctl cat [email protected]Soma mstari wa WorkingDirectory na hoja ya usanidi katika pato hilo, kwa sababu kitengo kilichowezeshwa pekee ndicho huamua faili ipi hupakiwa. Drop-in inayoongeza --config kwenye ExecStart hushinda kiolezo hata njia ya kiolezo inapoonekana sahihi. Omba njia za fragment na drop-in unapotaka kujua kama ubadilishaji wa ndani unatumika. Kama majukumu yote mawili yanatatuliwa kwenye faili moja, una mchakato mmoja unaojaribu kuwa seva na mteja kwa wakati mmoja, na chaguo la baadaye katika faili hilo hushinda kimya kimya.
Usafirishaji wa ndani na payload inayosambazwa hukutana na hook tofauti
Uhusiano uliosimbwa wa seva na kila mtumiaji wa roaming huundwa kwenye Pi yenyewe, kwa hiyo majibu yake ya nje hutoka kupitia hook ya pato ya ndani. Uhusiano wa mteja na mwenzake wa juu pia ni pato lililoundwa ndani, ingawa hufikia mtandao wa mbali. Payload inayosambazwa ni aina ya tatu, na kernel huilinganisha tu baada ya kuwa tayari imechagua kifaa cha kutoka kwa pakiti.
| Flow | Hook that sees it | What to inspect |
|---|---|---|
| Roaming user handshakes to the server | Local input and local output | Listener socket, bind address, rule admitting the UDP port |
| User payload leaving through the upstream tunnel | Forward | IPv4 forwarding switch, selected route, permission rule, any translation |
| Pi's own connection to the upstream peer | Local output | Underlay route to the provider endpoint, not the tunnel route |
Sheria inayolingana na kiolesura cha kutoka ndani ya mnyororo wa forward inaweza kuruhusu au kutupa pakiti ambayo uelekezaji tayari umeipangia kiolesura hicho, lakini haichagui kiolesura kamwe. Wakati mwenyeji mmoja anamaliza handaki moja na kuanza lingine, sera inayotuma payload ya watumiaji kwenye handaki la juu na sera inayolinda majibu yaliyosimbwa ya Pi yenyewe ni maamuzi mawili tofauti. Yanatokea kwa bahati kwenye NIC moja ya kimwili, ndiyo sababu yanachanganywa.
Tofauti hiyo inaelezea kushindwa kwa nusu kunakotokea mara nyingi. Watumiaji huunganisha, handshake hukamilika, na trafiki yao bado hutoka kwa njia isiyofaa, kwa sababu handshake ilikuwa ya ndani na payload ilikuwa forward na ni moja tu kati ya mawili iliyojaribiwa.
Njia iliyoagizwa inaweza kumeza majibu kwa watumiaji wako
Mpangilio wa usalama wa profaili ya mteja huamua kile upande wa juu unaweza kusukuma kwenye jedwali la uelekezaji la Pi, na uelekezaji mpana ni chaguo linalobadilisha mwenyeji mwenye majukumu mawili anayefanya kazi kuwa aliyeharibika. Kama njia iliyosukumwa inashughulikia anwani za umma za watumiaji wa roaming, majibu ambayo seva huunda kuelekea kwao yanaweza kufuata njia mpya kuingia kwenye handaki la juu badala ya kutoka kupitia underlay. Watu mara nyingi huthibitisha kwamba handaki kuelekea mtoa huduma bado linafanya kazi na huacha hapo, kwa sababu trafiki hiyo ni usafirishaji wa handaki yenyewe na huendelea kutiririka wakati kila kitu kingine kinajiendesha vibaya.
Sera inayotegemea chanzo au mark ndiyo njia ya kuweka mito miwili tofauti. Chaguo la mark la Linux la OpenVPN huweka alama ya firewall kwenye pakiti zilizosimbwa za daemon, ambayo sheria ya uelekezaji inaweza kisha kuituma kwenye jedwali maalum. Anwani za chanzo hufanya kazi vizuri vile vile wakati majibu ya nje ya seva daima yanatoka kwa anwani moja ya underlay. Mbinu zote mbili zinahitaji njia halali katika jedwali linalochagua na ubaguzi kwa endpoint ya mtoa huduma, vinginevyo handaki yenyewe haipandi tena.
Uliza kernel ni njia gani jibu lingechukua kweli kabla ya kuandika sheria yoyote. Anwani zilizo hapa chini ni nafasi za anwani ya underlay ya Pi na anwani ya umma ya mtumiaji mmoja wa roaming.
ip rule show
ip route get 198.51.100.7 from 192.0.2.10Thibitisha mgawanyiko, kisha simamisha jukumu moja kwa wakati
Jaribu mito mitatu kivyake, kwa sababu handshake inayofanya kazi haithibitishi chochote kuhusu mingine miwili. Kubali muunganisho mpya unaoingia, tuma programu moja inayoruhusiwa kupitia njia ya kutoka ya juu, na thibitisha kwamba michakato yote mawili bado inafikia wenzi wake.
Kisha simamisha jukumu la mteja na uangalie kile jukumu la seva linabaki nacho. Hii ni njia ya bei nafuu zaidi ya kupata sheria ya njia au mark iliyokusudiwa instansi moja na kutumika kwa zote mbili.
systemctl stop [email protected]
systemctl status [email protected] --no-pager
ss -lunp | grep openvpn
journalctl -u [email protected] -n 20 --no-pagerUnachotaka kuona ni msikilizaji bado amefungwa, kifaa cha handaki bado kipo, na logi haina makosa mapya wakati jukumu la mteja limezimwa. Kama kusimamisha mteja kunakata pia majibu ya seva kwa watumiaji waliopo, majukumu mawili yanashiriki kitu ambacho kilipaswa kuwa kikomo kwa moja yao. Andika ni instansi gani, faili gani ya usanidi na mmiliki gani wa mtiririko kila mabadiliko yaligusa, vinginevyo mtu anayefuata kutatua hitilafu kwenye mwenyeji huyu atarudia ugunduzi huo kutoka mwanzo.