tls-auth катасы адатта кол алышуу көйгөйү катары билдирилет, бирок ал эч качан андай болгон эмес. HMAC кандайдыр бир TLS иштетүү башталганга чейин эле башкаруу пакетинде текшерилет, ошондуктан дал келбеген ачкыч же багыт сертификат көйгөйүнө окшош жана эки катмар мурун чечилүүчү ката жаратат. Конвертти өзүнчө объект катары кароо диагностиканы кыскартат: талааларды окуңуз, текшерүү эрте иштешин ырастаңыз, анан эки тарап макул болушу керек болгон үч нерсени салыштырыңыз.

Конвертти курулуу тартибинде окуңуз

Башкаруу пакети сессия идентификаторун, милдеттүү эмес tls-auth HMAC-ын, кайталоо жана ырастоо маалыматын жана ишенимдүү билдирүү идентификаторун алып жүрөт, андан кийин билдирүү түрүнүн жүгү келет. Билдирүү кол алышуу билдирүүсү болгондо, жүгү TLS шифрленген текст болуп калат. Бүт байланыш ушундай: TLS материалы конверт коргоп турган билдирүүнүн ичинде жүрөт. Караңыз OpenVPN тармактык протоколунун маалымдамасы башкаруу каналынын талааларын ушундай тартипте тизет.

Ишенимдүүлүк катмарын криптография менен чаташтыруу оңой. Ырастоолор, кайра жөнөтүү жана билдирүү идентификатору башкаруу билдирүүлөрү ишенимсиз ташуу аркылуу бир жолу жана тартипте жетүү үчүн бар. Алар аутентификация эмес жана туура билдирүү идентификатору пакетти ким жөнөткөнү тууралуу эч нерсени далилдебейт.

Бул топтоону түшүнүк катары кармаңыз. Бул байт тартибинин диаграммасы эмес жана тегди эсептөө үчүн жетишсиз, анткени HMAC-ка кирген талаалар ишке ашырууга, версияга жана режимге көз каранды.

Текшерүү кол алышуудан мурун иштешин көрсөтүңүз

Жалпы ачкычы бар кабыл алуучу HMAC-ты текшерип, жасалма пакетти дароо ыргыта алат, кол алышуу абалын бөлбөстөн жана ачык ачкыч ишин аткарбастан. Коргоо баштапкы кол алышуу пакеттерин да камтыйт, ошондуктан туура эмес ачкыч кеч аутентификация катасы катары эмес, ийгиликсиз туташуу катары көрүнөт.

Демондун кенендигин жогорулатып, tun түзмөгүнүн ордуна башкаруу каналын байкаңыз:

openvpn --config /etc/openvpn/server.conf --verb 6

Сиз издеп жаткан нерсе — башкаруу каналынын HMAC текшерүү катасы, ал пакет деңгээлинде, кандайдыр бир TLS эскертүүсүнөн мурун билдирилет. Журналда TLS эскертүүсү конверт кабыл алынганын жана ката ичке жылганын билдирет, бул башка чечими бар башка иликтөө.

Багытты иштетүү да ушунда. Статикалык ачкыч файлы tls-auth менен колдонулганда, эки тарап карама-каршы ачкыч багыттарын алат жана протокол бул бөлүнүштү кармалган пакетти жөнөтүүчүгө кайтарып чагылдырууга болбой тургандай пайдаланат. Багытты тескери буруу ачкычты ошол эле бойдон калтырат жана баары бир ар бир пакет ийгиликсиз болот. Бир убакта бир тарапты өзгөртүңүз, анан жуп бирге жүктөлүшү үчүн эки демонду тең кайра иштетиңиз.

Эки тарапта ачкычты, багытты жана digest-ти дал келтириңиз

Үч маани дал келиши керек жана алардын бирөө гана файл. Статикалык ачкычтын мазмуну эки тарапта бирдей болушу керек, багыт карама-каршы болушу керек, ал эми HMAC үчүн колдонулган digest дал келиши керек. Ачкыч материалына тийиштен мурун конфигурацияны текшериңиз, анткени бир тескери багыт бузулган файлдан көбүрөөк катаны түшүндүрөт:

