Дозволите сваком налогу да се нормално пријављује, али дозволите само једној групи да користи VPN. PAM може да изрази ту разлику без другог складишта лозинки, а OpenVPN додатак може да се усмери на услугу која садржи само провере које намеравате. Трик је изградити ту услугу без случајног наслеђивања системског стека.

Овај обилазак почиње од имена услуге додатка, гради политику и затим тестира три резултата која су важна: члана, странца са исправном лозинком и лоше податке за пријаву.

Зашто посебна PAM услуга

auth-pam додатак узима име услуге као свој аргумент. То име бира датотеку под /etc/pam.d, и стек у тој датотеци се извршава током пријаве на VPN. Ако пренесете исто име које користи системска пријава, наследићете сваку одлуку у том стеку, укључујући оне додате касније из неповезаних разлога.

Уместо тога направите посебну услугу. Почните од радног стека који већ аутентификује према предвиђеном backend-у, као што је локална датотека лозинки, SSSD или услуга директоријума, а затим додајте правило подобности. Копирање два реда у празну датотеку је честа грешка: истек лозинке, закључавање налога и друге провере могу бити у стеку који нисте копирали.

Одвајање услуге такође ограничава обим штете. Правило само за VPN у дељеном стеку може свима да одбије приступ преко SSH или конзоле, што промену приступа претвара у прекид.

Писање правила за групу

Провера подобности припада фази налога, након што су подаци за пријаву проверени. Правило као account required pam_succeed_if.so user ingroup vpnusers дозвољава наставак обраде само када је аутентификовани корисник члан те групе.

Тај ред је фрагмент, не потпуна услуга. Уградите га тамо где стиже свака прихваћена путања и проверите контролне заставице око њега. Контрола sufficient или скок раније у стеку може да заврши обраду пре него што се ваше правило изврши, што ограничење претвара у предлог.

Не додајте use_uid из навике. Без њега модул процењује корисника који се аутентификује; са њим модул процењује налог под којим ради процес OpenVPN, а то је обично root или сервисни налог и зато није особа која се пријављује.

Чланство у групи долази из разрешавања идентитета система, не из имена које препознајете. За кориснике из директоријума потврдите да исти backend одговара на групне упите за тог корисника, јер је локална група са познатим именом други објекат од групе у директоријуму са истим именом.

Замке реда и идентитета

Поставите правило за групу после стека за аутентификацију и после сваке провере која и даље мора да важи, али пре или поред провера налога које задржавате. PAM процењује модуле по редоследу датотеке, а контролна вредност у сваком реду одлучује да ли је неуспех коначан.

Пазите на дуплиране стекове. Чест образац је include који већ садржи правило налога, а затим ваше сопствено правило за групу, што даје две одлуке тамо где сте очекивали једну. Прочитајте укључену датотеку, не само ону коју сте уредили. Брз начин да видите ефективни ред је да читате датотеку одозго надоле и забележите сваку контролну вредност.

Задржите остале захтеве за пријем нетакнутим. Успешна лозинка не замењује провере сертификата, други фактор или ауторизацију после повезивања, и ова политика није замена ни за једну од њих. Она само одлучује да ли је налог подобан да буде разматран за приступ VPN-у.

Тестирање чланова, странаца и погрешних лозинки

Тестирајте три случаја пре него што политику сматрате завршеном. Члан се успешно повезује. Важећи налог ван групе аутентификује своју лозинку, али му се одбија приступ VPN-у. Погрешна лозинка за било који налог се одбија у фази аутентификације, а не правилом за групу.

Гледајте грешку видљиву клијенту и дневник сервера заједно, јер оба неуспеха могу да изгледају слично особи која се повезује. Разлика је важна за подршку: странцу са исправном лозинком потребна је промена групе, док погрешна лозинка захтева ресетовање података за пријаву.

Држите другу сесију отворену док уређујете PAM и проверите и обичну SSH пријаву после промене. Смисао посебне услуге је да системска пријава треба да остане непромењена, а једини начин да то знате је да је тестирате.

Ако се нешто поквари, вратите претходну датотеку услуге из копије. Правило које желите је једноставно изрећи: чланство чини налог подобним за приступ VPN-у, и свака друга обавезна провера и даље важи.

Повезани чланци