څنګه ډاډ ترلاسه کړئ چې هر وخت دروغ نه وي که تاسو یو ملیون لوی او کوچني وسایل لرئ چې د TCP/IP له لارې اړیکه لري؟ په هرصورت، هر یو ساعت لري، او وخت باید د ټولو لپاره سم وي. دا ستونزه د ntp پرته نشي حل کیدی.
راځئ چې د یوې دقیقې لپاره تصور وکړو چې د صنعتي IT زیربنا په یوه برخه کې د وخت په تیریدو سره د خدماتو همغږي کولو کې ستونزې شتون لري. سمدلاسه د تصدۍ سافټویر کلستر سټیک ناکامیدل پیل کوي ، ډومینونه منحل کیږي ، ماسټران او سټینډ بای نوډونه ناکامه هڅه کوي چې د حالت حالت بحال کړي.
دا هم ممکنه ده چې برید کوونکی په قصدي توګه د MiTM یا DDOS برید له لارې د وخت ګډوډولو هڅه وکړي. په داسې حالت کې، هرڅه کیدی شي:
- د کارونکي حساب پاسورډونه به پای ته ورسیږي؛
- د X.509 سندونه به پای ته ورسیږي؛
- د TOTP دوه فکتور تصدیق به کار ودروي؛
- بیک اپ به زوړ شي او سیسټم به یې حذف کړي؛
- DNSSEc به مات شي.
دا روښانه ده چې د معلوماتي ټکنالوجۍ هره څانګه د وخت همغږي کولو خدماتو معتبر عملیاتو سره علاقه لري ، او دا به ښه وي که دوی په صنعتي عملیاتو کې د باور وړ او خوندي وي.
NTP په 25 دقیقو کې مات کړئ
د شبکې پروتوکولونه - زریزې یو ځانګړتیا لري، دوی دي او نور د هیڅ شی لپاره ښه ندي، مګر د دوی ځای په ځای کول دومره اسانه ندي حتی کله چې د لیوالتیا او تمویل خورا مهم ډله راټولیږي.
د کلاسیک NTP په اړه اصلي شکایت د نفوذي لخوا د بریدونو پروړاندې د ساتنې لپاره د باور وړ میکانیزم نشتوالی دی. د دې ستونزې د حل لپاره بېلابېلې هڅې شوې دي. د دې د ترلاسه کولو لپاره، موږ لومړی د مخکینۍ شریک شوي کیلي (PSK) میکانیزم پلي کړ چې د سیمال کیلي تبادلې لپاره.
له بده مرغه، دا طریقه د ساده دلیل لپاره پیسې نه ورکوي - دا ښه اندازه نه کوي. لارښود ترتیب د پیرودونکي اړخ ته د سرور پورې اړه لري. دا پدې مانا ده چې تاسو په ساده ډول نشئ کولی بل پیرودونکي ورته ورته اضافه کړئ. که چیرې د NTP سرور کې یو څه بدلون ومومي، ټول پیرودونکي باید بیا تنظیم شي.
بیا دوی د AutoKey سره راغلل، مګر دوی سمدلاسه د الګوریتم په ډیزاین کې یو شمیر جدي زیانونه وموندل او دوی یې پریښودل. خبره دا ده چې تخم یوازې 32 بټونه لري، دا خورا کوچنی دی او د مخکینۍ حملې لپاره کافي کمپیوټري پیچلتیا نلري.
- کلیدي ID - سمیټریک 32-bit کیلي؛
- MAC (د پیغام تصدیق کوډ) - د NTP پاکټ چیکسم؛
Autokey په لاندې ډول محاسبه کیږي.
Autokey=H(Sender-IP||Receiver-IP||KeyID||Cookie)چیرته چې H() د کریپټوګرافیک هش فعالیت دی.
ورته فنکشن د پاکټونو چیکسم محاسبه کولو لپاره کارول کیږي.
MAC=H(Autokey||NTP packet)دا معلومه شوه چې د کڅوړې چک بشپړتیا د کوکیز په صداقت پورې اړه لري. یوځل چې تاسو یې ولرئ ، تاسو کولی شئ آټوکی بحال کړئ او بیا MAC سپو کړئ. په هرصورت، د NTP سرور یو تخم کاروي کله چې دوی تولیدوي. دا هغه ځای دی چې کیچ پروت دی.
Cookie=MSB_32(H(Client IP||Server IP||0||Server Seed))د MSB_32 فنکشن د md5 هش محاسبې پایلې څخه 32 خورا مهم بټونه پرې کوي. د پیرودونکي کوکي تر هغه وخته نه بدلیږي چې د سرور پیرامیټونه بدل شوي نه وي. بیا برید کونکی کولی شي یوازې لومړنۍ شمیره بحال کړي او په خپلواکه توګه کوکیز تولید کړي.
لومړی، تاسو اړتیا لرئ د پیرودونکي په توګه د NTP سرور سره وصل شئ او کوکیز ترلاسه کړئ. له دې وروسته، د وحشي ځواک میتود په کارولو سره، برید کوونکی د ساده الګوریتم په تعقیب لومړنۍ شمیره بیرته راولي.
الګوریتم د بریټ ځواک میتود په کارولو سره د لومړني شمیرې محاسبې برید کولو لپاره.
for i=0:2^32 − 1 do
Ci=H(Server-IP||Client-IP||0||i)
if Ci=Cookie then
return i
end if
end forد IP پتې معلومې دي، نو ټول هغه څه چې پاتې دي د 2^32 هشونو جوړول دي تر هغه چې جوړ شوی کوکی د NTP سرور څخه ترلاسه شوي سره سمون نه خوري. د Intel Core i5 سره په منظم کور سټیشن کې، دا به 25 دقیقې وخت ونیسي.
NTS - نوی آټوکی
دا ناشونې وه چې په Autokey کې د داسې امنیتي سوراخونو سره مخ شو، او په 2012 کې ښکاره شو پروتوکول د نوم سره موافقت کولو لپاره ، دوی پریکړه وکړه چې بیا برانډ کړي ، نو د آټوکي v.2 د شبکې وخت امنیت په نوم یاد شو.
د NTS پروتوکول د NTP امنیت توسیع دی او دا مهال یوازې د یونیکاسټ حالت ملاتړ کوي. دا د پاکټ لاسوهنې پروړاندې قوي کریپټوګرافیک محافظت چمتو کوي ، د سپړلو مخه نیسي ، ښه اندازه کوي ، د شبکې پاکټ له لاسه ورکولو لپاره انعطاف لري ، او د اتصال امنیت په جریان کې د دقیق مقدار ضایع کیدو پایله لري.
د NTS اتصال دوه مرحلې لري چې د ټیټ پرت پروتوکولونه کاروي. پر لومړی پدې مرحله کې، پیرودونکي او سرور د مختلف پیوستون پیرامیټونو سره موافق دي او کوکیز تبادله کوي چې کیلي لري د ټولو اړوندو ډیټا سیټ سره. پر دوهم په دې مرحله کې، اصلي خوندي شوي NTS ناسته د پیرودونکي او NTP سرور ترمنځ ترسره کیږي.

