Git-тегі OpenVPN профилі: commit алдында нені жою керек
Файлды ендірілген кілттерге қарап оқыңыз, репозиторий нені тарата алатынын шешіңіз және тарихты қайта жазбас бұрын кері қайтарыңыз.
Профильдер бір мезгілде екі мақсатқа қызмет етеді: қосылу параметрлерін жазады және жұмыс істейтін куәліктер жиынтығын алып жүреді. Файл кеңейтімі сіздің қолыңызда қайсысы барын айтпайды. Ол репозиторийге тиесілі деп шешпес бұрын мазмұнын оқыңыз.
Төмендегі қадамдар клиент үлгісі нұсқа бақылауы үшін қарастырылып жатқанын болжайды. Оларды ретімен орындаңыз және кері қайтара алмайтын нәрсені commit етпес бұрын тоқтаңыз.
Индекске қосатын файлды оқыңыз
Нақты байттардан бастаңыз, өйткені жеке файлдарға сілтеме жасайтын профиль оларды өзіне енгізетін профильден мүлдем басқаша көрінеді. PEM блогының белгілерін және ca, cert, key, tls-auth және tls-crypt атаулы кірістірілген тегтерді іздеңіз, сол тексеру екі жағдайды да көрсетеді. Шифрланған жеке кілт әлі де сезімтал материал болып саналады, ал ортақ tls-auth немесе tls-crypt кілті пайдаланушының жеке басы болмаса да куәлік болып табылады. Профильмен бірге индекске қосылатын барлық нәрсеге, соның ішінде куәлік файлына сілтеме жасайтын мұрағаттар мен орнату скрипттеріне де сол тексеруді қолданыңыз.
Содан кейін жұмыс ағашына емес, индекске қосылған жиынтыққа қараңыз. git diff --cached commit-тің шын мәнінде нені қамтитынын көрсетеді, және бұл шешім үшін маңызды жалғыз нұсқа сол.
Репозиторий нені тарата алатынын шешіңіз
Үлгі ортақ, тексерілген параметрлерді және адам тіркелу кезінде алатын барлық нәрсе үшін аталған орын толтырғыштарды алып жүре алады. Ол алып жүре алмайтыны — пайдалануға жарамды жеке бас, өйткені репозиторий оны оқи алатын барлығына, соның ішінде автоматтандыруға таратылады. Жеке репозиторий аудиторияны тарылтады, бірақ әр оқырманның сол куәлікке уәкілетті екендігі туралы сұрақты өзгертпейді.
Елемеу ережесі болашақ қосымшаларға жол бермейді және бұрын жазылған нәрсеге ештеңе жасамайды. Бұл асимметрияны оннан кейін емес, бірінші commit алдында бойға сіңірген жөн. Инфрақұрылым атаулары мен мекенжайлары жеке пайымдау: олар аутентификация құпиялары емес, бірақ команда жарияламақ болғаннан көбірек аша алады. Әр жолды құпиясөз немесе жария деп бөлудің орнына сол шешімді анық қабылдаңыз.
Материал тарихта болса
Жаңа commit-те жолды жою ескі нұсқаны оны жүктеп алатын әркім үшін бүлінбеген күйде қалдырады. Әшкереленуге нақты нәрсе ретінде қараңыз: куәліктің түрін анықтаңыз, содан кейін оны жарамсыз ете алатын органды табыңыз. Клиент сертификаты кері қайтарылады және кері қайтару тізімі қайта жасалады; ортақ басқару арнасының кілті серверде және оны пайдаланатын әр клиентте ауыстырылады.
Екеуінің әсер ету радиусы өте басқа, және жоспар бастамас бұрын қайсысын орындап жатқаныңызды көрсетуі керек. Материалды енгізген commit-ті git log --all -S 'BEGIN PRIVATE KEY' тәрізді іздеумен табыңыз, сонда тазалау ауқымы болжанбай, белгілі болады. Әріптестің клоны немесе форкі ескі нысанды әлдеқашан ұстауы мүмкін, сондықтан кері қайтару бірінші, тазалау екінші келеді.
Тек шектегеннен кейін тазалаңыз
Тарихты қайта жазу өзіңіз өңдеген commit-тен кейінгі әрбір commit-ті өзгертеді, сондықтан алдымен репозиторий иесінің және онда жұмыс істейтін адамдардың келісімі қажет. Мәжбүрлі push жөндеу емес; ол өзінің қайтару тәуекелі бар үйлестіру оқиғасы. Оны жоспарлаңыз, қосалқы көшірме алыңыз және командаға қашан болатынын айтыңыз.
Одан кейін құралдың қорытындысына сенудің орнына ағымдағы ағашты және қалған тарихты тексеріңіз.
Нәтижені екі артефакт ретінде сақтаңыз: бөлісуге қауіпсіз үлгі және тіркелу процесінде берілген куәліктердің тізімі. Екеуінің ешқайсысы репозиторийде пайдалануға жарамды жеке бастың болуын талап етпейді.
Осы бөлу — нағыз түзету, және ол профильді commit етпек болған келесі адамнан кейін де өмір сүреді.