OpenVPN PAM: mae’r ddadl mewngofnodi yn wasanaeth, nid yn ddefnyddiwr
Mae’r gair ar ôl llwybr ategyn auth-pam yn dewis stac PAM. Darllenwch y stac hwnnw, darganfyddwch ei ffynhonnell cyfrifon, yna ei brofi gyda pamtester cyn golygu proffiliau.
Ychwanegwyd defnyddiwr ar y gweinydd, teipiwyd y cyfrinair yn gywir, ac mae’r cysylltiad yn dal i orffen gyda AUTH_FAILED. Mae’r llinell ategyn fel arfer yn esbonio pam: mae’r gair ar ôl llwybr yr ategyn yn enw gwasanaeth PAM, ac mae’n penderfynu pa stac o fodiwlau sy’n ateb y cwestiwn. Nid yw’n enw defnyddiwr, ac nid yw’n bwyntydd i ffeil gyfrinair y mae OpenVPN yn ei darllen ei hun.
Beth mae’r ail air yn ei ddewis
Mae’r llinell ffurfweddu yn cymryd llwybr ategyn ac un ddadl:
plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so openvpnMae’r ddadl honno’n cael ei hanfon i lyfrgell PAM fel enw’r gwasanaeth, sy’n gwneud y stac yn /etc/pam.d/openvpn yr un sy’n rhedeg. Ysgrifennwch login yno a chewch y polisi mewngofnodi rhyngweithiol yn lle hynny, gyda pha fodiwlau bynnag y mae’r polisi hwnnw’n eu cynnwys ar eich dosbarthiad.
Defnyddiwch lwybr yr ategyn a ddarperir gan y pecyn sydd wedi’i osod yn hytrach na llwybr a gopïwyd o westiwr arall. Mae enw’r ffeil a’r cyfeiriadur yn wahanol rhwng dosbarthiadau, ac mae llwybr anghywir yn methu wrth gychwyn gyda gwall llwytho ategyn, nid adeg dilysu.
Lle mae’r stac yn darllen cyfrifon mewn gwirionedd
Trefnydd yw PAM. Mae’r ffeil gwasanaeth yn rhestru modiwlau mewn trefn, a’r un cyntaf sy’n gallu ateb sy’n penderfynu’r canlyniad. Mae stac sy’n galw pam_unix yn darllen cyfrifon lleol; mae stac sy’n galw modiwl LDAP neu RADIUS yn anfon y tystlythyrau i rywle arall yn gyfan gwbl.
Darllenwch y ffeil y mae’r enw gwasanaeth yn datrys iddi, gan gynnwys unrhyw beth y mae’n ei gynnwys:
cat /etc/pam.d/openvpn
grep -H pam_ /etc/pam.d/openvpn /etc/pam.d/common-authOs yw’r stac yn dirprwyo i gyfeiriadur, nid yw ychwanegu cyfrif lleol yn newid dim. Os yw’n darllen cyfrifon lleol, nid yw creu’r defnyddiwr yn y cyfeiriadur yn newid dim ychwaith. Rhaid i’r cyfrif fodoli lle mae’r stac yn edrych, a dyna’r diagnosis cyfan yn y rhan fwyaf o’r adroddiadau hyn.
Un ymgais, dau gofnod
Cydberthynwch un cysylltiad methiedig ar y ddwy ochr. Mae cofnod OpenVPN yn dangos canlyniad yr ategyn a gwrthodiad y cleient; mae cofnod dilysu’r system yn dangos pa fodiwl a redodd a beth a benderfynodd. Darllen y ddau yn yr un ffenestr amser yw’r peth sy’n gwahanu ffeil gwasanaeth ar goll oddi wrth derfyn amser backend. Mae bwlch yn y cofnod dilysu yn golygu na chyrhaeddwyd y stac o gwbl.
journalctl -u openvpn-server@server --since "-2 min"
journalctl -t sshd -t sudo --since "-2 min"Profwch y gwasanaeth yn uniongyrchol ag offeryn sy’n siarad PAM, fel nad ydych yn dadfygio’r VPN a’r stac ar yr un pryd. Mae prawf uniongyrchol llwyddiannus gyda’r un enw gwasanaeth a chyfrif yn culhau’r broblem i sut mae’r daemon yn trosglwyddo tystlythyrau, nid i’r cyfrif ei hun.
pamtester openvpn alice authenticateOs yw’r prawf uniongyrchol yn methu gyda’r un tystlythyrau sy’n gweithio ar gonsol, nid yw’r stac yn darllen y ffynhonnell cyfrifon a dybiwyd gennych. Os yw’n llwyddo, edrychwch ar yr sgwrs y mae’r ategyn yn ei chynnal ac ar yr hyn a anfonodd y cleient mewn gwirionedd. Rheswch ef unwaith gyda chyfrinair bwriadol anghywir hefyd, fel y gallwch weld y gwahaniaeth rhwng gwrthodiad a gwall modiwl. Mae’r ddau ganlyniad hynny’n edrych yr un fath yng nghofnod y VPN ac yn hollol wahanol yma.
Mae gwasanaeth pwrpasol yn well na golygu’r mewngofnodi
Rhowch ffeil gwasanaeth ei hun i’r VPN pan fo ei ofynion yn wahanol i fewngofnodi rhyngweithiol, fel y maent fel arfer. Mae golygu login neu common-auth yn newid y polisi ar gyfer pob rhaglen sy’n eu cynnwys, ac mae’r person nesaf sy’n dadfygio problem fewngofnodi annibynnol yn etifeddu eich newid.
Copïwch y modiwlau sydd eu hangen arnoch i ffeil gwasanaeth fach, cadwch y drefn yn eglur, a nodwch pwy sy’n berchen arni. Y ffeil honno yw’r peth i’w wirio pan fo ailosod cyfrinair yn ymddangos heb effaith.
Beth mae’r cleient yn ei anfon, a beth nad yw’n ei anfon
Mae’r cleient yn darparu enw defnyddiwr a chyfrinair trwy ei anogiad neu ei ffeil a gefnogir. Mae ategyn y gweinydd yn trosglwyddo’r gwerthoedd hynny i sgwrs PAM; nid yw’n eu darllen o ffurfweddiad y gweinydd. Nid yw llinell ar ochr y gweinydd sy’n edrych fel pe bai’n diffinio cyfrinair yn gwneud hynny, ac ni fydd unrhyw olygiad proffil yn creu cyfrif.
Gall enw defnyddiwr a chyfrinair gydfodoli gyda thystysgrifau cleient, ac nid yw galluogi PAM yn rheswm dros roi’r gorau i wirio tystysgrifau. Cadwch yr haenau y bwriadodd y defnydd a thrwsiwch y ffynhonnell cyfrifon yn unig.
Mae derbyniad yn ddwyochrog: mae’r cyfrif a fwriadwyd yn llwyddo, ac mae cyfrif y dylid ei wrthod yn dal i fethu. Mae README ategyn auth-pam yn dogfennu’r ddadl gwasanaeth a’r backendau y gall eu gwasanaethu, a dyna’r lle i gadarnhau’r trefniant rydych yn ceisio ei adeiladu.