NTS د دوه ټیټ پوړ پروتوکولونو څخه جوړ دی: د شبکې وخت امنیت کیلي تبادله (NTS-KE)، کوم چې د TLS، او NTPv4 په اړه خوندي اړیکه پیل کوي، د NTP پروتوکول وروستی شکل. لاندې په دې اړه یو څه نور.
لومړی پړاو - NTS KE
پدې مرحله کې، د NTP پیرودونکی د TLS 1.2/1.3 سیشن د NTS KE سرور سره د جلا TCP پیوستون په اړه پیل کوي. د دې غونډې په جریان کې لاندې پیښې کیږي.
- ګوندونه پارامترونه ټاکي د دوهم پړاو لپاره الګوریتم.
- ګوندونه د دویم ټیټ پوړ پروتوکول تعریفوي، مګر دا مهال یوازې NTPv4 ملاتړ کیږي.
- ګوندونه د NTP سرور IP پته او بندر ټاکي.
- د NTS KE سرور د NTPv4 لاندې کوکیز مسله کوي.
- ګوندونه د کوکي موادو څخه یو جوړه سمیټریک کیلي (C2S او S2C) استخراجوي.
دا طریقه لویه ګټه لري چې د اتصال پیرامیټونو په اړه د پټو معلوماتو لیږد ټول بار په ثابت او باوري TLS پروتوکول باندې راځي. دا د خوندي NTP لاسي شیک لپاره ستاسو د خپل څرخ بیا رامینځته کولو اړتیا له مینځه وړي.
دوهم پړاو - NTP د NTS محافظت لاندې
په دویمه مرحله کې، پیرودونکي په خوندي توګه وخت د NTP سرور سره همغږي کوي. د دې هدف لپاره، دا د NTPv4 پیکټ جوړښت کې څلور ځانګړي توسیعونه (د توسیع ساحې) لیږدوي.
- د ځانګړي پیژندونکي توسیع د بیا پیلیدو بریدونو مخنیوي لپاره تصادفي نانس لري.
- د NTS کوکي توسیع یو د NTP کوکیز لري چې پیرودونکي ته شتون لري. ځکه چې یوازې پیرودونکي سمیټریک AAED C2S او S2C کیلي لري، د NTP سرور باید دوی د کوکی موادو څخه راوباسي.
- د NTS کوکي پلیس هولډر توسیع د پیرودونکي لپاره یوه لاره ده چې له سرور څخه اضافي کوکیز غوښتنه وکړي. دا تمدید اړین دی ترڅو ډاډ ترلاسه شي چې د NTP سرور ځواب د غوښتنې څخه ډیر اوږد نه دی. دا د امپلیفیکیشن بریدونو مخنیوي کې مرسته کوي.
- د NTS تصدیق کونکی او د کوډ شوي تمدید ساحې توسیع د AAED سیفر د C2S کیلي سره لري، د NTP سرلیک، ټایمسټمپونه، او پورته EF د معلوماتو په توګه. د دې تمدید پرته دا ممکنه ده چې د ټایم سټیمپونو غلا کول.

