OpenVPN подешавања на рутеру се враћају после поновног покретања: поправите генератор
Фирмвер који при сваком подизању поново гради OpenVPN конфигурацију одбацује ваше измене. Закрпите куку генератора, а затим упоредите генерисани фајл након једног поновног покретања.
Фирмвер на потрошачком рутеру или NAS-у често при сваком покретању поново гради OpenVPN конфигурацију, па директива коју додате опстаје тачно до следећег подизања. Исто важи за кључеве унете у веб образац, где се сачувана вредност после чувања може вратити искварена. Ниједан од ових симптома не значи да је измена одбијена. Значи да је измена завршила у фајлу који фирмвер третира као излаз, а трајно место је корак раније у низу за подизање.
Зашто се измењени фајл поново генерише
Стартна скрипта саставља конфигурацију сервера из шаблона и затим покреће демона, што генерисани фајл чини артефактом градње, а не извором. Све што се дода после покретања невидљиво је за следеће извршавање те скрипте. Други образац је суптилнији: уноси кључа и сертификата у веб интерфејсу чувају се у избегнутом облику, а чување обрасца може тај избегнути текст да гурне у фајл који демон чита. У сваком случају, генерисана конфигурација је погрешно место за трајну измену.
Погледајте шта низ за подизање записује и када. Одговор је скоро увек скрипта у init или директоријуму за аутоматско покретање фирмвера.
Уметните директиву тамо где скрипта гради фајл
QTS уређаји поново генеришу OpenVPN конфигурацију сервера унутар init скрипте која покреће демона, па измена мора да се догоди тамо. Додајте дописивање непосредно пре команде за покретање уместо да уређујете генерисани фајл.
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.confУсидрите уметање на команду која се неће померити, јер се бројеви редова мењају између градњи. Пошто се сама init скрипта замењује током подизања, измена мора поново да се изда из куке за аутоматско покретање при сваком покретању система. После једног поновног покретања пребројте појављивања у генерисаном фајлу: један ред значи да је закрпа радила, а два значе да кука ради више од једном. Двоструко извршавање истражите одвојено, јер то није иста квар као измена која је нестала.
Поправите образац који је сачувао избегнуте кључеве
На страницама у стилу Asus поља за сертификат и кључ приказују избегнути текст, а чување после неповезаног подешавања може те ентитете да врати на диск. Радите из декодиране копије и чувајте само једном, када све измене буду готове.
openssl dhparam -out dh2048.pem 2048
grep -n "BEGIN DH PARAMETERS" dh2048.pemКада замењујете нови скуп параметара, залепите само base64 садржај ако ознака тражи тело кључа, а линије оклопа задржите само када поље очекује цео PEM блок. Опоравак странице која је већ сачувана у избегнутом облику обично значи чишћење погођених уноса и примену, што омогућава фирмверу да их поново изгради. Генеришите све изнад 2048 бита на радној станици, јер залиха ентропије рутера чини операцију споријом и понекад непоузданом. Чувајте фајл параметара на месту до којег можете да дођете после фабричког ресетовања.
Проверите поново након надоградњи
Ажурирања фирмвера замењују init скрипте и могу да избришу директоријум за аутоматско покретање, па закрпа мора поново да се инсталира и тестира. Упоредите поново генерисани фајл са копијом коју сте сачували и потврдите да је директива присутна тачно једном. Вредност видљива у веб интерфејсу није доказ да ју је демон примио, јер страница чита сачувана поља. Запишите команду закрпе и верзију фирмвера у белешке о одржавању, да их следеће ажурирање пренесе даље.
Затим повежите клијента и прочитајте у дневнику сервера послату опцију. Подешавање које је икада постојало само у обрасцу је подешавање које нико није тестирао.