Сачыце за VPN-удзельнікамі, не запісваючы, што яны праглядаюць
Даступнасць патрабуе чатырох палёў, а не захопу. Чытайце рукапацісканні і лічыльнікі на дакументаваным інтэрвале, трымайце меткі стабільнымі і задайце правіла захоўвання.
Для маніторынгу VPN-удзельніка патрэбныя чатыры факты, і ні адзін з іх не з’яўляецца пунктам прызначэння. Ці падняты тунэль, калі ён апошні раз абменьваўся трафікам, якія ключы задзейнічаны і колькі прайшло — гэтага дастаткова для даступнасці. Усё звыш гэтага — запіс пра чалавека, і гэта павінна быць усвядомленым рашэннем, а не пабочным эфектам адкрыцця старонкі стану. Пачніце з пытання, на якое трэба адказаць, затым выберыце найменшы вывад, які на яго адказвае.
Вызначце пытанне раней за інструмент
Спачатку запішыце аперацыйнае пытанне: ці падключаны гэты ўдзельнік і ці рухае ён трафік? Гэтае пытанне патрабуе жывога прагляду, а жывы прагляд не мае праблемы захоўвання. Другое пытанне — ці быў удзельнік падключаны ў 02:00 у мінулы аўторак — патрабуе захаванага шэрагу і, такім чынам, рашэння аб захоўванні. Падзел гэтых двух і ёсць увесь дызайн, бо жывы прагляд танны, а захаваны шэраг ператвараецца ў размову пра абарону даных.
Трымайце праверку здароўя асобна ад вываду стану. Нядаўняе рукапацісканне даказвае, што тунэль дамовіўся, а не што прыватная праграма за ім працуе, таму правярайце праграму праз дазволеную праверку, а не выводзіце гэта з лічыльнікаў. Калі праверка не ўдаецца, а рукапацісканне нядаўняе, праблема знаходзіцца за тунэлем.
Чытайце тры палі, якія на яго адказваюць
Звычайны вывад стану WireGuard змяшчае інтэрфейс, публічны ключ, канчатковы пункт, апошняе рукапацісканне і лічыльнікі перадачы. Для прысутнасці патрэбныя публічны ключ і апошняе рукапацісканне; пры неабходнасці дадайце байтавыя лічыльнікі, каб бачыць рух. Канчатковы пункт не патрэбны для прысутнасці і першым падлягае выдаленню, бо ён паказвае, адкуль падключаецца прылада. Старонка дапаможніка апісвае кожнае поле, якое друкуе інструмент, і яна дастаткова кароткая, каб прачытаць яе аднойчы:
wg show
wg show wg0 latest-handshakes
Чытайце гэтыя лікі як узрост, а не як булевыя значэнні. Рукапацісканне актуальнае толькі адносна ўласнага інтэрвалу перазамены ключоў пратаколу, а лічыльнік, які не зрушыўся, можа азначаць прастойваючага ўдзельніка, а не зламанага. Трымайце абодва ў адным праглядзе, каб узрост і рух чыталіся разам.
Выберыце інтэрвал, які можаце абараніць
Кожная выбарка стану — гэта запіс, таму інтэрвал — гэта рашэнне аб захоўванні ў маскіроўцы маніторынгу. Выбарка раз у дзесяць секунд дае дробныя дэталі і множыць захаваныя радкі, а выбарка раз у хвіліну звычайна дастатковая для даступнасці пры шостай частцы выдаткаў. Выбірайце інтэрвал зыходзячы з часу водгуку, які вы абяцалі, а не з таго, што можа інструмент. Затым запішыце лік побач з панэллю.
Для OpenVPN сродак стану запісвае файл праз зададзены інтэрвал. У канфігурацыі сервера гэта выглядае так status /var/log/openvpn-status.log 60, дзе лік у канцы — секунды паміж перазапісамі, і файл замяняецца, а не дапаўняецца. Гэтая дэталь важная: заменены файл не мае гісторыі, а зборшчык, які дапаўняе яго, стварае гісторыю.
Пераканайцеся, што зборшчык таксама паважае інтэрвал. Інструмент, які бярэ выбарку кожную секунду і захоўвае адзін радок у хвіліну, усё роўна чытае кожную секунду.
Трымайце меткі стабільнымі, а супастаўленне абмежаваным
Публічны ключ ідэнтыфікуе сувязь прылад, нават калі імя не далучана, таму стаўцеся да ключа як да персанальных даных, а не як да непразрыстага ідэнтыфікатара. Пазначайце ўдзельнікаў стабільнымі ўнутранымі ідэнтыфікатарамі, якія перажываюць перападключэнні, і трымайце супастаўленне ідэнтыфікатара з чалавекам у абмежаваным месцы. Панэль, якая запісвае часовы шэраг, з’яўляецца захаваным запісам, нават калі VPN не трымае ўласнага файла. Калі панэль — адзінае сховішча, менавіта да панэлі прымяняецца правіла захоўвання.
Перагледзьце і шлях экспарту, бо скапіяваны CSV жыве даўжэй за сістэму, якая яго стварыла. Абагуленая даступнасць часта дастатковая для справаздачы: доля ўдзельнікаў з рукапацісканнем унутры акна адказвае на аперацыйнае пытанне, не пералічваючы, хто і калі быў падключаны.
Задакументуйце, што вы збіраеце і чаго не
Апішыце збор простымі словамі: якія палі, з якога інтэрфейсу, праз які інтэрвал, дзе захоўваюцца, колькі захоўваюцца і хто можа іх чытаць. Змясціце гэта побач з runbook, а не ў сховішча палітык, якое ніхто не адкрывае падчас інцыдэнту. Апісанне павінна таксама сказаць, чаго маніторынг не бачыць, бо менавіта гэта не дае камусьці меркаваць, што адсутнасць даных прагляду азначае адсутнасць запісаў.
Пераглядайце акно захоўвання кожны раз, калі маніторынг змяняецца, бо новае поле ціха пашырае тое, што захоўваецца. Затым выдаліце тое, што апісанне кажа выдаліць, і праверце, што выдаленне сапраўды адбылося.