Ключ, які даказвае, што ваш шлюз — гэта ён сам, і ўліковыя даныя, якія сцвярджаюць, што чалавек можа далучыцца, — абодва сакрэты, і менавіта тут падабенства сканчаецца. Адзін прадстаўляе сэрвіс кожнаму кліенту; другі прадстаўляе аднаго карыстальніка гэтаму сэрвісу. Змешванне эканоміць крок пры наладзе і каштуе паўдня падчас інцыдэнту, бо аднаўленне для кожнага — не тая ж аперацыя. Падзел нудны ў наладзе і запамінаецца, калі яго прапусціць.

Два сакрэты, два розныя ўласнікі

Шлюз захоўвае прыватны ключ або сертыфікат, адзіная задача якога — даказаць сваю ідэнтычнасць падчас рукапаціску. Кліентам патрэбны адпаведны публічны матэрыял, каб праверыць яго, і прыватная палова ім не патрэбная ніколі. Менавіта гэтая асіметрыя робіць магчымай аўтэнтыфікацыю сервера без перадачы кожнаму карыстальніку здольнасці выдаваць сябе за сервер.

Матэрыял карыстальніка — гэта іншы кірунак. Прыватны ключ кліента, кліенцкі сертыфікат або пароль паказваюць, што менавіта гэтаму чалавеку або прыладзе быў выдадзены доступ. Меркавана яго раздаюць, капіруюць паміж прыладамі і ўрэшце адклікаюць.

WireGuard робіць падзел відавочным, бо кожны ўдзельнік мае пару ключоў: прыватны ключ сервера застаецца на серверы, а файл канфігурацыі, які вы даяце карыстальніку, змяшчае яго ўласны прыватны ключ плюс публічны ключ сервера. Профіль, які змяшчае прыватны ключ сервера, — гэта не хуткі шлях, а кампраметацыя, якая чакае файлавага абмену.

Тры пытанні, якія вызначаюць падзел

Спытайце, хто павінен мець магчымасць чытаць сакрэт, што ўцечка дазволіць зрабіць зламысніку і ці з'яўляецца выпраўленне адным адкліканнем або перабудовай сэрвісу.

Калі карыстальнік можа яго прачытаць і ён даказвае ідэнтычнасць шлюза, адказ на другое пытанне — зламыснік можа выдаваць сябе за ваш сервер перад кожным кліентам, што з'яўляецца найгоршым вынікам, бо кліенты створаны давяраць гэтай ідэнтычнасці. Калі ён даказвае толькі аднаго карыстальніка, уцечка дае доступ гэтага карыстальніка да аднаго партнёра, і адкліканне — рутынная аперацыя. Калі гэта ключ цэнтра сертыфікацыі, уцечка горш за абодва, бо зламыснік можа ствараць ідэнтычнасці, якім давярае кожны вузел.

Гэтыя тры адказы даюць правіла захоўвання: ключ CA жыве афлайн або ў сховішчы, ключ шлюза жыве на шлюзе, а ключы карыстальнікаў жывуць у карыстальнікаў. Любая схема, якая змяшчае ўсе тры ў адной папцы дзеля зручнасці, ператварыла рашэнне ў выпадак.

Што насамрэч патрэбна кліенту

Кліенту патрэбны публічны сертыфікат або публічны ключ партнёра, матэрыял CA або адбітак, якому ён павінен давяраць, яго ўласны прыватны ключ і звесткі пра канчатковы пункт. У гэтым спісе няма нічога, што належыць прыватнай ідэнтычнасці шлюза.

Менавіта ў дакументацыі гэта і ўцякае. Кіраўніцтва, якое кажа скапіяваць каталог сервера і выдаліць тое, што вам не патрэбна, ужо навучыла няправільнай мадэлі, бо файл, які застаецца пасля кроку выдалення, рэдка хто правярае.

Адклічце аднаго карыстальніка, не чапаючы шлюз

Паколькі ідэнтычнасці карыстальнікаў выдаюцца асобна, іх можна асобна і забіраць. Разгортванне на аснове сертыфікатаў адклікае кліенцкі сертыфікат і публікуе абноўлены спіс адклікання; разгортванне WireGuard выдаляе запіс партнёра з канфігурацыі сервера. Ні адна з гэтых аперацый не змяняе ўласны ключ шлюза.

Захоўвайце запіс аб выдачы, інакш вы не даведаецеся, якую ідэнтычнасць забіраць. Электронная табліца дастатковая, калі ў ёй названы чалавек, прылада, серыйны нумар або публічны ключ і дата, і калі нехта валодае ёй пасля сыходу чалавека, які яе стварыў.

Каманды ніжэй правяраюць кліенцкі сертыфікат, а затым адклікаюць яго праз цэнтр у стылі OpenSSL, і менавіта гэты працэс абгортвае easy-rsa:

openssl x509 -in client.crt -noout -subject -serial
openssl ca -config openssl.cnf -revoke client.crt
openssl ca -config openssl.cnf -gencrl -out crl.pem

Апублікуйце новы спіс там, дзе кліенты яго правяраюць, інакш адкліканне — гэта запіска ў файле, якая нічога не змяняе. Калі ваш шлюз прымае кліенцкія сертыфікаты, не звяртаючыся да спісу адклікання, скажыце пра гэта адкрыта, а не намякайце, што адкліканне працуе.

Трымайце рэзервовыя копіі так жа асобна, як і сакрэты

Архіў для перабудовы цалкам законна змяшчае ключ шлюза і матэрыял CA, бо без іх аднаўленне не можа аднавіць сэрвіс. Пакет налады кліента не павінен іх змяшчаць, і два гэтыя нельга захоўваць разам. Пазначайце кожны архіў па тым, хто можа яго трымаць, а не па даце стварэння. Менавіта гэтую пазнаку чытае стомлены адміністратар у другой гадзіне ночы.

Гэтае размежаванне таксама вызначае, хто можа атрымаць кожны з іх. Кіраванне шлюзам, выдача ідэнтычнасцяў карыстальнікаў і чытанне рэзервовых копій — гэта тры розныя паўнамоцтвы, і чалавеку, якому патрэбна адно, не абавязкова патрэбныя іншыя. Запішыце гэтыя дазволы, а затым праверце іх супраць таго, што насамрэч дазваляе вашае сховішча, бо ўспадкоўванне каталогаў моўчкі дае больш, чым мае на ўвазе палітыка.

Падобныя артыкулы