Uzvar pirmā sesija: OpenVPN pieteikšanās ierobežošana pirms izstumšanas
Vēlākas pieteikšanās noraidīšana nav tas pats, kas vecās aizstāšana. Lēmums jāpieņem pirms tā paša nosaukuma izstumšanas, un slota pārbaudei jābūt atomiskai.
Politika, kas pieļauj vienu sesiju vienā kontā, šķiet izlemta, līdz pienāk otrā pieteikšanās. Iespējami divi iznākumi: jaunpienācējs aizstāj esošo sesiju vai esošā sesija patur slotu un jaunpienācējam atsaka. Tikai otrais ir politika, kurā uzvar pirmā sesija. Klienta opcija, pie kuras vēršas lielākā daļa, iespējo vienlaicību un tāpēc to nerada.
Aiz viena iestatījuma slēpjas divi līgumi
Kad vienlaicība ir izslēgta, otrs savienojums ar to pašu sertifikāta nosaukumu var izstumt jau darbojošos sesiju. Vienlaicības ieslēgšana pieļauj vairākas sesijas vienlaikus, kas ir pretējs ierobežojumam. Neviens no abiem stāvokļiem nav atteikuma politika, tāpēc lēmums jāpieņem pavisam citur.
Pierakstiet līgumu pirms kaut kā ieviešanas: kam atsaka, kādi pierādījumi identificē esošo sesiju un kas notiek, kad sesija mirst bez tīras atvienošanās. Politiku, kuru neviens tā nav formulējis, vēlāk nevar pārbaudīt.
Izstumšana notiek pirms jūsu savienojuma āķa
2.6 servera koda ceļā jauna klienta agrīnā sagatavošana noņem esošos tā paša nosaukuma eksemplārus, kad vienlaicība ir izslēgta. Šī noņemšana notiek pirms savienojuma apstrādātāju ķēdes palaišanas. Tāpēc skripts, kas pamana dublikātu un atgriež kļūdu, atsaka jaunpienācējam pēc tam, kad esošā sesija jau ir izmesta - tieši tas iznākums, ko politika gribēja novērst. Upstream ieviešanas atzvanu secība ir vienīgā uzticamā atbilde jūsu būvējumam.
| Stage | Who can still refuse | Effect on the incumbent |
|---|---|---|
| Certificate check | Server trust configuration | None |
| Authentication decision | The authentication controller | None, because establishment has not run |
| Connect handler | A profile script | Already evicted in the same-name case |
| Post-establishment | Status tooling, monitoring | Both sessions already exist or one is gone |
Arī statusa faila aptauja nav vārti. Divi vienlaikus pienākuši mēģinājumi var abi redzēt tukšu slotu, pirms kāds to apstiprina, un abi turpina.
Pārvietojiet lēmumu uz autentifikāciju
Pārvaldības saskarne var pārņemt autentifikācijas lēmumu pēc sertifikāta pārbaudes. Šajā izkārtojumā kontrolieris nav novērotājs: tas saņem katru pieslēdzošo klienta eksemplāru un atbild, vai šim eksemplāram drīkst turpināt. Tā kā atbilde pienāk pirms izveides, atteikums atstāj esošo sesiju neskartu. Tas pats kanāls ziņo par atvienošanām, un tā kontrolieris uzzina, ka slots ir likumīgi atbrīvots.
Katram jaunam eksemplāram jāiziet šiem vārtiem, ieskaitot atkārtotus savienojumus un jebkuru ceļu, kas atkārtoti autentificējas bez uzvednes. Vārti, kurus daži eksemplāri nekad nesasniedz, neko neaizsargā, un šī izlaidība paliek neredzama, līdz kāds pamēģina apiet.
Žetoni var paiet garām vārtiem
Kad žetons ir izsniegts, serveris var to validēt iekšēji un izlaist ārējo autentifikāciju šim savienojumam. Pārvaldības izsaukums nekad nenotiek, tāpēc tikai tur ieviestā slota pārbaude nekad neredz jauno eksemplāru. Šāda uzvedība ir ērtība lietotājiem un caurums vienlaicības politikai. Lieciet žetona autentificētiem savienojumiem iziet līdzvērtīgu pilnvarotu pārbaudi vai izslēdziet žetona ceļu, ja politika pieprasa lēmumu par katru savienojumu.
Neatlīdziniet to, bez nosacījumiem pieņemot katru žetonu. Beidzies vai nederīgs žetons joprojām nedrīkst izdoties, un tam jācieš neveiksme tajā pašā lēmuma punktā kā visam pārējam.
Piesaistiet rezervāciju eksemplāram, nevis adresei
Adrese ir vāja identitāte: atkārtots savienojums no tā paša portatīvā datora var nākt no citas adreses, un nokopēti pieteikšanās dati var nākt no tās pašas. Piesaistiet rezervāciju klienta eksemplāram, ko piešķir serveris, lai jau pieņemtā eksemplāra atkārtota autentifikācija tiktu atzīta kā īpašnieks. Jaunam eksemplāra identifikatoram jāiegūst savs slots ar lēmumu pirmais uzvar, pat ja tas uzrāda to pašu žetonu.
Atbrīvojiet tikai neveiksmīgā mēģinājuma rezervāciju. Novēlota atvienošanās notikuma no vecāka mēģinājuma dēļ nedrīkst notīrīt jaunāka īpašnieka slotu, tāpēc atbrīvošana nosauc eksemplāru, nevis kontu. Pēc kontroliera restartēšanas saskaņojiet dzīvās sesijas, pirms kādu pieņemat, un piemērojiet to pašu noteikumu katrā vārtejā, kas apkalpo kontu.
Atsevišķi izlemiet, kā tiek atgūts patiešām novecojis slots. Administratoram vajadzīgs dokumentēts veids, kā to notīrīt, un šim ceļam nevajadzētu būt pieejamam lietotājam, kurš vienkārši noklikšķina uz atkārtoti savienot.
Pārbaudiet pārus, kas ir svarīgi: divas gandrīz vienlaicīgas pieteikšanās, atkārtots savienojums pēc tīras atvienošanās, esošās sesijas atkārtota autentifikācija, noraidīts jaunpienācējs un kontroliera restarts. Katrā gadījumā esošajai sesijai jāpaliek lietojamai, un jaunpienācējam jāatsaka bez blakus zaudējumiem citiem kontiem.