Rhybudd OpenVPN am sgriptiau --up lluosog: dim ond un sy’n rhedeg
Ni fydd aildrefnu dwy linell up yn gwneud i’r ddau redeg. Mae OpenVPN yn cadw un gorchymyn y cyfnod, felly darganfyddwch y ddau ddiffiniad a rhowch un pwynt mynediad i’r gwaith.
Mae’r rhybudd am sgriptiau lluosog yn swnio fel cwyn am amserlennu, felly’r atgyweiriad amlwg yw aildrefnu’r llinellau nes iddo ddiflannu. Nid cwyn am amserlennu yw hi. Mae diffiniad --up diweddarach yn disodli’r gorchymyn sydd eisoes wedi’i storio ar gyfer y cyfnod hwnnw, ac mae’r parselydd yn dweud hynny, sy’n golygu mai dim ond un o’ch dwy sgript sydd erioed wedi rhedeg. Nid yw’r llall yn ciwio y tu ôl iddi; mae wedi mynd.
Dyna pam mae’r rhybudd yn haeddu sylw er nad yw’n angheuol: yr hyn y mae’n ei ragweld yw diweddariad DNS neu newid llwybr sydd wedi stopio digwydd yn dawel.
Nid yw’r rhybudd yn ymwneud ag archebu
OpenVPN yn storio un gorchymyn sgript defnyddiwr ar gyfer y cyfnod up. Pan fydd y parselydd yn cyfarfod diffiniad arall, o’r proffil, o ffeil sydd wedi’i chynnwys neu o’r llinell orchymyn, mae’n disodli’r hyn yr oedd eisoes yn ei ddal ac yn allyrru’r rhybudd. Nid oes dim yn cael ei gydgysylltu, nid oes dim yn rhedeg ddwywaith, ac nid oes cwestiwn am archebu. Y gorchymyn sy’n goroesi yw’r un a welodd y parselydd ddiwethaf, a dyna pam y gall symud llinell newid y buddugwr tra bod y sgript arall yn parhau’n farw.
Mae’r un patrwm yn dal ar gyfer y cyfnodau sgript eraill: un gorchymyn yr un. Os oes rhaid i ddau ddarn o waith ddigwydd ill dau, maent angen un pwynt mynediad, nid dwy gyfarwyddeb sy’n debyg i restr.
Dewch o hyd i’r ddau ddiffiniad yn y lansiad go iawn
Dechreuwch o’r hyn a gafodd y daemon mewn gwirionedd, nid o’r proffil a olygwyd gennych. Mae ps -ef ac ExecStart yr uned yn dangos y llinell orchymyn, a all ychwanegu --up o bwynt mynediad cynhwysydd neu o lenwi; gall ffeil init dosbarthiad wneud yr un peth. Mae systemctl cat openvpn-server@server yn datgelu’r hyn y mae’r gwasanaeth ei hun yn ei gyfrannu, ac mae grep ailadroddus dros y cyfeiriadur ffurfweddu yn dod o hyd i’r diffiniadau ar lefel ffeil. Daw dyblygiadau fel arfer o haenau gwahanol, a dyna’n union pam nad yw golygu un ffeil yn newid dim.
Nid yw copïo sgript i gyfeiriadur arall nac ailenwi yn tynnu cyfarwyddeb chwaith. Mae’r parselydd yn cyfrif diffiniadau, nid ffeiliau.
Gadewch i un bachyn fod yn berchen ar y gwaith
Y gwelliant parhaus yw un anfonwr sy’n rhedeg y ddau weithred mewn trefn fwriadol. Mae sgript shell fer gyda set -eu sy’n galw’r integreiddiad gofynnol ac yna’r weithred leol, gan drosglwyddo "$@" fel bod ffiniau’r dadleuon yn goroesi, yn cadw’r ymddygiad mewn un man y gellir ei archwilio. Mae trosglwyddo dadleuon yn unig yn eu cadw; nid yw’n profi bod y ddau gymorth yn disgwyl yr un rhyngwyneb, felly darllenwch gontract pob un. Penderfynwch beth ddylai methiant ei wneud, ac a oes angen gwrthdroi newidiadau rhannol.
Os yw’r lansiwr yn cynnig bachyn estyniad â chefnogaeth, dewiswch ef yn hytrach na chadwyni wedi’u gwneud â llaw. Mae gan ddelwedd cynhwysydd neu becyn gwerthwr yn aml le wedi’i ddogfennu ar gyfer gwaith ychwanegol, ac mae ei ddefnyddio yn atal diweddariad rhag trosysgrifo’ch anfonwr.
Mae glanhau yn perthyn i’r cyfnod down cyfatebol. Mae gweithred up sy’n ailysgrifennu DNS neu’n ychwanegu llwybrau angen gwrthdroi wedi’i ddogfennu, ac mae anfonwr sy’n trin y cychwyn yn unig yn hanner dyluniad.
Cadarnhewch yr integreiddiad, nid y distawrwydd yn unig
Tynnu’r rhybudd dyblyg yw’r rhan hawdd; mae’r integreiddiad yn dal i orfod gweithio. Gwiriwch gyflwr y datryswr ar ôl cysylltu gyda resolvectl status neu drwy ddarllen /etc/resolv.conf, a chadarnhewch lwybrau gyda ip route. Yna datgysylltwch ac ailgysylltwch, oherwydd mae bachyn wedi’i gadwyno’n fyr yn tueddu i adael rhywbeth o’r sesiwn flaenorol. Mae journalctl -u openvpn-server@server -b yn dangos a redodd eich anfonwr a beth a argraffodd.
Cadwch freintiau’r bachyn lle maen nhw’n perthyn. Nid yw codi script-security na rhedeg y daemon â mwy o hawliau yn atgyweiriad ar gyfer bachyn sydd wedi’i ddisodli; mae’n ehangu’r hyn y gall pob sgript yn y dyfodol ei wneud, gan gynnwys un y mae ymosodwr yn cael ei enwi.
Arwydd bod yr atgyweiriad yn wirioneddol nid yw distawrwydd yn y log. Yr ateb DNS, y cofnod llwybr a’r glanhau sy’n gweithio i gyd ar ôl dau ailgysylltiad yw’r arwydd.