Ограничете ги најавите на OpenVPN на една група со PAM политика
Посебна PAM услуга може да прими само членови на VPN група без да ги допре системските правила за најава. Насочете го додатокот auth-pam кон неа и тестирајте ги резултатите.
Дозволете секоја сметка нормално да се најавува, но дозволете само една група да го користи 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, и секоја друга потребна проверка и понатаму важи.