Hvers vegna OpenVPN-leið tapar gegn strongSwan XFRM-stefnu
Ákveðin OpenVPN-leið vísar ekki XFRM-stefnu til hliðar: lestu leiðina og veljendur stefnunnar, þrengdu síðan, gerðu undantekningu eða farðu yfir í XFRM-viðmót.
Pakkar geta fylgt OpenVPN-leið og samt orðið fyrir barðinu á IPsec-stefnu, og sú samsetning lítur út eins og villu í leiðavali frá hverju sjónarhorni nema hinu rétta. Linux leysir leið og leitar síðan í sérstökum gagnagrunni öryggisstefna, svo nákvæmari áfangaleið ryður ekki burt samsvarandi XFRM-stefnu. Sýnilega einkennið er umferð sem fer frá hýsilnum og kemst aldrei, á meðan báðir göngin tilkynna sig heilbrigð. Þrír valkostir leysa það, og hverju þú velur fer eftir því hvorri af tveimur leiðunum er ætlað að bera þetta forskeyti.
Tvær ákvarðanir, ekki ein
Leiðarval svarar þröngri spurningu: hvaða næsta stökk og upprunatöluheimild eigi að bera þennan pakka. Gagnagrunnur öryggisstefna svarar annarri: þarf þessi pakki IPsec-vörn, og undir hvaða veljendum. Báðir keyra fyrir sama pakka, og að uppfylla þá fyrri segir ekkert um þá seinni. Þess vegna getur breyting á mælikvarða eða viðbót kyrrstæðrar leiðar látið einkennin ósnortin.
Breitt IPsec-veljandi er venjulega orsökin. Stefna sem verndar 172.16.0.0/12 nær einnig yfir 172.20.8.0/24, sem stjórnandi gæti ætlað að ná í gegnum OpenVPN-göngin í staðinn. Ætlunin er aðeins til í leiðatöflunni, og stefnugagnagrunnurinn vissi aldrei um hana.
Líttu á þetta sem árekstur milli tveggja stilltra varnarleiða frekar en keppni milli tveggja mælikvarða. Lagfæringin tilheyrir þeim hluta sem var stilltur með rangt umfang.
Lestu leiðina sem kjarninn velur í raun
Byrjaðu á uppflettingunni sem kjarninn gerir, þar á meðal upprunatöluheimildinni og hverri stefnureglu sem gæti beint henni í aðra töflu. Leið í aðaltöflunni er kannski aldrei skoðuð ef fyrri regla velur aðra töflu, og samsvörun lengsta forskeytis gildir aðeins innan þeirrar töflu sem regla velur.
ip rule show
ip route show table all
ip route get 172.20.8.20 from 10.44.7.15
Síðasta skipunin er sú sem skiptir máli, því hún prentar valda leiðina ásamt upprunatöluheimildinni sem kjarninn myndi nota. Berðu þessa útkomu saman við veljandann sem IPsec-stefnan passar við. Þegar leiðin bendir á OpenVPN-viðmótið og stefnan passar enn við sama parið hefur þú endurgert áreksturinn án ágiskana.
Haltu afritum lausum við ótengdar tölur áður en þau ná í miða. Leiðatafla frá framleiðsluhýsli ber innra netskipulag, og aðeins línurnar sem svara spurningunni er vert að líma.
Lestu stefnuna sem gildir líka
Stefnulistinn sýnir stefnu, veljendur og sniðmátið sem ræður því hvað verður um samsvarandi pakka. Lestu útleiðina fyrst, síðan innleiðina fyrir afturumferðina, því einstefnuundantekning framleiðir tengingu sem byrjar og klárast aldrei.
ip -s xfrm policy
swanctl --list-sas
Berðu veljendurna í listanum saman við forskeytin sem tengingin samdi um. Slökkt á leiðauppsetningu strongSwan fjarlægir ekki þessar stefnur, og breyting á mælikvarða breytir ekki hvaða uppruna- og áfangapar stefna verndar. Þessar tvær gervilagfæringar er vert að útiloka snemma því fólk prófar þær fyrst.
Ef listinn inniheldur enga stefnu fyrir forskeytið sem þú bjóst við er vandamálið annars staðar og leiðataflan segir líklega satt. Ef hann inniheldur breiðari stefnu sem nær yfir forskeytið hefur þú fundið handsömunina.
Þrír valkostir þegar báðar leiðir eru lögmætar
Að þrengja IPsec-veljandann er hreinasti valkosturinn þegar breiða forskeytið var þægindi en ekki krafa. Að minnka veljanda fjarlægrar umferðar í þau undirnet sem eiga sannarlega heima bak við IPsec fjarlægir áreksturinn fyrir hvern hýsil í einu, og það kostar endursamning lykla frekar en nýjan hluta.
Gegnumstreymisundantekning er skurðaðgerðarvalkosturinn þegar breiði veljandinn verður að vera. strongSwan styður aðskilda tengingu þar sem barn hennar notar pass-stillingu, sem segir kjarnanum að samsvarandi umferð megi ekki fara í gegnum IPsec. Loopback-fjarlæga heimilisfangið kemur í veg fyrir að þessi tenging sé valin fyrir komandi jafningja, og veljendurnir verða að lýsa raunverulega heimilaða parinu frekar en öllu.
connections {
openvpn-exception {
remote_addrs = 127.0.0.1
children {
openvpn-exception {
local_ts = 10.44.7.0/24
remote_ts = 172.20.8.0/24
mode = pass
start_action = trap
}
}
}
}
strongSwan stillingardæmin skjalfesta þessa stefnutegund og loopback-jafningjavenjuna. Þriðji valkosturinn er leiðamiðuð hönnun með XFRM-viðmótum, sem bindur stefnu við umferð sem er leiðbeint í gegnum nafngreint viðmót í stað alheimsveljanda. Það er flutningur en ekki fínstilling, og umferðin verður enn að uppfylla samningsbundnu veljendurna.
| Option | Use it when | Cost |
|---|---|---|
| Narrow the selector | The broad prefix was convenience | A rekey and a policy review |
| Passthrough child | The broad selector must stay | One exception per intended pair |
| XFRM interface | Policy should follow routing | A design migration |
Sannaðu undantekninguna án þess að veikja restina
Eftir að breytingin er hlaðin skaltu prófa undantekninguna og venjulegan áfangastað sem verður að vera varinn. Athugaðu báðar stefnur, slepptu síðan OpenVPN-göngunum og staðfestu hvað verður um undanteknu umferðina. Undantekning sem sendir það forskeyti hljóðlaust opinskátt þegar göngin eru niðri er stefnuákvörðun sem þú ættir að taka viljandi, ekki uppgötva meðan á atviki stendur.
Skráðu hvaða forskeyti notar hvaða leið og hvers vegna. Annars mun næsti verkfræðingur sem sér breiðan veljanda opna sömu rannsókn aftur, og svarið verður í commit-skilaboðum sem enginn les.