د پیرودونکي څخه د غوښتنې په ترلاسه کولو سره، سرور د NTP پاکټ اعتبار تاییدوي. د دې کولو لپاره، هغه باید کوکیز ډیکریټ کړي، د AAED الګوریتم او کیلي استخراج کړي. د اعتبار لپاره د NTP پاکټ په بریالیتوب سره چک کولو وروسته، سرور په لاندې شکل کې پیرودونکي ته ځواب ورکوي.
- د ځانګړي پیژندونکي توسیع د پیرودونکي غوښتنې عکس کاپي ده ، د بیا چلولو بریدونو پروړاندې یو اقدام.
- د غونډې د دوام لپاره د NTS کوکیز نور کوکیز غزول.
- د NTS تصدیق کونکی او د کوډ شوي توسیع ساحې توسیع د AEAD سیفر د S2C کیلي سره لري.
دوهم لاس اخستل د لومړي ګام په تیریدو سره ډیری ځله تکرار کیدی شي ، ځکه چې هره غوښتنه او ځواب پیرودونکي ته اضافي کوکیز ورکوي. دا ګټه لري چې د PKI ډیټا د کمپیوټري کولو او لیږدولو نسبتا سرچینې - ژور TLS عملیات د تکراري غوښتنو شمیر سره ویشل شوي. دا په ځانګړي توګه د ځانګړي FPGA وخت ساتونکو لپاره مناسب دی ، کله چې ټول اصلي فعالیت د سمیټریک کریپټوګرافي ساحې څخه په څو افعالو کې بسته بندي کیدی شي ، د TLS سټیک بل وسیلې ته لیږدوي.
NTPSec
د NTP په اړه څه ځانګړی دی؟ د دې حقیقت سره سره چې د پروژې لیکوال، ډیو ملز هڅه وکړه چې د امکان تر حده خپل کوډ مستند کړي، دا یو نادر پروګرامر دی چې د وخت د همغږۍ الګوریتمونو پیچلتیاو باندې پوهیدلو توان به ولري چې 35 کاله عمر لري. ځینې کوډونه د POSIX دورې دمخه لیکل شوي و، او د یونیکس API بیا د هغه څه څخه خورا توپیر درلود چې نن ورځ کارول کیږي. برسېره پردې، د احصایې پوهې ته اړتیا ده ترڅو سیګنال د شور په لیکو کې د مداخلې څخه پاک کړي.
NTS د NTP د سمولو لومړۍ هڅه نه وه. یوځل چې برید کونکي د DDoS بریدونو پراخولو لپاره د NTP زیانونو څخه ګټه پورته کول زده کړل، دا څرګنده شوه چې بنسټیز بدلون ته اړتیا وه. او په داسې حال کې چې د NTS مسودې چمتو او نهايي شوې وې، د 2014 په پای کې د متحده ایالاتو ملي ساینس بنسټ په عاجل ډول د NTP عصري کولو لپاره یوه مرسته ځانګړې کړه.
د کاري ډلې مشري یوازې د چا لخوا نه وه، بلکې - د خلاصې سرچینې ټولنې یو له بنسټ ایښودونکو او ستنو څخه او د کتاب لیکوال . لومړی شی چې ایریک او د هغه ملګرو یې هڅه وکړه چې د NTP کوډ د BitKeeper پلیټ فارم څخه git ته واړوي ، مګر دا پدې لاره کار ونکړ. د پروژې مشر هارلان سټین د دې پریکړې مخالف و او خبرې اترې یې ودرولې. بیا پریکړه وشوه چې د پروژې کوډ فورک کړئ، او NTPSec زیږیدلی و.
قوي تجربه ، پشمول په GPSD کې کار ، د ریاضيیک شالید او د لرغوني کوډ لوستلو جادو مهارت - ایریک ریمونډ واقعیا یو هیکر و چې کولی شي دا ډول پروژه پریږدي. ټیم د کوډ مهاجرت متخصص وموند او یوازې په 10 اونیو کې NTP په GitLab کې. کار په بشپړ ډول روان و.
د ایریک ریمونډ ټیم په ورته ډول دنده ترسره کړه لکه څنګه چې اګسټ روډین د ډبرې د بلاک سره ترسره کړه. د زاړه کوډ د 175 KLOC په لرې کولو سره، دوی توانیدلي چې د ډیری امنیتي سوراخونو په بندولو سره د برید سطح د پام وړ کم کړي.
دلته د هغو کسانو نامکمل لیست دی چې په ویش کې شامل دي:
- غیر مستند، زوړ، زوړ یا مات شوی ریفلاک.
- نه کارول شوی ICS کتابتون.
- libopts/autogen.
- د وینډوز لپاره زوړ کوډ.
- ntpdc.
- اوټوکی
- د ntpq C کوډ په Python کې بیا لیکل شوی.
- sntp/ntpdig C کوډ په Python کې بیا لیکل شوی.
د کوډ پاکولو سربیره، پروژې نورې دندې درلودې. دلته د لاسته راوړنو یو جزوی لیست دی:
- د بفر اوور فلو پروړاندې د کوډ محافظت د پام وړ ښه شوی. د بفر د زیاتیدو د مخنیوي لپاره، ټول ناامنه تار افعال (strcpy/strcat/strtok/sprintf/vsprintf/gets) د خوندي نسخو سره بدل شوي چې د بفر اندازه محدودیت پلي کوي.
- د NTS ملاتړ اضافه شوی.
- د فزیکي هارډویر سره نښلولو سره د وخت ګام دقت لس چنده ښه شوی. دا د دې حقیقت له امله دی چې د عصري کمپیوټر ساعتونه د هغه وخت په پرتله خورا دقیق شوي کله چې NTP زیږیدلی و. د دې ترټولو لوی ګټه اخیستونکي د GPSDO او وقف شوي وخت راډیوګانې وې.
- د پروګرامینګ ژبو شمیر دوه ته راکم شوی دی. د پرل، awk او حتی S سکریپټونو پرځای، دا اوس ټول پایتون دی. د دې له امله، د کوډ بیا کارولو لپاره ډیر فرصتونه شتون لري.
- د اتوماتیک سکریپټونو نوډلونو پرځای، پروژې د سافټویر جوړونې سیسټم کارول پیل کړل .
- د پروژې اسناد تازه او تنظیم شوي. د متناقض او کله ناکله لرغونو اسنادو راټولولو څخه، دوی خورا د منلو وړ اسناد جوړ کړل. هر کمانډ لاین سویچ او هر ترتیب کونکي اداره اوس د حقیقت یو واحد نسخه لري. سربیره پردې، مین پاڼې او ویب اسناد اوس د ورته اصلي فایلونو څخه جوړ شوي.
NTPSec د یو شمیر لینکس توزیعونو لپاره شتون لري. په اوس وخت کې، وروستی باثباته نسخه 1.1.8 دی، د جینټو لینکس لپاره دا حتمي دی.
(1:696)$ sudo emerge -av ntpsec
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] net-misc/ntpsec-1.1.7-r1::gentoo USE="samba seccomp -debug -doc -early -gdb -heat -libbsd -nist -ntpviz -rclock_arbiter -rclock_generic -rclock_gpsd -rclock_hpgps -rclock_jjy -rclock_local -rclock_modem -rclock_neoclock -rclock_nmea -rclock_oncore -rclock_pps -rclock_shm -rclock_spectracom -rclock_trimble -rclock_truetime -rclock_zyfer -smear -tests" PYTHON_TARGETS="python3_6" 0 KiB
Total: 1 package (1 reinstall), Size of downloads: 0 KiB
Would you like to merge these packages? [Yes/No]
کرونی
د یو بل خوندي بدیل سره د زاړه NTP د ځای په ځای کولو بله هڅه وه. Chrony، د NTPSec برعکس، له ځمکې څخه لیکل شوی او ډیزاین شوی چې د ډیرو شرایطو لاندې د اعتبار وړ کار وکړي، په شمول د بې ثباته شبکې اتصال، د شبکې جزوی شتون یا کنجشن، او د تودوخې بدلونونه. سربیره پردې، chrony نورې ګټې لري:
- chrony کولی شي د سیسټم ساعت ګړندی د ډیر دقت سره همغږي کړي؛
- chrony کوچنی دی، لږ حافظه مصرفوي، او یوازې د اړتیا په وخت کې CPU ته لاسرسی لري. دا د سرچینو او انرژي سپمولو لپاره لوی پلس دی؛
- chrony په لینوکس کې د هارډویر ټایم سټیمپونو ملاتړ کوي، په محلي شبکو کې خورا دقیق همغږي کولو ته اجازه ورکوي.
په هرصورت، کرونی د زاړه NTP ځینې ځانګړتیاوې نلري، لکه نشر او ملټي کاسټ مراجع/سرور. سربیره پردې، کلاسیک NTP د لوی شمیر عملیاتي سیسټمونو او پلیټ فارمونو ملاتړ کوي.
د chronyd پروسې ته د سرور او NTP غوښتنلیکونو فعالیت غیر فعالولو لپاره ، یوازې په chrony.conf فایل کې پورټ 0 ولیکئ. دا په هغه قضیو کې ترسره کیږي چیرې چې د NTP پیرودونکو یا همکارانو لپاره د وخت ساتلو ته اړتیا نشته. د 2.0 نسخه راهیسې، د NTP سرور بندر یوازې هغه وخت خلاص دی کله چې لاسرسی د اجازه لیک یا مناسب کمانډ لخوا اجازه ورکړل شي، یا د NTP ملګری ترتیب شوی وي، یا د نشر لارښود کارول کیږي.
برنامه دوه ماډلونه لري.
- chronyd یو خدمت دی چې په شالید کې تیریږي. دا د سیسټم ساعت او بهرني وخت سرور ترمینځ د توپیر په اړه معلومات ترلاسه کوي او ځایی وخت تنظیموي. دا د NTP پروتوکول هم پلي کوي او کولی شي د پیرودونکي یا سرور په توګه عمل وکړي.
- chronyc د پروګرام نظارت او کنټرول لپاره د کمانډ لاین یوټیلیټ دی. د مختلف خدماتو پیرامیټونو ښه کولو لپاره کارول کیږي ، د مثال په توګه تاسو ته اجازه درکوي د NTP سرورونه اضافه یا لرې کړئ پداسې حال کې چې کرونایډ چلولو ته دوام ورکوي.
د RedHat لینکس 7 نسخه راهیسې chrony د وخت همغږي کولو خدمت په توګه. بسته د نورو لینکس توزیع لپاره هم شتون لري. وروستی باثباته نسخه 3.5 ده، د v4.0 خوشې کولو لپاره چمتووالی.
(1:712)$ sudo emerge -av chrony
These are the packages that would be merged, in order:
Calculating dependencies... done!
[binary N ] net-misc/chrony-3.5-r2::gentoo USE="adns caps cmdmon ipv6 ntp phc readline refclock rtc seccomp (-html) -libedit -pps (-selinux)" 246 KiB
Total: 1 package (1 new, 1 binary), Size of downloads: 246 KiB
Would you like to merge these packages? [Yes/No]
په انټرنیټ کې خپل ریموټ کروني سرور څنګه تنظیم کړئ ترڅو د دفتر شبکې کې وخت همغږي کړئ. لاندې د VPS تنظیم کولو یوه بیلګه ده.
په VPS کې په RHEL / CentOS کې د Chrony ترتیب کولو مثال
راځئ چې اوس یو څه تمرین وکړو او په VPS کې خپل NTP سرور تنظیم کړو. دا خورا ساده دی، یوازې د RuVDS ویب پاڼه کې مناسب تعرفه غوره کړئ، یو چمتو شوی سرور ترلاسه کړئ او یو درجن ساده حکمونه ټایپ کړئ. زموږ د موخو لپاره، دا اختیار خورا مناسب دی.

