Қатені хабарлап, әрі қарай жалғастыратын дайындау скрипттері ешқашан іске қосылмайтын скрипттерден де нашар. Клиентті баптау қорғалған кілттерге, шлюздегі сәйкестікке және бәлкім қазірдің өзінде трафикті қызмет етіп жатқан қызметке қатысты. Олардың әрқайсысына тоқтау шарты қажет, ал скрипт тоқтаған кезде қай кезеңге жеткенін білуі керек.

Барлығын бес бақылау нүктесі бар бір транзакция ретінде қарастыр және әр бақылау нүктесі өздігінен жалғастырудан бас тартсын.

Файл жүйесіне тимес бұрын кірістерді түзет

Айқын келісімнен баста: бір сәйкестік, профильдің бір көзі, қызметтің бір көзделген иесі. Профильдің бар екенін, ол сілтейтін сертификат пен кілттің оқылатынын және мақсатты каталогтың күтілетін бумаға тиесілі екенін тексер. Шешілетін жол оның артындағы материалдың толық екеніне дәлел емес.

Бос айнымалыларды ертерек қабылдама. Ештеңеге кеңеймейтін орнатылмаған $DEVICE install -m 400 $KEY /etc/openvpn/client/ пәрменін каталогқа бағытталған көшірмеге айналдырады, ал сәтсіздік кейінірек өз кілтін оқи алмайтын қызмет ретінде келеді.

Профиль жиынтығын дайындау каталогында жина

Алдымен толық жиынтықты жеке жерде құр: профиль, CA, клиент сертификаты, кілт және профиль шақыратын кез келген көмекші. install -m 400 -o root -g root арқылы көшір, рұқсаттар кейін емес, жасау кезінде қойылсын. Содан кейін профиль ішіндегі сілтемелерді тексер, өйткені салыстырмалы ca немесе key жолы қызмет бастала салысымен бірліктің жұмыс каталогына қатысты шешіледі. Бүкіл жиынтық расталмайынша белсенді каталогқа ештеңе жазылмауы керек.

Бұл жүгірістің нені өндіргенінің құпия емес саусақ ізін жаз, мысалы нұсқа белгісінің қасында сақталған sha256sum office.conf. Дәл осы бір мән қайта жүгіруге жаңартуды ештеңе жасамаудан ажыратуға мүмкіндік береді.

Атомдық алмастыр және алдыңғы жиынтықты сақта

Дайындалған жиынтықты файл жүйесі рұқсат ететін жерде бір операциямен орнына жылжыт және қаралған алдыңғы жиынтықты уақыт белгісі бар атаумен сақта. Ескі кілттің қасында жаңа профиль қалдыратын ішінара көшірме қате сәйкестікпен аутентификацияланатын және себебі туралы пайдалы ештеңе жазбайтын қызмет тудырады. Егер алмастыру атомдық бола алмаса, жылжытуларды профиль ең соңында түсетіндей ретте.

Мақсат бұрыннан бар болса, бұл жүгірістің жаңарту, бірдей қайта жүгіру немесе басқа құрылғының профилімен қақтығыс екенін айқын шеш. Басқа сәйкестікке тиесілі профильді үнсіз үстінен жазу екі машинаның бір сертификатты бөлісуіне әкелетін жол. Оның орнына жүгірістен бас тарт және қақтығысатын иесін ата.

Бір иесін белсендір және оны дәлелде

Бір белсендіру жолын таңда, не systemd данасы, не NetworkManager, және оны бірізді қолдан. Белсендірілген бірліктің қасында басқарылмайтын openvpn процесін іске қосу екі туннель, бәсекелесетін DNS жаңартулары және тоқтату пәрмені қайсысын нысанаға алатынына айқын жауап бермейді. Белсендіруден кейін systemctl is-active openvpn-client@office тексер, содан кейін шалғай префикске маршрутты, содан кейін туннель орнатқан шешуші үшін resolvectl status тексер. Туннель үшін бар бір ресурсқа жетумен аяқта.

Жұмыс істеп тұрған процесс және жасыл науа белгішесі процестің фактілері, сәйкестік пен трафик саясаты тапсырудан аман қалғанының дәлелі емес.

Қайта жүгіру және шығару — бөлек жұмыс ағындары

Екінші жүгіру сол қаралған файлдарға және сол иесіне жинақталуы керек, екінші тіркелгі немесе екінші демон жасамауы керек. Шығару — өз рәсімі: нақты иесін тоқтат, саясатқа сай жергілікті профильді мұрағатта немесе жой, және шлюзде сәйкестікті қайтарып ал. Жергілікті кілт файлын жою машинадан кетіп қалған көшірмені қайтарып алмайды.

Туннельге тәуелді емес қалпына келтіру жолын ұста, мысалы консольге қатынау немесе екінші басқару маршруты. Сені машинадан тыс құлыптайтын дайындау өзгерісі — әр кезең табыс туралы хабарласа да — сәтсіз өзгеріс.

Сақтауға тұрарлық скрипт — иелік пен дәлел айналасындағы транзакция. Артықшылықты көшіру пәрмендерінің қысқа тізімі бір нәрсе емес.

Қатысты мақалалар