OpenVPN-те LDAP аутентификациясы жұмыс істейді, бірақ топ тексерісі сәтсіз аяқталады: қайдан қарау керек
Аутентификация өтуі мүмкін, ал топ тексерісі барлығын қабылдамайды. Authorization блогын, мүшелік атрибутын және каталогтың соңғы нүктесін кезекпен қарап шығыңыз.
Тіркелу деректері өтеді, туннель көтеріле бастайды, содан кейін сессия құпиясөз туралы емес, топ туралы хабарламамен сәтсіз аяқталады. Бұл үйлесім ақауды LDAP плагині жұмысының екінші жартысына орналастырады: байланыстыру мен құпиясөзді тексеру сәтті болды, ал одан кейінгі мүшелік шешімі болмады. Екі жарты да бір конфигурация блогынан оқиды, сол себепті бір жердегі түзету екіншісін тиместен қалдыруы мүмкін. Қадамды атайтын журнал жолынан бастаңыз, кездейсоқ сынап жатқан тіркелгіден емес.
Бас тартуды авторизация жауабы ретінде қабылдаңыз
Плагин қызметтік байланыстыруды орындайды, тіркелгіні іздейді, берілген құпиясөзді тексереді, содан кейін сол тіркелгі рұқсат етілген топқа жата ма деп сұрайды. Бұл төрт бөлек операция және тек соңғысы топтар туралы. Сондықтан сәтті байланыстырудан кейін келген бас тарту құпиясөз туралы ештеңе айтпайды, клиент жалпы аутентификация қатесін көрсетсе де. Конфигурацияны өзгерту алдында плагиннің журнал деңгейін көтеру шығыста осы төртеуін ажыратады.
Топты бағалаудың өзін іздеңіз. Топ сұрауы мүлдем пайда болмаса, авторизация блогына жетілмейді, бұл әдетте директива оған ие блоктан тыс тұрғанын немесе міндетті параметр жетіспейтінін білдіреді. Сұрау пайда болып, ештеңе қайтармаса, соңғы нүкте немесе сүзгі сіз ойлағаннан басқа сұраққа жауап береді.
Мүшелік сүзгіде ме, әлде топ блогында ма — шешіңіз
Қолдау көрсетілетін екі пішін бар және оларды араластыру — жұмыс істеп тұрған конфигурацияның жұмысын тоқтату жолы. Біріншісі пайдаланушы нысанындағы атрибутты сұрап, мүшелікті пайдаланушы іздеуіне итереді; екіншісі пайдаланушы іздеуін сол күйінде қалдырып, плагинге кейін топ нысанын іздетеді. Әр орналастыру үшін біреуін таңдап, қайсысын таңдағаныңызды жазыңыз.
<Authorization>
BaseDN "OU=People,DC=example,DC=org"
SearchFilter "(&(sAMAccountName=%u)(memberOf=CN=VPN Access,OU=Groups,DC=example,DC=org))"
RequireGroup false
</Authorization>Бұл пішінде бәрін сүзгі шешеді, сондықтан RequireGroup false болуы керек, әйтпесе плагин сүзгі ешқашан атамаған топ нысанын іздейді. Сүзгідегі атрибут пайдаланушы нысанында болуы және толтырылуы керек, ал топтар кірістірілген кезде бұл кепілденбейді.
Екінші пішін іздеуді қарапайым ұстайды және одан кейін топ іздеуін қосады. Топ нысаны анық аталады және плагин пайдаланушыны каталог ол үшін қайтаратын мүшелермен салыстырады. Пайдаланушы сүзгісінде ештеңе өзгермейді, бұл топты басқа команда басқарған кезде бұл пішінді тексеруді жеңілдетеді.
<Authorization>
BaseDN "OU=People,DC=example,DC=org"
SearchFilter "(sAMAccountName=%u)"
RequireGroup true
Group "CN=VPN Access,OU=Groups,DC=example,DC=org"
</Authorization>Соқыр дақ ортақ: қарапайым мүшелік салыстыруы кірістірілген топтарды ашпайды, сондықтан қатынасы ата-ана тобы арқылы келетін тіркелгі сәтсіз болады, ал консоль мүшелікті әлі де көрсетеді. Active Directory топта member атрибутын ашады, басқа схемалар uniqueMember пайдаланады, ал қате атрибутты нұсқау қате орнына бос нәтиже қайтарады.
Топ нысанын ұстайтын соңғы нүктені таңдаңыз
URL плагиннің қай каталогтан сұрайтынын шешеді, ал 389 портындағы домен контроллері тек өз атау контекстісіне жауап береді. 3268 портындағы ғаламдық каталог бүкіл орманға жауап береді, тек оқу режимінде және ішінара атрибут жиынымен. Тіркелгілер бір доменде, VPN тобы басқасында болса, бір домендік сұрау пайдаланушыны тауып, мүшелікті бәрібір өткізіп жіберуі мүмкін. URL-ді каталог портына жылжыту бас тартуды шешетін жағдай осы, және адамдар тым асыра жалпылайтын жағдай да осы.
Ішінара атрибут жиыны — шек: каталог ұстамайтын атрибут бойынша сүзу мүмкін емес, сондықтан бірдей өзгеріс бір орналастыруды іске қосып, екіншісі ештеңе қайтармауы мүмкін. Блокты қайта жазбас бұрын соңғы нүктенің нақты пайдаланушы мен топ үшін шын мәнінде не қайтаратынын растаңыз. Сілтемелер мен TLS қайтадан бөлек мәселелер, өйткені сілтемені ұстану керек, ал TLS талап ететін соңғы нүктеге сәйкес сенім файлдары қажет.
Тіркелгі күйі мен іздеу ауқымын өз өрістерінде ұстаңыз
Өшіру жалаушасы сүзгіге жатады, топ тексерісіне емес. Active Directory-де бұл userAccountControl-тың екінші биті, ал бұл шартсыз жарамды құпиясөзі бар өшірілген тіркелгі аутентификациядан өтіп, содан кейін топ қадамында сәтсіз болады, бұл авторизация ақауына ұқсайды. Іздеу ауқымы базалық DN-ге жатады, өйткені домен түбірінен бастау баяуырақ және қамтуды көздеген ұйымдық бірліктен тыс нысандарға сәйкес келуі мүмкін.
Байланыстыру тіркелгісінің құқықтарын да тар ұстаңыз. Кең каталог құқықтары қате конфигурацияланған сүзгіні сәтті сұрауға айналдырып, біреу тіркелгіні тексергенге дейін ақауды жасырады. Мүшелікті каталогтың өзінде өзгертіңіз, ешқашан жергілікті ерекшелік тізімінде емес, осылайша кіруді алу үшін тіркелгіні өшіру жеткілікті болады. Егер топты басқа команда басқарса, оған сүзгі жазбас бұрын олар толтыратын атрибут туралы келісіңіз.
Нәтижені үш тіркелгімен дәлелдеңіз
Конфигурацияны үш тұлғаға қарсы іске қосыңыз: рұқсат етілген мүше, топтан тыс жарамды тіркелгі және өшірілген тіркелгі. Егер үшеуі де қабылданбаса, байланыстыру немесе топ сұрауы бұзылған; егер үшеуі де қабылданса, топ шарты мүлдем қолданылмайды. Аралас нәтиже ғана конфигурацияның сізге маңызды жағдайларды ажырататынын дәлелдейді.
Плагинді кінәламас бұрын сол үш жауапты тікелей каталогтан оқыңыз. Бірінші сұрау сүзгі тәуелді топ атрибутын, екіншісі тіркелгіні басқару мәнін көрсетеді. Өз базалық DN, тіркелгі және соңғы нүктеңізбен алмастырыңыз:
ldapsearch -H ldap://dc01.example.org:3268 -x -D "[email protected]" -W -b "DC=example,DC=org" "(sAMAccountName=alice)" memberOf
ldapsearch -H ldap://dc01.example.org:3268 -x -D "[email protected]" -W -b "DC=example,DC=org" "(sAMAccountName=bob)" userAccountControlmemberOf бос қайтатын пайдаланушы — бұл каталог фактісі, плагин ақауы емес, ал өшірілгеннен кейін де аутентификациядан өтетін тіркелгі сүзгіде тіркелгіні басқару шарты жетіспейтінін білдіреді. Алдымен сол дәлелді түзетіңіз, содан кейін үш тіркелгілік тестті қайта іске қосыңыз. Сәтсіз қадамды атаған журнал жолын конфигурация өзгерісінің жанында ұстаңыз, келесі адам іздеуді қайталамай-ақ авторизацияны аутентификациядан ажырата алады.