grep -E 'tls-auth|tls-crypt|key-direction|auth ' /etc/openvpn/server.conf

Жалпы сырды редактор менен эмес, курал менен түзүңүз жана укуктарды катуу кармаңыз:

openvpn --genkey secret /etc/openvpn/ta.key
chmod 600 /etc/openvpn/ta.key

Эски версиялар ачкыч түзүү үчүн бир аз башка параметрлер тартибин кабыл алган жана ошол версиялар үчүн жазылган профилдер азыр да жүрүүдө. Түзүлгөн файл эки учурда тең бир типтеги объект, ошондуктан текшерүү — эки тарапта бирдей байттар барбы, аларды кайсы жазуу түзгөнү эмес.

tls-auth-ты tls-crypt менен чаташтырбаңыз. Экөө тең башкаруу каналын коргойт, бирок tls-crypt аны кошумча шифрлайт жана кол алышууну байкоочулардан жашырат, жана багыт бөлүнүшүн өзүнүн ачкыч иштетүүсү менен алмаштырат. Бирөөнү колдонгон профиль экинчисине конфигурацияланган өнөктөш менен иштебейт жана digest-ти жөндөө бул ажырымды жаббайт.

Тегди тек чыныгы форматтан кайра жаратыңыз

Байтка чейин так кайра жаратуу VPN жүргүзүүдөн өзүнчө милдет жана ал тек чыныгы киргизүүлөр менен иштейт: пакетти курган ишке ашыруу жана версия, тандалган digest, багыт жана сессия идентификатору менен ырастоолор массивин кошкондо чыныгы байттар. Талаалар тизмесинин тексттик сүрөттөлүшү — ал байттар эмес.

Тегдин узундугу digest-тен келип чыгат, ошондуктан туруктуу узундук божомолу аны бирөө өзгөрткөн учурда бузулат. Пакетти ишке ашыруу жасагандай хэштеңиз, блог жазуусундагы таблица сунуштагандай эмес, жана кол менен чыгарган күтүү менен эмес, ошол эле өнөктөштөн алынган жазуу менен салыштырыңыз.

Бул көнүгүүнү өндүрүштүк профилдерден алыс кармаңыз. Тегди кайра жаратууда жайылтуу коргоону күйгүзүшү керекпи — бул тууралуу эч нерсе айтылбайт.

Коргоону алып салбастан дал келбестикти артка кайтарыңыз

Кызыктырган сынак — tls-auth-ты өчүрүп, туташуу ийгиликтүү болгонун көрүп, ачкыч туура эмес болгон деп жыйынтыктоо. Бул жооп коргоону жоготот жана үч маанинин кайсынысы дал келбегенин үйрөтпөйт. Анын ордуна сервер тарабынан бекитилген дал келүүчү конфигурацияны алып, ошону менен салыштырыңыз.

Өзгөртүүнү кайтарыла тургандай даярдаңыз. Мурунку сервер конфигурациясын жана ачкыч файлын сактаңыз, оңдолгон жупту колдонуңуз, кардар кол алышууну бүтүрөрүн текшериңиз, анан гана камдык көчүрмөнү жок кылыңыз. Эгер өзгөртүүдөн кийин кардарлар ийгиликсиз болсо, үзгүлтүк учурунда үчүнчү вариантты ойлоп таппай, мурунку файлдарды калыбына келтириңиз. Калыбына келтирүү — баштоодон мурун эле билген бир буйрук болушу керек.

Акырында, өткөн текшерүү эмнени билдирерин эстеңиз. Ал өнөктөштүн жалпы ачкычы бар экенин далилдейт, анын сертификаты же эсеби уруксат берилгенин эмес, жана ал келишилген маалымат каналынын шифри тууралуу эч нерсе айтпайт. Авторизация жана маалыматты коргоо кийинчерээк орнотулат, ошондуктан конверттин таза текшерүүсү — баштапкы чекит, өкүм эмес.

Тектеш макалалар