OpenVPN-innstillinger på ruteren tilbakestilles etter omstart: reparer generatoren
Fastvare som bygger OpenVPN-konfigurasjonen på nytt ved hver oppstart, kaster endringene dine. Lapp kroken til generatoren, og sammenlign deretter den genererte filen etter én omstart.
Fastvare på en forbrukerruter eller NAS bygger ofte OpenVPN-konfigurasjonen på nytt ved hver oppstart, så en direktiv du legger til overlever nøyaktig til neste oppstart. Det samme gjelder nøkler som skrives inn i et web-skjema, der den lagrede verdien kan komme tilbake ødelagt etter lagring. Ingen av disse symptomene betyr at endringen ble avvist. Det betyr at endringen havnet i en fil som fastvaren behandler som utdata, og at det varige stedet ligger ett steg tidligere i oppstartssekvensen.
Hvorfor den redigerte filen genereres på nytt
Et oppstartsskript setter sammen serverkonfigurasjonen fra en mal og starter deretter daemonen, noe som gjør den gjengitte filen til et byggartefakt i stedet for en kilde. Alt som legges til etter oppstart, er usynlig for neste kjøring av det skriptet. Det andre mønsteret er mer subtilt: nøkkel- og sertifikatinndata i webgrensesnittet lagres i en escapet form, og lagring av skjemaet kan skyve den escapede teksten inn i filen som daemonen leser. Uansett er den gjengitte konfigurasjonen feil sted for en varig endring.
Se på hva oppstartssekvensen skriver, og når den skriver det. Svaret er nesten alltid et skript i fastvarens init- eller autorun-katalog.
Sett inn direktivet der skriptet bygger filen
QTS-enheter gjenoppretter OpenVPN-serverkonfigurasjonen inne i init-skriptet som starter daemonen, så endringen må skje der. Legg til tilføyelsen rett før oppstartskommandoen i stedet for å redigere den genererte filen.
sed -i '/daemon_mgr/i echo client-config-dir clientconfig >>/etc/openvpn/server.conf' /etc/init.d/vpn_openvpn.sh
grep -c client-config-dir /etc/openvpn/server.confForankre innsettingen på en kommando som ikke flytter seg, siden linjenumrene endres mellom bygg. Fordi init-skriptet selv erstattes under oppstart, må endringen utstedes på nytt fra fastvarens autorun-krok hver gang systemet starter. Etter én omstart teller du forekomstene i den genererte filen: én linje betyr at lappen virket, mens to betyr at kroken kjører mer enn én gang. Undersøk dobbeltkjøringen separat, for det er ikke samme feil som en endring som forsvant.
Reparer et skjema som lagret escapede nøkler
På sider i Asus-stil viser sertifikat- og nøkkelfeltene escapet tekst, og lagring etter en urelatert justering kan skrive disse entitetene tilbake til disken. Arbeid fra en dekodet kopi og lagre bare én gang, når alle endringene er klare.
openssl dhparam -out dh2048.pem 2048
grep -n "BEGIN DH PARAMETERS" dh2048.pemNår du bytter inn et nytt parametersett, limer du inn bare base64-nyttelasten hvis feltet ber om nøkkelens kropp, og beholder armor-linjene bare når feltet forventer en fullstendig PEM-blokk. Å redde en side som allerede er lagret i escapet form betyr vanligvis å tømme de berørte feltene og bruke, noe som lar fastvaren bygge dem på nytt. Generer alt over 2048 biter på en arbeidsstasjon, fordi ruterens entropiforsyning gjør operasjonen treg og noen ganger upålitelig. Oppbevar parameterfilen et sted du kan nå etter en fabrikknullstilling.
Kontroller på nytt etter oppgraderinger
Fastvareoppdateringer erstatter init-skriptene og kan slette autorun-katalogen, så lappen må installeres og testes på nytt. Sammenlign den gjenopprettede filen med kopien du beholdt, og bekreft at direktivet finnes nøyaktig én gang. En verdi som er synlig i webgrensesnittet, er ikke bevis for at daemonen mottok den, siden siden leser lagrede felt. Skriv lappekommandoen og fastvareversjonen i vedlikeholdsnotatene slik at neste oppdatering tar dem videre.
Koble deretter til en klient og les serverloggen for alternativet som ble dyttet. En innstilling som bare noen gang har eksistert i et skjema, er en innstilling ingen har testet.