Ein Pi, tvö OpenVPN-tilvik: hvað hver eining les
Tveir OpenVPN-púkar á einni Pi lesa ólíkar stillingaskrár og fara út um ólíka króka. Kortleggðu hvert tilvik og prófaðu svo gagnaleiðina sérstaklega.
Teldu OpenVPN-ferlana áður en þú snertir snið. Pi sem tekur við reikandi notendum og hringir líka í þjónustu hjá veitanda keyrir tvo púka, og hver þeirra les stillingaskrá sem er valin af tilviksnafninu sem þú slóst inn. Pökkunarsniðmátin gefa svo hverjum púka sinn vinnukafka, sína keyrslustöðuskrá og sitt tunneltæki. Ef þessari skiptingu er spillt eyðir þú kvöldi í að breyta réttri stillingu í skrá sem keyrandi ferillinn opnar aldrei.
Hvert tilviksnafn velur sína skrá
Í einingaskránum sem fylgja OpenVPN 2.6 bera ræsingarviðföngin tilviksstaðgengil sem er fylltur úr textanum á eftir @ tákni. Þjónsniðmátið keyrir úr stillingakafka þjónsins og leysir viðfang sitt gegn %i.conf þar, en biðlarasniðmátið gerir hið sama úr biðlarakafkanum. Þannig les [email protected] admits.conf í þjónskafkanum og [email protected] les uplink.conf í biðlarakafkanum, og ekkert þessara nafna hefur nokkra merkingu í hinum kafkanum.
Staðfestu varpinu á vélinni í stað þess að gera ráð fyrir að pakkinn hafi haldið sjálfgefnum stillingum uppstreymis. Dreifing má setja inn drop-in sem skiptir út vinnukafka eða stilliviðfanginu alfarið.
systemctl cat [email protected]
systemctl cat [email protected]Lestu WorkingDirectory línuna og stilliviðfangið í þeirri úttaksskrá, því virka einingin er það eina sem ræður því hvaða skrá hleðst. Drop-in sem bætir --config við ExecStart vinnur gegn sniðmátinu jafnvel þótt slóð sniðmátsins líti rétt út. Biddu um slóðir brotanna og drop-in skránna þegar þú vilt vita hvort staðbundin yfirskrift eigi sér stað. Ef bæði hlutverkin leysast í eina skrá ertu með einn feril sem reynir að vera þjónn og biðlari í einu, og síðari valkosturinn í þeirri skrá vinnur hljóðlaust.
Staðbundin flutningur og framvarpað gagn lenda í ólíkum krókum
Dulkóðuð tenging þjónsins við hvern reikandi notanda er búin til á Pi-inu sjálfu, svo ytri svörin fara út um staðbundna úttakskrókinn. Tenging biðlarans við jafningja sinn uppstreymis er líka staðbundið búið úttak, jafnvel þótt hún nái til fjarlægs nets. Framvarpað gagn er þriðji flokkurinn, og kjarninn passar það aðeins eftir að hann hefur þegar valið útleiðartæki fyrir pakkann.
| 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 |
Regla sem passar við útleiðarviðmót inni í framvörpuskeiði getur heimilað eða sleppt pakka sem beiningar hafa þegar úthlutað til þess viðmóts, en hún velur aldrei viðmótið. Þegar ein vél lýkur einni tunnu og byrjar aðra eru stefnan sem sendir gagn notenda inn í uppstreymistunnuna og stefnan sem verndar dulkóðuð svör Pi-sins tvær aðskildar ákvarðanir. Þær lenda fyrir tilviljun á sama eðlislegu netkorti, og þess vegna er þeim ruglað saman.
Sú aðgreining skýrir algengan hálfbrest. Notendur tengjast, handabandið klárast, og umferð þeirra fer samt út um ranga leið, því handabandið var staðbundið en gagnið framvarpað og aðeins annað tveggja var prófað.
Innflutt beining getur gleypt svör til notenda þinna
Öryggisstilling biðlarasniðsins ræður því hvað uppstreymið má ýta inn í beiningatöflu Pi-sins, og breið áframsending er valkosturinn sem breytir vinnandi tvíhlutverksvél í bilaða vél. Ef ýtt beiningin nær yfir opinber heimilisföng reikandi notenda geta svör sem þjónninn býr til til þeirra fylgt nýju beiningunni inn í uppstreymistunnuna í stað þess að fara út um undirlagið. Fólk staðfestir oft að tunnan til veitandans virki enn og stöðvar þar, því sú umferð er eigin flutningur tunnunnar og heldur áfram að streyma meðan allt annað hegðar sér rangt.
Stefna byggð á uppruna eða marki er leiðin til að halda straumunum tveimur aðskildum. Linux mark valkostur OpenVPN merkir eigin dulkóðaða pakka púks með eldveggsmarki, sem beiningaregla getur þá sent í sérstaka töflu. Upprunaaðsetur duga alveg jafn vel þegar ytri svör þjónsins fara alltaf út frá einu undirlagsaðsetri. Hvort tveggja þarf gildar beiningar í töflunni sem það velur og undantekningu fyrir endapunkt veitandans, annars kemur tunnan sjálf ekki upp.
Spurðu kjarnann um leiðina sem svar myndi raunverulega fara áður en þú skrifar nokkra reglu. Aðsetrin hér að neðan eru staðgenglar fyrir undirlagsaðsetur Pi og opinbert aðsetur eins reikandi notanda.
ip rule show
ip route get 198.51.100.7 from 192.0.2.10Staðfestu skiptinguna og stöðvaðu svo eitt hlutverk í einu
Prófaðu þrjá strauma hver fyrir sig, því handaband sem gengur sannar ekkert um hina tvo. Taktu við nýrri innkominni tengingu, sendu eitt leyft forrit út um uppstreymisúttakið og staðfestu að báðir ferlarnir nái enn jafningjum sínum.
Stöðvaðu svo biðlarahlutverkið og fylgstu með því sem þjónshlutverkið heldur. Þetta er ódýrasta leiðin til að finna beiningar- eða markreglu sem var ætluð einu tilviki en var beitt á bæði.
systemctl stop [email protected]
systemctl status [email protected] --no-pager
ss -lunp | grep openvpn
journalctl -u [email protected] -n 20 --no-pagerÞað sem þú vilt sjá er hlustandinn enn bundinn, tunneltækið enn til staðar og annálin laus við ný villuskilaboð meðan biðlarahlutverkið er niðri. Ef stöðvun biðlarans skerðir líka svör þjónsins til notenda sem fyrir eru deila hlutverkin tveir einhverju sem hefði átt að einskorða við annað þeirra. Skráðu hvaða tilvik, hvaða stillingaskrá og hvaða straumseiganda hver breyting snerti, því næsti maður sem kembir þessa vél mun annars endurtaka sömu uppgötvun frá núlli.