Тое ж імя файла ca.crt, іншы сертыфікат: што параўноўваць
Два профілі могуць пастаўляцца з ca.crt рознага змесціва. Здыміце адбітак таго, што загружае працэс, затым праверце, ці гэта той якар даверу, які вы мелі на ўвазе.
Два профілі абодва пастаўляюць файл з імем ca.crt, адзін тунель падымаецца, а другі падае з памылкай ланцуга. Адкрыццё двух файлаў побач рэдка вырашае гэта, а адключэнне праверкі вырашае гэта ў няправільным кірунку. Пытанне, якое насамрэч ставіць памылка, вузчэйшае: які сертыфікат кожны працэс загружае як свой якар даверу і ці два гэта адзін аб’ект? Адкажыце на гэта спачатку, і ў астатняй дыягностыкі з’явіцца кірунак. Імя файла — гэта этыкетка ўпакоўкі, а шлях, запісаны ў профілі, таксама не аўтарытэтны, таму ўсё залежыць ад таго, што працэс фактычна чытае.
Знайдзіце сертыфікат, які кліент фактычна загружае
OpenVPN прымае цэнтр сертыфікацыі ў дзвюх формах, і форма вызначае, якія байты маюць значэнне. Профіль можа паказваць на знешні файл праз ca або ўбудаваць сертыфікат у блок <ca> у самім профілі. Калі існуюць абодва, перамагае ўбудаваны блок, і файл побач з профілем ніколі не адкрываецца.
Прачытайце збойны профіль і высветліце, якую форму ён выкарыстоўвае, перш чым нешта параўноўваць. Копія, узятая з суседняга каталога або з пакета, адкуль прыйшоў іншы профіль, нічога не кажа пра тое, чаму давярае гэты працэс. Тое ж датычыцца шляху ў канфігурацыі: ён разлічваецца адносна таго месца, дзе быў запушчаны кліент, а гэта не заўсёды каталог, на які вы глядзіце. Чытайце профіль, а не каталог.
Сертыфікаты вызначаюцца сваім змесцівам: публічны ключ, суб’ект і выдавец, тэрмін дзеяння і подпіс над усім гэтым. Два файлы з аднолькавымі байтамі — гэта адзін сертыфікат, як бы яны ні называліся, а два файлы з аднолькавым імем могуць быць незвязанымі цэнтрамі. Імя — гэта этыкетка ўпакоўкі, а не ідэнтычнасць.
Здыміце адбітак абодвух копій з дапамогай openssl
Адбітак — гэта хэш над DER-кадаваннем сертыфіката, формай, якую пакрывае подпіс, таму канчаткі радкоў і тэкст загалоўка не могуць на яго паўплываць. Вылічыце яго для кожнага файла, і вы атрымаеце два шаснаццатковых радкі, падзеленыя двукроп’ем, якія або супадаюць, або не. Нічога іншага ў сертыфікаце чытаць не трэба, каб адказаць на пытанне параўнання.
openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256
Спакусліва накіраваць openssl на сам профіль, але ён чытае першы блок сертыфіката, які сустракаецца ў файле, а профіль звычайна змяшчае <cert> перад <ca>. Вымайце блок цэнтра, затым здыміце адбітак вынятага файла, бо гэта копія, якую кліент фактычна выкарыстае.
sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256
Аднолькавыя адбіткі азначаюць, што матэрыял даверу той жа, і памылка ланцуга мае іншую прычыну, а гэта іншае расследаванне. Розныя адбіткі азначаюць розныя сертыфікаты, і менавіта тут пачынаецца наступны раздзел.
Прачытайце неадпаведнасць, перш чым меркаваць пра атаку
Розныя адбіткі азначаюць розныя сертыфікаты і больш нічога. Перавыданне, ратацыя, перайменаваны цэнтр або састарэлы набор — усё гэта стварае розныя файлы з цалкам законнымі гісторыямі. Які з іх належыць разгортванню — пытанне да аператара або запісу разгортвання, а не да часу змянення файла. Архівы капіююць часовыя меткі, таму больш новы файл не абавязкова правільны якар.
Корань, які падпісвае сябе, — гэта нармальна, таму знаходжанне такога не з’яўляецца доказам праблемы. Задача правяральніка — пабудаваць шлях ад сертыфіката сервера да якара, які яму далі, і памылка ланцуга звычайна азначае, што гэты шлях не ўдалося завяршыць.
Праверце, ці якар збойнага профіля — гэта цэнтр, з якога разгортванне ўсё яшчэ выдае сертыфікаты. Калі адбітак не супадае ні з чым у запісе разгортвання, профіль проста састарэлы, і ніякая наладка на баку кліента гэтага не выправіць.
Аднавіце давер, не адключаючы праверку
Кароткатэрміновае рашэнне — адключыць праверку або дадаць кожны сертыфікат у ланцугу як якар. Абодва прыбіраюць паведамленне, і абодва змяняюць тое, якія серверы кліент будзе прымаць з гэтага часу. Уключыце праверку зноў, усталюйце патрэбны якар і паўторна пратэстуйце.
Калі ланцуг цяпер будуецца, але з’яўляецца іншая памылка, гэта прагрэс: праверка імя, даты дзеяння і адкліканне — гэта асобныя праверкі з асобнымі паведамленнямі. Трымайце пару адбіткаў і арыгінальны тэкст памылкі разам у заяўцы, каб наступны чалавек бачыў, які якар быў загружаны і які чакаўся. Пара адбіткаў дастаткова малая, каб уставіць яе ў запіску пра перадачу, і наступны выпадак тады зойме пяць хвілін замест паловы дня.
Атрымайце правільны цэнтр праз той самы аўтэнтыфікаваны канал, які даставіў профіль. Сцягванне сертыфіката з сервера таму, што яго суб’ект выглядае знаёма, — гэта іншае дзеянне, і яно ціха пашырае тое, чаму кліент будзе давяраць.