Onyo la OpenVPN kuhusu skripti nyingi za --up: moja tu huendeshwa
Kupanga upya mistari miwili ya up hakutafanya zote ziendeshwe. OpenVPN huhifadhi amri moja kwa kila hatua, kwa hivyo tafuta fasili zote mbili na uipe kazi mahali pa kuingia kimoja.
Onyo la skripti nyingi husikika kama malalamiko ya upangaji, kwa hivyo suluhisho dhahiri ni kupanga upya mistari hadi litoweke. Lakini si malalamiko ya upangaji. Fasili ya baadaye ya --up hubadilisha amri iliyohifadhiwa tayari kwa hatua hiyo, na kichanganuzi husema hivyo, ikimaanisha kuwa kati ya skripti zako mbili moja tu imewahi kuendeshwa. Nyingine haisubiri kwenye foleni nyuma yake; imetoweka.
Ndiyo sababu onyo hili linastahili umakini ingawa si la kifo: linalotabiri ni sasisho la DNS au mabadiliko ya njia ambayo iliacha kutokea kwa kimya.
Onyo hili si kuhusu mpangilio
OpenVPN huhifadhi amri moja ya skripti ya mtumiaji kwa hatua ya up. Kichanganuzi kinapokutana na fasili nyingine, kutoka kwa wasifu, faili iliyojumuishwa au mstari wa amri, hubadilisha kile kilichokuwa kimeshafanyika na kutoa onyo. Hakuna kinachounganishwa, hakuna kinachoendeshwa mara mbili, na hakuna swali la mpangilio. Amri inayobaki ni ile ambayo kichanganuzi kiliona mwisho, ndiyo sababu kuhamisha mstari kunaweza kubadilisha mshindi huku skripti nyingine ikibaki mfu.
Mfumo huo huo unatumika kwa hatua nyingine za skripti: amri moja kwa kila moja. Ikiwa kazi mbili zinapaswa kutokea zote mbili, zinahitaji mahali pa kuingia kimoja, si maagizo mawili yanayofanana na orodha.
Tafuta fasili zote mbili katika uzinduzi halisi
Anza na kile daemon ilipokea kwa kweli, si wasifu uliouhariri. ps -ef na ExecStart ya kitengo huonyesha mstari wa amri, ambao unaweza kuongeza --up kutoka mahali pa kuingia pa kontena au kifuniko; faili ya init ya usambazaji inaweza kufanya vile vile. systemctl cat openvpn-server@server hufichua kile huduma yenyewe inachoongeza, na grep ya kurudia katika saraka ya usanidi hupata fasili za kiwango cha faili. Nakala mara nyingi hutoka kwa tabaka tofauti, na ndiyo sababu kuhariri faili moja hakubadilishi chochote.
Kunakili skripti hadi saraka nyingine au kuibadilisha jina pia hakuondoi agizo. Kichanganuzi huhesabu fasili, si faili.
Acha hook moja imiliki kazi
Suluhisho la kudumu ni mtumaji mmoja anayetekeleza vitendo vyote viwili kwa mpangilio uliokusudiwa. Skripti fupi ya shell iliyo na set -eu inayoiita muunganisho unaohitajika kisha kitendo cha ndani, na kupeleka "$@" ili mipaka ya hoja idumu, huweka tabia mahali pamoja panapoweza kukaguliwa. Kupeleka hoja huzilinda tu; hakuthibitishi kuwa wasaidizi wawili wanatarajia kiolesura kimoja, kwa hivyo soma mkataba wa kila mmoja. Amua kosa linapaswa kufanya nini na ikiwa mabadiliko ya sehemu yanapaswa kurudishwa.
Ikiwa kizindua kinatoa hook ya kiendelezi inayotumika, ipendelee kuliko mnyororo uliojengwa kwa mkono. Picha ya kontena au kifurushi cha msambazaji mara nyingi huwa na mahali palipoandikwa kwa kazi ya ziada, na kuitumia huzuia sasisho lisije likaandika juu ya mtumaji wako.
Usafishaji ni wa hatua ya down inayolingana. Kitendo cha up kinachoandika upya DNS au kuongeza njia kinahitaji urudishaji ulioandikwa, na mtumaji anayeshughulikia uzinduzi pekee ni nusu ya muundo.
Thibitisha muunganisho, si ukimya pekee
Kuondoa onyo la nakala ni sehemu rahisi; muunganisho bado unapaswa kufanya kazi. Angalia hali ya kitatuzi baada ya kuunganisha kwa resolvectl status au kwa kusoma /etc/resolv.conf, na thibitisha njia kwa ip route. Kisha tenganisha na unganisha tena, kwa sababu hook iliyounganishwa kwa haraka huwa inaacha kitu kutoka kikao kilichopita. journalctl -u openvpn-server@server -b huonyesha ikiwa mtumaji wako uliendeshwa na kile ulichapisha.
Weka haki za hook mahali zinapostahili. Kuinua script-security au kuendesha daemon kwa haki zaidi si suluhisho la hook iliyobadilishwa; kunapanua kile kila skripti ya baadaye inaweza kufanya, ikiwemo ile ambayo mshambuliaji ataitaja.
Ishara kwamba suluhisho ni la kweli si ukimya kwenye kumbukumbu. Ni jibu la DNS, kiingilio cha njia na usafishaji vyote vikifanya kazi baada ya kuunganishwa mara mbili.