OpenVPN-тің бірнеше --up скрипт туралы ескертуі: тек біреуі іске қосылады
Екі up жолын қайта реттеу екеуін де іске қоспайды. OpenVPN әр кезеңге бір команда сақтайды, сондықтан екі анықтаманы да тауып, жұмысқа бір кіру нүктесін беріңіз.
Бірнеше скрипт туралы ескерту жоспарлау шағымына ұқсайды, сондықтан айқын шешім — жолдарды ол жоғалғанша қайта реттеу. Бірақ бұл жоспарлау шағымы емес. Кейінгі --up анықтамасы сол кезең үшін бұрын сақталған команданы алмастырады, және талдаушы осылай дейді, яғни екі скриптің ішінен дәл біреуі ғана іске қосылған. Екіншісі оның артында кезекте тұрған жоқ; ол жоғалды.
Сондықтан ескерту өлімге әкелмесе де назарға лайық: ол тым-тырыс тоқтаған DNS жаңартуын немесе маршрут өзгерісін болжайды.
Ескерту реттілік туралы емес
OpenVPN up кезеңі үшін бір ғана пайдаланушы скриптінің командасын сақтайды. Талдаушы басқа анықтаманы кездестіргенде, профильден, қосылған файлдан немесе командалық жолдан, ол бұрын ұстағанын алмастырады және ескерту шығарады. Ештеңе біріктірілмейді, ештеңе екі рет іске қосылмайды және реттілік туралы сұрақ жоқ. Тірі қалатын команда — талдаушы соңғы көрген команда, сондықтан жолды жылжыту жеңімпазды өзгертіп, екінші скрипт өлі күйінде қалуы мүмкін.
Сол үлгі скрипттің басқа кезеңдеріне де қатысты: әрқайсысына бір команда. Егер екі жұмыс екеуі де орындалуы керек болса, оларға тізімге ұқсайтын екі нұсқау емес, бір кіру нүктесі қажет.
Екі анықтаманы нақты іске қосудан табыңыз
Өңдеген профильден емес, демон нақты алған нәрседен бастаңыз. ps -ef және бірліктің ExecStart командалық жолды көрсетеді, оған контейнердің кіру нүктесінен немесе қаптамадан --up қосылуы мүмкін; дистрибутивтің init файлы да солай жасай алады. systemctl cat openvpn-server@server қызметтің өзі не қосатынын ашады, ал конфигурация каталогындағы рекурсивті grep файл деңгейіндегі анықтамаларды табады. Көшірмелер әдетте әртүрлі қабаттардан келеді, сондықтан бір файлды өңдеу ештеңені өзгертпейді.
Скрипті басқа каталогқа көшіру немесе атын өзгерту де нұсқауды жоймайды. Талдаушы файлдарды емес, анықтамаларды санайды.
Жұмысты бір hook иеленсін
Тұрақты шешім — екі әрекетті ойластырылған ретпен орындайтын жалғыз диспетчер. set -eu бар қысқа shell скрипті қажетті интеграцияны, содан кейін жергілікті әрекетті шақырады және аргумент шекаралары сақталуы үшін "$@" береді; осылайша мінез-құлық бір тексерілетін жерде қалады. Аргументтерді беру оларды тек сақтайды; ол екі көмекшінің бір интерфейсті күтетінін дәлелдемейді, сондықтан әрқайсысының шартын оқыңыз. Сәтсіздік не істеуі керектігін және ішінара өзгерістерді қайтару қажет пе екенін шешіңіз.
Егер іске қосқыш қолдау көрсетілген кеңейту hook-ын ұсынса, оны қолмен жасалған тізбектен артық көріңіз. Контейнер бейнесінің немесе жеткізуші пакетінің қосымша жұмыс үшін құжатталған орны болады, және оны пайдалану жаңартудың диспетчеріңізді қайта жазбауын қамтамасыз етеді.
Тазалау тиісті down кезеңіне жатады. DNS-ті қайта жазатын немесе маршруттар қосатын up әрекетіне құжатталған кері қайтару қажет, ал тек іске қосуды ғана басқаратын диспетчер — жарты дизайн.
Интеграцияны растаңыз, тек тыныштықты емес
Қайталанатын ескертуді жою — оңай бөлігі; интеграция әлі де жұмыс істеуі керек. Қосылғаннан кейін resolvectl status арқылы немесе /etc/resolv.conf оқу арқылы шешуші күйін тексеріңіз, маршруттарды ip route арқылы растаңыз. Содан кейін ажыратып қайта қосылыңыз, өйткені асығыс тізбектелген hook алдыңғы сеанстан бірдеңе қалдырады. journalctl -u openvpn-server@server -b диспетчеріңіздің іске қосылғанын және не басып шығарғанын көрсетеді.
hook-тың артықшылықтарын тиісті жерде ұстаңыз. script-security көтеру немесе демонды көбірек құқықпен іске қосу ауыстырылған hook үшін шешім емес; ол әрбір болашақ скрипттің, соның ішінде шабуылдаушы атайтын скрипттің де не істей алатынын кеңейтеді.
Түзетудің шынайы екенінің белгісі — журналдағы тыныштық емес. Бұл DNS жауабы, маршрут жазбасы және тазалау, олар екі рет қайта қосылғаннан кейін дұрыс жұмыс істейді.