Tuneli kamili katika strongSwan inahitaji 0.0.0.0/0 pande zote mbili
Tuneli kamili inahitaji 0.0.0.0/0 kama remote_ts ya mteja na local_ts ya lango, pamoja na uelekezaji, NAT na njia ya kurudi. Angalia zote nne.
Muunganisho wa strongSwan unaofanya kazi kwa subneti moja ya faragha hautabeba trafiki ya intaneti kwa sababu tu mtu alihariri mstari mmoja. Tuneli kamili ni makubaliano kati ya pande mbili kuhusu anwani zipi child SA inalinda, na kila upande unautaja mwingine kwa kulinganisha na wenyewe. Fanya upande mmoja sahihi na mwingine makosa, na child SA aidha haitapanda au itapanda nyembamba kuliko ilivyokusudiwa. Ukaguzi watano hapa chini unafuata makubaliano hayo kutoka kwa mteja, kupitia lango, hadi intaneti.
Kwanza angalia kichaguzi cha mteja
Mteja anaelezea anachotaka kulinda upande wa mbali kama remote_ts, na kila kitu anachotuma kinatoka kwenye anwani yake mwenyewe iliyopewa. Kwa trafiki ya intaneti thamani hiyo lazima ifunike maeneo ambayo mtumiaji atafikia kwa kweli, ambayo kwa vitendo inamaanisha nafasi yote ya IPv4. Mteja ambaye bado anaorodhesha subneti moja anaomba tuneli iliyogawanywa, jina la wasifu kwenye kiolesura liwe lolote. Upande wa chanzo kwa kawaida ni dynamic kwa sababu anwani inatolewa wakati wa kuunganisha. Chanzo kisichobadilika kilichoandikwa hapo kinavunjika mara tu kundi la anwani linapobadilika.
children {
net {
local_ts = dynamic
remote_ts = 0.0.0.0/0
}
}
Kipande hiki si faili kamili ya muunganisho, na hiki kinadhani uthibitishaji, utambulisho na kundi la anwani pepe tayari vimesanidiwa. Kichaguzi cha chanzo cha mteja na anwani inayotolewa na seva bado lazima zioane, vinginevyo child SA itapanda na wigo ambao hakuna upande uliotarajia. Ipakishe kwa swanctl --load-all na usome matokeo kabla ya kudhani mafanikio. Faili inayochanganuliwa bado inaweza kukataliwa kwa sababu ya kichaguzi kisichogiliana na pendekezo la upande mwingine.
Angalia kichaguzi cha lango kwa upande wake
Lango linasoma dhana hiyo hiyo kutoka mwelekeo kinyume. Maeneo ya intaneti ni ya ndani kwa lango, kwa hiyo local_ts yake ni pana na remote_ts inaelezea kundi la wateja. Upinduzi huo ni kosa la kawaida zaidi katika usanidi wa tuneli kamili, na unapita ukaguzi kwa sababu mistari yote miwili inaonekana kuaminika peke yake.
children {
rw {
local_ts = 0.0.0.0/0
remote_ts = 10.77.0.0/24
}
}
Kunakili kipande cha mteja kwenye faili ya lango hutengeneza jozi ya vichaguzi ambayo haielezi kitu chochote cha manufaa, kwa sababu pande zote mbili zitadai jukumu moja. Mwongozo wa uelekezaji wa strongSwan unaandika kwa uwazi uoanishaji wa mteja na lango, na inafaa kusoma kando ya faili ya muunganisho badala ya baada ya kushindwa. Faili ya lango pia inahitaji ufafanuzi wa kundi ambalo remote_ts inarejelea. Kichaguzi kinachotaja kundi lisilopo hupakiwa bila malalamiko na kushindwa wakati wa kuunganisha.
ipsec.conf ya zamani inatumia majukumu ya kushoto na kulia na funguo tofauti, na mstari wa rightsubnet si mbadala wa moja kwa moja wa thamani ya swanctl. Weka sintaksia mbili katika faili tofauti badala ya kubandika moja ndani ya nyingine. Kuzichanganya katika saraka moja ni jinsi muunganisho unaofanya kazi unarudi kimya baada ya kuwasha upya.
Angalia child SA iliyojadiliwa, si faili
Usanidi uliohifadhiwa unathibitisha nia na hakuna zaidi. Upande mwingine unaweza kupunguza kilichoombwa, na child SA iliyopo haibadilishwi kwa sababu tu faili iliyo chini yake imebadilika. Thibitisha kilichoanzishwa kweli kabla ya kubadilisha kitu kingine.
swanctl --list-conns
swanctl --list-sas
ip xfrm policy list
Amri ya kwanza inaonyesha kile daemon ilichopakia, ya pili inaonyesha child SA zilizoanzishwa, na ya tatu inaonyesha sera ambazo kernel itatumia. Ikiwa faili inasema 0.0.0.0/0 na orodha inaonyesha subneti moja, mazungumzo yalipunguza wigo na kusoma faili tena hakutaeleza hilo. Maliza child, ianzishe tena, na linganisha matokeo yote matatu tena. Child inayorudi na wigo uleule mwembamba inapunguzwa na upande wa mbali na si faili ya ndani, na hayo ni mazungumzo na msimamizi mwingine badala ya mabadiliko ya ndani.
Soma mwelekeo wote wawili katika orodha ya sera, kwa sababu tuneli inayoweka mwelekeo mmoja na si mwingine ni tatizo la uelekezaji lililovaa mavazi ya usanidi. Sera za mbele na nyuma zinapaswa kutaja jozi ileile ya vichaguzi kwa mfano wa kioo, na kioo kinachokosekana ni kasoro katika daemon au pendekezo, si katika maandishi ya kichaguzi.
Angalia uelekezaji na njia ya kurudi
Kichaguzi kinaruhusu trafiki kufika lango, lakini hakifanyi lango kuelekeza trafiki hiyo mbele zaidi. Uelekezaji lazima uwezeshwe, ukuta wa moto lazima uruhusu mtiririko, na jibu lazima lipate njia ya kurudi kwenye kundi la wateja. Hizi ni mahitaji matatu tofauti, na kila moja inashindwa kwa dalili tofauti. Sheria ya uelekezaji inayokosekana hufanya kama shimo jeusi, wakati njia ya kurudi inayokosekana hufanya kama tuneli ya upande mmoja.
sysctl net.ipv4.ip_forward
iptables -t nat -S | grep -i masq
ip route get 1.1.1.1
Anwani za faragha za wateja kwa kawaida zinahitaji tafsiri ya chanzo kwa makusudi kabla ya kuondoka kwenye kiolesura cha umma, wakati ugawaji ulioelekezwa waziwazi unahitaji matibabu tofauti. Ikiwa NAT inahusika, weka misamaha inayoungwa mkono na utekelezaji ili trafiki ambayo sera ya usalama inapaswa kukagua isitafsiriwe ikipita. Sheria pana ya masquerade iliyonakiliwa kutoka lango lingine hubadilisha mitiririko mingi zaidi kuliko mwandishi wake alivyokusudia. Andika sheria kwa kundi la wateja pekee, na uache maoni yanayoeleza kwa nini ipo.
Kwenye mteja, thibitisha njia zilizowekwa na backend badala ya njia ulizodhani. Msimamizi aliyemaliza uwekaji wa njia anahitaji muundo wa uelekezaji unaotunzwa kwa mkono, na muundo huo unapaswa kusasishwa kila tuneli inapobadilika. Angalia jedwali la uelekezaji baada ya kuunganisha tena, si tu baada ya kuwasha upya.
Angalia kile tuneli bado haijafunika
Jozi ya vichaguzi inafunika IPv4 na hakuna kingine. IPv6, DNS na sera yoyote ya ngazi ya programu ni maamuzi tofauti ambayo kichaguzi pana cha IPv4 hupuuza kimya. Tuneli inayobeba kila pakiti ya IPv4 bado inaweza kuvujisha kila utafutaji wa jina.
Taja wazi njia ya DNS inayokusudiwa, kwa sababu tuneli kamili ambayo bado hutatua majina kupitia kitatuzi cha ndani huvujisha maswali nje ya tuneli na kuvunja majina ya faragha. Ikiwa mteja anapewa anwani ya IPv6, familia hiyo ya anwani inahitaji matibabu sawa, vinginevyo mwenyeji atapendelea njia ambayo tuneli haikulindi. Jaribu kwa jina ambalo upande wa faragha pekee unaweza kujibu, na chukulia jibu la umma kama uvujaji.
resolvectl query intranet.example.internal
traceroute -n 1.1.1.1
Thibitisha mnyororo kwa amri hizo mbili pamoja na vichaguzi vilivyojadiliwa kutoka orodha hapo juu. Ikiwa traceroute inaonyesha kipanga njia cha ndani kama hop ya kwanza, trafiki haitumii tuneli, vyovyote vichaguzi vinavyodai. Ufikiaji wa intaneti umekamilika tu wakati trafiki iliyochaguliwa inakubaliwa, inaelekezwa na kurudishwa kupitia lango lililobuniwa. Kupata 0.0.0.0/0 katika wasifu ni mwanzo wa mnyororo huo, si uthibitisho wake.