Серверге пайдаланушы қосылды, құпия сөз дұрыс енгізілді, бірақ қосылым әлі де AUTH_FAILED-пен аяқталады. Әдетте себебін плагин жолы түсіндіреді: плагин жолынан кейінгі сөз — PAM қызметінің атауы, ол қай модуль жиынтығы сұраққа жауап беретінін шешеді. Бұл пайдаланушы аты емес және OpenVPN өзі оқитын құпия сөз файлына нұсқаушы да емес.

Екінші сөз нені таңдайды

Конфигурация жолы плагин жолын және бір аргументті қабылдайды:

plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

Бұл аргумент PAM кітапханасына қызмет атауы ретінде беріледі, сондықтан /etc/pam.d/openvpn ішіндегі стек іске қосылады. Ол жерге login деп жазсаңыз, оның орнына интерактивті кіру саясаты әрекет етеді, ол сіздің дистрибутивіңізде қамтитын модульдерімен бірге.

Орнатылған пакет ұсынатын плагин жолын пайдаланыңыз, басқа хосттан көшірілген жолды емес. Файл атауы мен каталог дистрибутивтер арасында өзгереді, ал қате жол аутентификация кезінде емес, іске қосу кезінде плагинді жүктеу қатесімен аяқталады.

Стек тіркелгілерді шын мәнінде қайдан оқиды

PAM — диспетчер. Қызмет файлы модульдерді ретімен тізіп шығады, ал жауап бере алатын біріншісі нәтижені шешеді. pam_unix шақыратын стек жергілікті тіркелгілерді оқиды; LDAP немесе RADIUS модулін шақыратын стек тіркелгі деректерін мүлдем басқа жерге жібереді.

Қызмет атауы шешетін файлды, ол қосатын барлық нәрсемен бірге оқыңыз:

cat /etc/pam.d/openvpn
grep -H pam_ /etc/pam.d/openvpn /etc/pam.d/common-auth

Егер стек шешімді каталогқа тапсырса, жергілікті тіркелгі қосу ештеңені өзгертпейді. Егер ол жергілікті тіркелгілерді оқыса, каталогта пайдаланушы жасау да ештеңені өзгертпейді. Тіркелгі стек іздейтін жерде болуы керек, және осындай есептердің көбінде бүкіл диагноз осымен шектеледі.

Бір әрекет, екі журнал

Бір сәтсіз қосылымды екі жақтан да байланыстырып қараңыз. OpenVPN журналы плагин нәтижесін және клиенттің бас тартуын көрсетеді; жүйелік аутентификация журналы қай модуль іске қосылғанын және не шешкенін көрсетеді. Оларды бір уақыт терезесінде оқу — жоқ қызмет файлын бэкендтің уақыт шегінен ажырататын нәрсе. Аутентификация журналындағы үзіліс стекке мүлде жетпегенін білдіреді.

journalctl -u openvpn-server@server --since "-2 min"
journalctl -t sshd -t sudo --since "-2 min"

VPN мен стекті бір уақытта жөндеуге тура келмес үшін қызметті PAM тілінде сөйлейтін утилитамен тікелей тексеріңіз. Сол қызмет атауымен және сол тіркелгімен тікелей тест сәтті болса, мәселе тіркелгінің өзінде емес, демонның тіркелгі деректерін қалай беретінінде болады.

pamtester openvpn alice authenticate

Консольде жұмыс істейтін сол тіркелгі деректерімен тікелей тест сәтсіз болса, стек сіз болжаған тіркелгі көзін оқып отырған жоқ. Егер ол сәтті болса, плагин жүргізетін диалогті және клиенттің шын мәнінде не жібергенін қараңыз. Оны әдейі қате құпия сөзбен де бір рет іске қосыңыз, сонда бас тарту мен модуль қатесінің айырмасын көресіз. Бұл екі нәтиже VPN журналында бірдей көрінеді, ал мұнда мүлдем бөлек.

Жеке қызмет login файлын өңдеуден артық

VPN талаптары интерактивті кіруден өзгеше болса, әдетте олар өзгеше болады, оған өз қызмет файлын беріңіз. login немесе common-auth өңдеу оларды қосатын әрбір бағдарламаның саясатын өзгертеді, ал осыған қатысы жоқ кіру мәселесін жөндейтін келесі адам сіздің өзгерісіңізді мұраға алады.

Қажетті модульдерді шағын қызмет файлына көшіріңіз, реттілікті айқын ұстаңыз және оның иесі кім екенін жазып қойыңыз. Құпия сөзді қалпына келтіру әсер етпейтін сияқты көрінгенде тексерілетін дәл сол файл.

Клиент не жібереді, не жібермейді

Клиент пайдаланушы аты мен құпия сөзді өзі қолдайтын сұрау немесе файл арқылы береді. Серверлік плагин бұл мәндерді PAM диалогіне береді; ол оларды сервер конфигурациясынан оқымайды. Құпия сөзді анықтайтын сияқты көрінетін сервер жағындағы жол олай істемейді, және ешқандай профильді өңдеу тіркелгі жасамайды.

Пайдаланушы аты мен құпия сөз клиент сертификаттарымен қатар өмір сүре алады, ал PAM қосу сертификаттарды тексеруді тоқтатуға себеп емес. Орналастыру көздеген қабаттарды сақтап, тек тіркелгі көзін түзетіңіз.

Қабылдау екі жақты: көзделген тіркелгі сәтті өтеді, ал бас тартылуы тиіс тіркелгі әлі де сәтсіз болады. auth-pam плагинінің README қызмет аргументін және ол алдыңғы жағында ұстай алатын бэкендтерді сипаттайды, құрып жатқан схеманы растайтын жер де сол.

Қатысты мақалалар