DH файлы ма, әлде tls-auth кілті ме? Екі OpenVPN файлын ажырату
Бір файл ашық топ параметрлерін сақтайды, екіншісі — ортақ құпия материал. Үш шарт қайсысы қай директиваға жататынын анықтайды.
Екі файл, екі директива және екеуін де реттейтін нәрсенің атымен атау әдеті. Осылайша dh.pem tls-auth жолына түсіп, клиент күтпеген кілт пішімі туралы хабарламамен сәтсіз аяқталады. Алдыңыздағы шешім қай файл күштірек дегенде емес. Ол — орналастыруға қай рөл шынымен қажет, және оны үш шарт шешеді: сіздің TLS стек қай кілт алмасуды келісетіні, басқару арнасын аутентификациялауды қалайсыз ба, және материал құпия болып қалуы керек пе.
Оларға ретімен жауап беріңіз, файл туралы сұрақ өзі шешіледі. Оларды өткізіп жіберсеңіз, директива атаулары бірін-бірі алмастыратындай көріне бастайды, ал қате дәл осы күйден туындайды.
Файл атынан бұрын белгіні оқыңыз
Файлдың бірінші жолы атынан гөрі ақпараттырақ, себебі ат — адамзаттық конвенция, ал белгіні құрал жасайды. Diffie-Hellman параметрлері BEGIN DH PARAMETERS PEM белгісін алып жүреді. OpenVPN статикалық кілті мүлде басқа құрылым, өз тақырыбы мен он алтылық жүктемесі бар.
Қайта атау ешнәрсені түрлендірмейді. ta.key деп аталған параметр файлы әлі де параметрлер, ал dh.pem деп аталған статикалық кілт әлі де статикалық кілт; талдаушы мазмұнды оқып, сәйкессіздікті қабылдамайды. Профильді өңдеу алдында тексеріңіз:
head -n 1 dh.pem
head -n 1 ta.keyҚай файл қажет екенін анықтайтын үш шарт
Бірінші шарт — алмасу. Ақырлы өрістің Diffie-Hellman қол алысуына топ қажет, ал dh директивасы — сервер оған параметрлерді атайтын орын. Эллипстік қисық қол алысуына ол файл мүлде қажет емес, себебі қисықтың өзі параметрлер жиынтығы. Егер серверіңіз тек ECDHE жиынтықтарымен келіссе, DH файлы қосымша күш емес, өлі салмақ.
Екінші шарт — басқару арнасын аутентификациялау, яғни өз материалы бар жеке функция. tls-auth файлы екі тарап та ұстайтын ортақ статикалық кілт, ол басқару арнасының пакеттеріне қол қою үшін қолданылады, сондықтан аутентификацияланбаған тарап қол алысуды да аяқтай алмайды. Ақырлы өрісті DH қолдансаңыз да, қолданбасаңыз да ол бар, және топ параметрлеріне қатысы жоқ.
Үшінші шарт — құпиялық және тарату. DH параметрлерін сессияны әлсіретпей-ақ жариялауға болады, себебі құпия мәндер әр қол алысуға жасалады және тараптардан ешқашан шықпайды. Статикалық кілтті жариялауға болмайды: ол екі ұшында бірдей байт, өздігінен ауыспайды, және оны ұстаған кез келген адам басқару арнасының жарамды қолтаңбаларын жасай алады. Бұл екі жауап мүлде басқа ұстау ережелеріне нұсқайды, сондықтан бір файл қоймада тұра алады, екіншісі тұра алмайды.
Әр рөлге дұрыс материал жасаңыз
Директива күтетін пішімді шығаратын құралды қолданыңыз, олардың арасында түрлендіру орнына. OpenVPN 2.6-дағы ортақ кілт үшін генератордың типтелген түрі мақсатты анық көрсетеді.
openvpn --genkey tls-auth ta.keyБұл пәрмен жаңа құпия материал жасайды; ол бар кілтті жөндемейді және тексермейді, ал қайта іске қосу басқа тараптарда жоқ басқа кілт береді. Алынған файлды қажет тараптарға кез келген ортақ құпияға қолданатын арна арқылы көшіріңіз және бағыт конвенциясын бірізді ұстаңыз: tls-auth кезінде бір жақ key-direction 0, екіншісі key-direction 1 қолданады.
DH параметрлері қажет болғанда параметр генерациясынан келеді, кілт генераторынан емес, және нәтиже ашық болса да олардың шығу тегі маңызды. Белгісіз көзден алынған топ ашық болғаны үшін сенімді бола қоймайды; ол әлі де тараптарыңыз келісетін және көлемі мен құрылысы әлсіретпейтін топ болуы керек.
dh none нені білдіреді және нені білдірмейді
dh none тар мағыналы нақты директива: ақырлы өріс параметр файлы жүктелмейді, себебі қол алысу эллипстік қисықтың Diffie-Hellman-ын қолданады. Ол бірдеңені әлсірету мағынасында «DH қадамын өткізіп жібер» деген қысқарту емес және OpenVPN-ге басқа файлды балама ретінде қабылдауды әсте айтпайды.
Қате оқудан екі қате туындайды. Біріншісі — dh none tls-auth қажеттігін жояды деп ойлау, ал екеуі әртүрлі нәрселерді басқарады. Екіншісі — тек қисық конфигурациясының қасында ескірген dh жолын ұстап, сосын сервер шын мәнінде қай файлды қолданады деп таңырқау; директива болса, файл оқылады, ал ондағы бүлінген жол келісілетін алмасуға қатысы жоқ себеппен іске қосылуды сәтсіз етеді.
Егер қате файл әлдеқашан орналастырылған болса
Профиль иесінен көзделген құпияны қалпына келтіріңіз және сол кезде сертификат тексеруіне тиіспеңіз. Сәтсіздік — пішім сәйкессіздігі, сенім сәтсіздігі емес, ал қатені айналып өту үшін тексеруді өшіру іске қосу мәселесін үнсіз мәселемен алмастырады.
Сосын адамдар біріктіруге бейім екі оқиғаны бөліңіз. DH параметр файлын жариялау қауіпсіз дерлік, себебі параметрлер жобасынан ашық еді. tls-auth кілтін әшкерелеу — басқа оқиға: кілт оны ұстаған әр тарап үшін басқару арнасының пакеттерін аутентификациялайды, сондықтан ауыстыруды бір хостқа қолдану емес, бүкіл орналастыру бойынша үйлестіру керек.
Бес минуттық тексеру қай жағдайда екеніңізді шешеді: әр файлдың бірінші жолын оқыңыз, оған сілтейтін директиваны растаңыз және файлдың таратылуы материалдың талабына сай екенін растаңыз. Бұл жұмыс істеп тұрған PKI-ді қайта жасаудан кішірек, және үш шарт осыған ғана нұсқап отырған.