Серверге колдонуучу кошулду, сырсөз туура киргизилди, бирок байланыш дагы эле 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 кызмат аргументин жана ал алдыңкы катмарда кармай алган бэкенддерди сүрөттөйт, куруп жаткан схемаңызды ырастоочу жер да ошол.

Тектеш макалалар