Göngin þín koma upp og biðlarinn tengist, en fasta heimilisfangið og þær leiðir sem þú skilgreindir fyrir þennan eina notanda vantar. Annállinn segir ekki “file not found”, og það er einmitt það sem sendir fólk út í að endurnýja skírteini. Í flestum þessara tilvika keyrir daemoninn úr annarri möppu en skelinni sem þú prófaðir í, og client-config-dir var aldrei leyst eins og þú gerðir ráð fyrir. Lagfæringin er slóðaleiðrétting, ekki endurstilling auðkennisgagna.

Lestu unitina áður en þú snertir stillingarnar

Byrjaðu á ferlinu sem raunverulega keyrir, ekki skránni sem þú breyttir. Spurðu systemd um keyrslulínuna, vinnuskrána og reikninginn sem það fer niður í. Þessi þrjú svör útskýra flest mistök í þessum flokki:

systemctl show openvpn-server@server -p ExecStart -p WorkingDirectory -p User -p RootDirectory

Tómt WorkingDirectory þýðir að unitin byrjar í /, svo afstæð client-config-dir ccd er leitað í /ccd. Sú mappa er næstum aldrei til, og daemoninn lítur ekki á fjarveru hennar sem banvæna.

Berðu það saman við gagnvirka ræsinguna sem þú notaðir við prófanir, þar sem núverandi mappa skeljarinnar þinnar var líklega stillingamappan. Sama skrá, sömu lykilorð, tvær mismunandi niðurstöður.

Við hvað afstæð slóð leysist

Lykilorðið leysist út frá vinnuskrá ferlisins á þeirri stundu sem valkosturinn er notaður. Það þýðir ekki “við hlið stillingaskrárinnar sem ég gaf upp með --config”. OpenVPN les fúslega stillingu úr algildri slóð og leysir samt afstæð gildi annars staðar, og það er einmitt gildran hér. Handbók OpenVPN 2.6 segir regluna undir --client-config-dir og aftur undir --cd.

Lykilorðið cd breytir því samhengi áður en aðrar skrár eru lesnar, svo unitin sem setur cd /etc/openvpn/server og síðan client-config-dir ccd leysist í /etc/openvpn/server/ccd. Ef þú bætir við cd, athugaðu röð fyrirskipananna og mundu að það hefur áhrif á hverja aðra afstæða tilvísun í sömu skrá.

Farðu slóðina sem reikningur daemonsins

Slóð getur verið rétt og samt ólæsileg. Eftir að hafa sleppt forréttindum er daemoninn ekki lengur root, svo hver yfirmappa þarf leitarheimild fyrir þann reikning, og biðlaraskráin sjálf þarf lesheimild. Eitt vantar keyrslubit á yfirmöppu til að fela skrána, og villan kemur aðeins fram sem biðlari sem fær hljóðlega sjálfgefna laugina.

namei prentar heimild hvers hluta í röð, sem er hraðara en að athuga möppurnar eina í einu:

namei -l /etc/openvpn/server/ccd/client1

Prófaðu svo lesturinn sem þjónustureikninginn í stað þess að prófa sem þig:

runuser -u openvpn -- test -r /etc/openvpn/server/ccd/client1 && echo readable

Ef unitin notar chroot, verður mappan að vera inni í fangelsinu, og slóðin í stillingunni er túlkuð eftir að chroot er beitt. Skrá sem er á hýsilnum utan fangelsisins er ósýnileg að innan.

Staðfestu uppflettinguna í stað þess að giska

Hækkaðu annálastigið fyrir eina endurræsingu og lestu hvað þjónninn segir um valkosti sem eru sérstakir fyrir biðlarann. Á verb 4 tilkynnir daemoninn stillinguna fyrir hvern biðlara sem hann flutti inn, svo fjarverandi lína er bein sönnun þess að engin skrá var lesin fyrir þá tengingu.

openvpn --config /etc/openvpn/server.conf --verb 4 --client-config-dir /etc/openvpn/server/ccd

Keyrðu það í forgrunni á varaporti og tengdu einn biðlara. Það tekur systemd algjörlega út úr myndinni: ef yfirskriftirnar birtast hér en ekki undir þjónustunni, þá er munurinn samhengi unitarinnar, ekki skráin.

Ákveddu hvað eigi að gerast þegar engin skrá passar. Án ccd-exclusive er biðlarinn tekinn inn með aðeins alheimsstillingum laugarinnar, og það er hljóðlega bilunin sem lýst var hér að ofan. Með henni verður vantar skrá að synjaðri tengingu, og þá synjun er auðveldara að taka eftir en erfiðara að kemba undir álagi.

Lagaðu, endurræstu, staðfestu

Gerðu möppuna algilda í stillingunni og hafðu hana þannig. Afstæðar slóðir eru aðeins öruggar þegar unitin festir vinnuskrána, og að festa hana er auka hreyfanlegur hluti sem einhver fjarlægir síðar.

client-config-dir /etc/openvpn/server/ccd
ccd-exclusive

Endurræstu eintakið, tengdu þekktan biðlara aftur og lestu heimilisfangið sem hann fékk ásamt leiðunum sem ýtt var til hans. Ef heimilisfangið passar við línuna ifconfig-push í skrá þess biðlara, þá virkaði uppflettingin. Ef biðlarinn lendir enn í almennu lauginni, farðu aftur í fjölda annálalína: núll innflutningar þýða að slóðin eða auðkennið er rangt, einn innflutningur með röngu innihaldi þýðir að þú ert að breyta annarri skrá en daemoninn les.

Farðu til baka með því að endurheimta fyrri unit og stillingu saman og endurræstu svo. Ekki þarf að endurútgefa skírteini fyrir neitt af þessu, og að meðhöndla möppuvandamál sem auðkennisvandamál er leiðin sem fimm mínútna lagfæring verður að viðhaldsglugga.

Tengdir greinar