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

Міф: у VPN адзін гадзіннік

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

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

Чытайце крыніцу раней за значэнне

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

journalctl -o short-iso --utc -n 20
logger -t vpn-check "test event"

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

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

Паказ часавага пояса — не іншы момант

Той самы момант, паказаны як 10:00Z і як 18:00+08:00, не з'яўляецца разыходжаннем, і ставіцца да яго як да такога — марнаваць палову дня. Пераўтварыце абодва ў UTC, перш чым параўноўваць, і трымайце зыходны тэкст побач з пераўтварэннем. Дзесятковая доля з аднаго боку і цэлыя секунды з другога — таксама не канфлікт. Дакладнасць — не правільнасць: значэнне з мілісекундамі ўсё яшчэ можа паходзіць з гадзінніка, які памыляецца на хвіліны.

date -u +%FT%TZ
timedatectl

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

Суппастаўляйце, не перапісваючы доказы

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

chronyc tracking
journalctl --utc -u openvpn-client@work -n 50 --no-pager

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

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

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