Ierobežot OpenVPN pieteikšanos vienai grupai ar PAM politiku
Atsevišķs PAM pakalpojums var ielaist tikai VPN grupas dalībniekus, neaiztiekot sistēmas pieteikšanās noteikumus. Novirziet auth-pam spraudni uz to un pārbaudiet rezultātus.
Ļaujiet katram kontam pieteikties kā parasti, bet ļaujiet VPN izmantot tikai vienai grupai. PAM var izteikt šo atšķirību bez otras paroļu krātuves, un OpenVPN spraudni var novirzīt uz pakalpojumu, kas satur tikai jūsu paredzētās pārbaudes. Triks ir izveidot šo pakalpojumu, nejauši nepārmantojot sistēmas steku.
Šeit aplūkotā gaita sākas ar spraudņa pakalpojuma nosaukumu, veido politiku un pēc tam pārbauda trīs svarīgos iznākumus: dalībnieku, ārpusnieku ar derīgu paroli un sliktus pieteikšanās datus.
Kāpēc atsevišķs PAM pakalpojums
auth-pam spraudnis kā argumentu ņem pakalpojuma nosaukumu. Šis nosaukums izvēlas failu zem /etc/pam.d, un šī faila steks tiek izpildīts VPN pieteikšanās laikā. Ja nodosit to pašu nosaukumu, ko izmanto sistēmas pieteikšanās, jūs pārmantosit katru šī steka lēmumu, tostarp tos, kas vēlāk pievienoti nesaistītu iemeslu dēļ.
Tā vietā izveidojiet atsevišķu pakalpojumu. Sāciet ar strādājošu steku, kas jau autentificē pret paredzēto backend, piemēram, vietēju paroļu failu, SSSD vai direktoriju pakalpojumu, un pēc tam pievienojiet piemērotības noteikumu. Divu rindu kopēšana tukšā failā ir izplatīta kļūda: paroles derīguma termiņš, konta bloķēšana un citas pārbaudes var atrasties stekā, kuru nenokopējāt.
Pakalpojuma atdalīšana arī ierobežo kaitējuma apjomu. Tikai VPN paredzēts noteikums koplietotā stekā var liegt SSH vai konsoles piekļuvi visiem, kas piekļuves izmaiņas pārvērš pārtraukumā.
Grupas noteikuma rakstīšana
Piemērotības pārbaude pieder konta fāzei pēc tam, kad pieteikšanās dati ir pārbaudīti. Noteikums, piemēram, account required pam_succeed_if.so user ingroup vpnusers, ļauj apstrādei turpināties tikai tad, ja autentificētais lietotājs ir šīs grupas dalībnieks.
Šī rinda ir fragments, nevis pilnīgs pakalpojums. Iekļaujiet to tur, kur nonāk katrs pieņemtais ceļš, un pārbaudiet vadības karodziņus ap to. sufficient vai lēciena vadība agrāk stekā var pārtraukt apstrādi pirms jūsu noteikuma izpildes, kas ierobežojumu pārvērš ieteikumā.
Nepievienojiet use_uid ieraduma dēļ. Bez tā modulis novērtē autentificējamo lietotāju; ar to modulis novērtē kontu, ar kuru darbojas OpenVPN process, kas parasti ir root vai pakalpojuma konts un tāpēc nav persona, kas pieteicas.
Grupas dalība nāk no sistēmas identitātes izšķiršanas, nevis no jums pazīstama vārda. Direktorija lietotājiem pārliecinieties, ka tas pats backend atbild uz šī lietotāja grupas vaicājumiem, jo vietējā grupa ar pazīstamu nosaukumu ir cits objekts nekā tāda paša nosaukuma direktorija grupa.
Secības un identitātes slazdi
Ievietojiet grupas noteikumu pēc autentifikācijas steka un pēc katras pārbaudes, kurai joprojām jāpaliek spēkā, bet pirms saglabātajām konta pārbaudēm vai līdzās tām. PAM novērtē moduļus faila secībā, un katras rindas vadības vērtība nosaka, vai kļūme ir galīga.
Uzmanieties no dubultiem stekiem. Bieži sastopams modelis ir include, kas jau satur konta noteikumu, kam seko jūsu paša grupas noteikums, kas rada divus lēmumus tur, kur gaidījāt vienu. Lasiet iekļauto failu, ne tikai to, kuru rediģējāt. Ātrs veids, kā redzēt faktisko secību, ir lasīt failu no augšas uz leju un pierakstīt katru vadības vērtību.
Saglabājiet citas uzņemšanas prasības neskartas. Veiksmīga parole neaizstāj sertifikāta pārbaudes, otru faktoru vai autorizāciju pēc savienojuma, un šī politika neaizstāj nevienu no tām. Tā tikai izlemj, vai konts ir piemērots, lai to izskatītu VPN piekļuvei.
Dalībnieku, ārpusnieku un nepareizu paroļu pārbaude
Pārbaudiet trīs gadījumus, pirms uzskatāt politiku pabeigtu. Dalībnieks veiksmīgi savienojas. Derīgs konts ārpus grupas autentificē savu paroli, bet tam tiek liegta VPN piekļuve. Nepareiza parole jebkuram kontam tiek noraidīta autentifikācijas posmā, nevis ar grupas noteikumu.
Aplūkojiet klientam redzamo kļūdu un servera žurnālu kopā, jo abas kļūmes savienojošajai personai var šķist līdzīgas. Atšķirība ir svarīga atbalstam: ārpusniekam ar pareizu paroli nepieciešama grupas maiņa, savukārt nepareiza parole prasa pieteikšanās datu atiestatīšanu.
Rediģējot PAM, turiet atvērtu otru sesiju un pēc izmaiņām pārbaudiet arī parasto SSH pieteikšanos. Atsevišķa pakalpojuma jēga ir tā, ka sistēmas pieteikšanās nedrīkst tikt ietekmēta, un vienīgais veids, kā to uzzināt, ir pārbaudīt.
Ja kaut kas salūzt, atjaunojiet iepriekšējo pakalpojuma failu no kopijas. Vēlamo noteikumu ir viegli formulēt: dalība padara kontu piemērotu VPN piekļuvei, un visas pārējās obligātās pārbaudes joprojām ir spēkā.