Üks Pi, kaks OpenVPN-i eksemplari: mida iga üksus loeb
Kaks OpenVPN-i deemonit ühel Pi-l loevad erinevaid konfiguratsioonifaile ja väljuvad erinevate konksude kaudu. Kaardistage iga eksemplar ja seejärel testige kasuliku koormuse teekonda eraldi.
Loendage OpenVPN-protsessid enne, kui puudutate profiili. Pi, mis võtab vastu rändavaid kasutajaid ja valib ka ülemvoolu teenuse, käitab kahte deemonit ning igaüks neist loeb konfiguratsioonifaili, mille valib teie sisestatud eksemplari nimi. Seejärel annavad pakendatud mallid igale deemonile oma töökataloogi, oma käitusaegse olekufaili ja oma tunneliseadme. Kui selle jaotuse vale teete, veedate õhtu, muutes õiget sätet failis, mida töötav protsess kunagi ei ava.
Iga eksemplari nimi valib oma faili
OpenVPN-iga 2.6 kaasas olevates üksusefailides kannavad käivitusargumendid eksemplari kohatäitjat, mis täidetakse märgi @ järel oleva tekstiga. Serveri mall töötab serveri konfiguratsioonikataloogist ja lahendab oma argumendi seal %i.conf vastu, samal ajal kui kliendi mall teeb sama kliendi kataloogist. Nii et [email protected] loeb admits.conf serveri kataloogis ja [email protected] loeb uplink.conf kliendi kataloogis, ning kummalgi nimel pole teises kataloogis mingit tähendust.
Kinnitage vastendus masinal, selle asemel et eeldada, et pakett jättis ülemvoolu vaikeväärtused alles. Distributsiooni täiendus võib töökataloogi või konfiguratsiooniargumendi otse asendada.
systemctl cat [email protected]
systemctl cat [email protected]Lugege rida WorkingDirectory ja konfiguratsiooniargument sellest väljundist, sest lubatud üksus on ainus, mis otsustab, milline fail laaditakse. Täiendus, mis lisab --config reale ExecStart, võidab malli ka siis, kui malli tee näib õige. Küsige fragmendi ja täienduse teid, kui tahate teada, kas kohalik alistamine on mängus. Kui mõlemad rollid lahenevad üheks failiks, on teil üks protsess, mis püüab olla nii server kui ka klient, ja hilisem valik selles failis võidab vaikselt.
Kohalik transport ja edastatud koorem tabavad erinevaid konksusid
Serveri krüptitud ühendus iga rändava kasutajaga luuakse Pi enda peal, seega väljuvad selle välised vastused kohaliku väljundkonksu kaudu. Kliendi ühendus oma ülemvoolu partneriga on samuti kohapeal loodud väljund, kuigi see jõuab kaugvõrku. Edastatud koorem on kolmas kategooria ja kernel sobitab selle alles pärast seda, kui on paketile juba väljundseadme valinud.
| 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 |
Reegel, mis vastab edastusahela sees väljuvale liidesele, võib lubada või kõrvale jätta paketi, mille marsruutimine on sellele liidesele juba määranud, kuid see ei vali liidest kunagi. Kui üks host lõpetab ühe tunneli ja algatab teise, on poliitika, mis saadab kasutaja koormuse ülemvoolu tunnelisse, ja poliitika, mis kaitseb Pi enda krüptitud vastuseid, eraldi otsused. Nad maanduvad juhuslikult samale füüsilisele võrgukaardile, mistõttu need segi aetakse.
See erinevus seletab tavalist poolikluhtumist. Kasutajad ühenduvad, käepigistus lõpeb ja nende liiklus väljub ikkagi vale teed, sest käepigistus oli kohalik ja koorem edastatud ning testiti ainult ühte kahest.
Imporditud marsruut võib teie kasutajatele mõeldud vastused alla neelata
Kliendiprofiili turbesäte otsustab, mida ülemvool tohib Pi marsruutimistabelisse lükata, ja lai ümbersuunamine on valik, mis muudab töötava kahe rolliga hosti katkiseks. Kui lükatud marsruut katab rändavate kasutajate avalikud aadressid, võivad serveri neile loodud vastused järgida uut marsruuti ülemvoolu tunnelisse, selle asemel et aluskihist väljuda. Inimesed kinnitavad sageli, et tunnel teenusepakkuja juurde töötab endiselt, ja lõpetavad seal, sest see liiklus on tunneli enda transport ja see jätkab voolamist, samal ajal kui kõik muu käitub valesti.
Allika- või märgisepõhine poliitika on viis, kuidas kaks voogu lahus hoitakse. OpenVPN-i Linuxi märgivalik märgistab deemonile kuuluvad krüptitud paketid tulemüüri märgisega, mille marsruutimisreegel saab seejärel saata sihtotstarbelisse tabelisse. Allikaaadressid toimivad sama hästi, kui serveri välised vastused väljuvad alati ühest aluskihi aadressist. Mõlemad lähenemised vajavad valitud tabelis kehtivaid marsruute ja erandit teenusepakkuja lõpp-punktile, muidu lakkab tunnel ise üles tulemast.
Küsige kernelilt, millise tee vastus tegelikult võtaks, enne kui kirjutate ükskõik millise reegli. Allpool olevad aadressid on kohatäitjad Pi aluskihi aadressi ja ühe rändava kasutaja avaliku aadressi jaoks.
ip rule show
ip route get 198.51.100.7 from 192.0.2.10Kontrollige jaotust ja peatage seejärel üks roll korraga
Testige kolme voogu eraldi, sest töötav käepigistus ei tõesta teiste kahe kohta midagi. Võtke vastu uus sissetulev ühendus, saatke üks lubatud rakendus ülemvoolu väljundi kaudu ja kinnitage, et mõlemad protsessid jõuavad endiselt oma partneriteni.
Seejärel peatage kliendiroll ja vaadake, mida serveriroll alles hoiab. See on odavaim viis leida marsruudi- või märgisereegel, mis oli mõeldud ühele eksemplarile ja rakendati mõlemale.
systemctl stop [email protected]
systemctl status [email protected] --no-pager
ss -lunp | grep openvpn
journalctl -u [email protected] -n 20 --no-pagerMida te näha tahate, on endiselt seotud kuulaja, endiselt olemasolev tunneliseade ja uutest vigadest vaba logi, samal ajal kui kliendiroll on maas. Kui kliendi peatamine lõikab ära ka serveri vastused olemasolevatele kasutajatele, jagavad kaks rolli midagi, mis oleks pidanud piirduma ühega neist. Kirjutage üles, millist eksemplari, millist konfiguratsioonifaili ja millist vookandjat iga muudatus puudutas, sest järgmine inimene, kes seda hosti silub, kordab muidu sama avastust nullist.