راځئ چې د خدمت تنظیم کولو ته لاړ شو او لومړی د کرونی کڅوړه نصب کړئ.
[root@server ~]$ yum install chronyRHEL 8 / CentOS 8 د مختلف کڅوړې مدیر کاروي.
[root@server ~]$ dnf install chronyد کرونی نصبولو وروسته، تاسو اړتیا لرئ چې خدمت پیل او فعال کړئ.
[root@server ~]$ systemctl enable chrony --nowکه وغواړئ، تاسو کولی شئ په /etc/chrony.conf کې بدلونونه رامینځته کړئ، د NPT سرورونو سره د نږدې محلي سرورونو سره د غبرګون وخت کمولو لپاره بدل کړئ.
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst
بیا، موږ د ټاکل شوي حوض څخه د نوډونو سره د NTP سرور ترکیب تنظیم کړو.
[root@server ~]$ timedatectl set-ntp true
[root@server ~]$ systemctl restart chronyd.service
دا هم اړینه ده چې د NTP بندر بهر ته خلاص کړئ، که نه نو د اور وژونکي به د مراجعینو نوډونو څخه د راتلونکو اړیکو مخه ونیسي.
[root@server ~]$ firewall-cmd --add-service=ntp --permanent
[root@server ~]$ firewall-cmd --reload
د پیرودونکي اړخ کې ، دا د وخت زون په سمه توګه تنظیم کولو لپاره کافي دی.
[root@client ~]$ timedatectl set-timezone Europe/Moscowد /etc/chrony.conf فایل زموږ د VPS سرور IP یا کوربه نوم مشخصوي چې د NTP سرور chrony چلوي.
server my.vps.serverاو په نهایت کې ، په پیرودونکي کې د وخت ترکیب پیل کول.
[root@client ~]$ systemctl enable --now chronyd
[root@client ~]$ timedatectl set-ntp true
بل ځل زه به تاسو ته ووایم چې د انټرنیټ پرته د وخت همغږي کولو لپاره کوم اختیارونه شتون لري.
سرچینه: www.habr.com
