Ինչպե՞ս համոզվել, որ ժամանակը ինքնին չի ստում, եթե ունեք միլիոնավոր մեծ ու փոքր սարքեր, որոնք փոխազդում են TCP/IP-ի միջոցով։ Ի վերջո, դրանցից յուրաքանչյուրն ունի ժամացույց, և ժամանակը պետք է ճիշտ լինի բոլորի վրա։ Այս խնդիրը հնարավոր չէ լուծել առանց ntp-ի։
Մի րոպե պատկերացնենք, որ արդյունաբերական ՏՏ ենթակառուցվածքների մեկ հատվածում դժվարություններ կան ծառայությունների ժամանակային համաժամեցման հետ կապված։ Ձեռնարկությունների ծրագրային ապահովման կլաստերային փաթեթը անմիջապես սկսում է խափանվել, դոմեյնները քանդվում են, գլխավոր և սպասման հանգույցները անհաջող փորձում են վերականգնել ստատուս քվոն։
Հնարավոր է նաև, որ հարձակվողը դիտավորյալ փորձի կրճատել ժամանակը MiTM-ի կամ DDOS հարձակման միջոցով։ Նման իրավիճակում ամեն ինչ կարող է պատահել.
- օգտատիրոջ հաշվի գաղտնաբառերի ժամկետը կսպառվի։
- X.509 վկայագրերի ժամկետը կլրանա։
- TOTP երկփուլանի նույնականացումը կդադարի աշխատել։
- պահուստային պատճենները կդառնան «հնացած», և համակարգը կջնջի դրանք։
- DNSSec-ը կխափանվի։
Ակնհայտ է, որ յուրաքանչյուր առաջին ՏՏ բաժին հետաքրքրված է ժամանակի համաժամացման ծառայությունների հուսալի աշխատանքով, և լավ կլիներ, եթե դրանք հուսալի և անվտանգ լինեին արդյունաբերական շահագործման մեջ։
Կոտրեք NTP-ն 25 րոպեում
Ցանցային արձանագրություններ - միլենիալները մեկ ընդհանուր բան ունեն. նրանք վաղուց են եղել և այլևս ոչնչի համար պիտանի չեն, բայց դրանց փոխարինումը այդքան էլ հեշտ չէ, նույնիսկ երբ ձեռք է բերվում էնտուզիաստների և ֆինանսավորման կրիտիկական զանգված։
Դասական NTP-ի վերաբերյալ հիմնական բողոքը չարամիտ հարձակումներից պաշտպանության հուսալի մեխանիզմների բացակայությունն է: Այս խնդիրը լուծելու համար տարբեր փորձեր են արվել: Դրա համար առաջին անգամ ներդրվել է նախապես սահմանված բանալու (PSK) մեխանիզմը՝ սիմետրիկ բանալիների փոխանակման համար:
Դժբախտաբար, այս մեթոդը չարդարացրեց իրեն պարզ պատճառով՝ այն լավ չի մասշտաբավորվում: Հաճախորդի կողմից ձեռքով կարգավորումը պահանջվում է կախված սերվերից: Սա նշանակում է, որ դուք չեք կարող պարզապես ավելացնել մեկ այլ հաճախորդ: Եթե NTP սերվերի վրա ինչ-որ բան փոխվի, դուք պետք է վերակարգավորեք բոլոր հաճախորդները:
Այնուհետև նրանք մշակեցին AutoKey-ը, բայց անմիջապես ալգորիթմի նախագծման մեջ հայտնաբերվեցին մի շարք լուրջ խոցելիություններ, և այն ստիպված եղան հրաժարվել։ Ամբողջ հարցն այն է, որ սկզբնական թիվը (seed) պարունակում է ընդամենը 32 բիթ, այն չափազանց փոքր է և բավարար հաշվողական բարդություն չունի brute-force հարձակման համար։
- Բանալիի ID-ն սիմետրիկ 32-բիթանոց բանալի է։
- MAC (հաղորդագրությունի նույնականացման կոդ) — NTP փաթեթի ստուգիչ գումարը;
Ավտոմատ բանալին հաշվարկվում է հետևյալ կերպ։
Autokey=H(Sender-IP||Receiver-IP||KeyID||Cookie)որտեղ H()-ն կրիպտոգրաֆիկ հեշ ֆունկցիա է։
Նույն ֆունկցիան օգտագործվում է փաթեթի ստուգիչ գումարը հաշվարկելու համար։
MAC=H(Autokey||NTP packet)Պարզվում է, որ փաթեթների ստուգումների ամբողջ ամբողջականությունը հիմնված է թխուկների իսկության վրա: Դրանք գրանցելուց հետո դուք կարող եք վերականգնել ավտոմատ բանալին, ապա կեղծել MAC հասցեն: Սակայն NTP սերվերը օգտագործում է սկզբնական համարը (seed) դրանք ստեղծելիս: Ահա թե որտեղ է խնդիրը:
Cookie=MSB_32(H(Client IP||Server IP||0||Server Seed))MSB_32 ֆունկցիան md5 հեշի հաշվարկի արդյունքից կտրում է 32 ավագ բիթ։ Հաճախորդի cookie-ն չի փոխվում, քանի դեռ սերվերի պարամետրերը մնում են անփոփոխ։ Այնուհետև հարձակվողին անհրաժեշտ է միայն վերականգնել սկզբնական թիվը և ստանալ cookie-ներ ինքնուրույն ստեղծելու հնարավորություն։
Սկզբում միացեք NTP սերվերին որպես հաճախորդ և ստացեք cookie-ն։ Դրանից հետո հարձակվողը վերականգնում է սկզբնական համարը՝ օգտագործելով պարզ ալգորիթմ։
Սկզբնական թվի վրա կոպիտ ուժի մեթոդով հարձակվելու ալգորիթմ։
for i=0:2^32 − 1 do
Ci=H(Server-IP||Client-IP||0||i)
if Ci=Cookie then
return i
end if
end forIP հասցեները հայտնի են, ուստի մնում է միայն ստեղծել 2^32 հեշ, մինչև ստեղծված cookie-ն համընկնի NTP սերվերից ստացված cookie-ի հետ։ Intel Core i5 պրոցեսորով տիպիկ տնային կայանում սա կտևի 25 րոպե։
NTS — նոր ավտոմատ բանալի
Autokey-ում նման անվտանգության բացերը հանդուրժելը անհնար էր, և 2012 թվականին, արձանագրություն։ Անունը փոխելու համար նրանք որոշեցին վերանվանել այն, ուստի Autokey v.2-ը անվանվեց Network Time Security։
NTS արձանագրությունը NTP-ի անվտանգության ընդլայնումն է և ներկայումս աջակցում է միայն unicast ռեժիմը: Այն ապահովում է ամուր կրիպտոգրաֆիկ պաշտպանություն փաթեթների մանիպուլյացիայի դեմ, կանխում է լրտեսումը, լավ մասշտաբավորվում է, դիմացկուն է ցանցային փաթեթների կորստի նկատմամբ և հանգեցնում է կապի անվտանգության ապահովման գործընթացում ճշգրտության ամենացածր կորստի:
NTS կապը բաղկացած է երկու փուլից, որոնցում օգտագործվում են ցածր մակարդակի արձանագրություններ։ առաջինը Այս փուլում հաճախորդը և սերվերը համաձայնության են գալիս տարբեր միացման պարամետրերի շուրջ և փոխանակում են բանալիներ պարունակող թխուկներ՝ բոլոր ուղեկցող տվյալներով։ երկրորդը Այս փուլում հաճախորդի և NTP սերվերի միջև տեղի է ունենում իրական անվտանգ NTS նիստ։

NTS-ը բաղկացած է երկու ստորին մակարդակի արձանագրություններից՝ Network Time Security Key Exchange (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 ձեռքսեղմման համար անհրաժեշտ չէ վերափոխել անիվը:
Փուլ 2 - NTP NTS պաշտպանության տակ
Երկրորդ փուլում հաճախորդը անվտանգ կերպով համաժամեցնում է ժամանակը NTP սերվերի հետ։ Այդ նպատակով այն փոխանցում է NTPv4 փաթեթային կառուցվածքում չորս հատուկ ընդլայնման դաշտեր։
- Unique Identifier Extension-ը պարունակում է պատահական nonce՝ կրկնության հարձակումները կանխելու համար։
- NTS Cookie Extension-ը պարունակում է հաճախորդի կողմից պահվող NTP cookie-ներից մեկը: Քանի որ միայն հաճախորդն ունի C2S և S2C սիմետրիկ AAED բանալիները, NTP սերվերը պետք է դրանք արդյունահանի cookie-ի նյութից:
- NTS Cookie Placeholder Extension-ը հաճախորդի համար սերվերից լրացուցիչ cookie-ներ խնդրելու միջոց է: Այս ընդլայնումը անհրաժեշտ է՝ ապահովելու համար, որ NTP սերվերի պատասխանը հարցումից շատ ավելի երկար չլինի: Սա օգնում է կանխել ուժեղացման հարձակումները:
- NTS Authenticator և Encrypted Extension Fields ընդլայնումը պարունակում է AAED ալգորիթմի գաղտնագիրը՝ C2S բանալիով, NTP վերնագրով, ժամանակային դրոշմանիշներով և վերը նշված EF-ով որպես օժանդակ տվյալներ: Առանց այս ընդլայնման հնարավոր է կեղծել ժամանակային դրոշմանիշները:

Հաճախորդից հարցում ստանալուց հետո սերվերը ստուգում է NTP փաթեթի իսկությունը։ Դրա համար այն պետք է վերծանի թխուկները, արդյունահանի AAED ալգորիթմը և բանալիները։ NTP փաթեթի վավերականության հաջողությամբ ստուգելուց հետո սերվերը պատասխանում է հաճախորդին հետևյալ ձևաչափով։
- Միակ նույնականացուցիչի ընդլայնումը արտացոլում է հաճախորդի հարցման պատճենը՝ որպես կրկնության հարձակումների դեմ միջոց։
- NTS Cookie Extension-ը ավելացնում է ավելի շատ cookie-ներ՝ սեսիան շարունակելու համար։
- NTS Authenticator-ը և Encrypted Extension Fields ընդլայնումը պարունակում են AEAD գաղտնագիր՝ S2C բանալիով։
Երկրորդ ձեռքսեղմումը կարող է կրկնվել բազմիցս՝ շրջանցելով առաջին փուլը, քանի որ յուրաքանչյուր հարցում և պատասխան հաճախորդին տալիս է լրացուցիչ թխուկներ: Սա ունի այն առավելությունը, որ PKI տվյալների հաշվարկման և փոխանցման համեմատաբար ռեսուրսատար TLS գործողությունները բաժանվում են կրկնվող հարցումների քանակի վրա: Սա հատկապես հարմար է մասնագիտացված FPGA ժամացույցների համար, երբ բոլոր հիմնական ֆունկցիոնալությունները կարող են փաթեթավորվել սիմետրիկ կրիպտոգրաֆիայի ոլորտի մի քանի գործառույթների մեջ՝ ամբողջ TLS կույտը փոխանցելով մեկ այլ սարքի:
NTPSec
Ի՞նչն է NTP-ի առանձնահատկությունը։ Չնայած այն հանգամանքին, որ նախագծի հեղինակ Դեյվ Միլսը փորձել է հնարավորինս լավ փաստաթղթավորել իր կոդը, հազվագյուտ ծրագրավորողը կկարողանա հասկանալ 35 տարի առաջվա ժամանակի համաժամեցման ալգորիթմների բարդությունները։ Կոդի մի մասը գրվել է POSIX դարաշրջանից առաջ, և Unix API-ը շատ տարբեր էր այսօր օգտագործվողից։ Բացի այդ, աղմկոտ գծերում ազդանշանը միջամտությունից մաքրելու համար անհրաժեշտ է վիճակագրության իմացություն։
NTS-ը NTP-ն շտկելու առաջին փորձը չէր։ Այն բանից հետո, երբ հարձակվողները սովորեցին օգտագործել NTP խոցելիությունները՝ DDoS հարձակումները ուժեղացնելու համար, պարզ դարձավ, որ անհրաժեշտ են արմատական փոփոխություններ։ Եվ մինչ NTS-ի նախագծերը պատրաստվում և վերջնական տեսքի էին բերվում, ԱՄՆ Ազգային գիտական հիմնադրամը 2014 թվականի վերջին շտապ դրամաշնորհ հատկացրեց NTP-ի արդիականացման համար։
Աշխատանքային խումբը գլխավորում էր ոչ ոք, քան — Բաց կոդով համայնքի հիմնադիրներից և հենասյուներից մեկը և գրքի հեղինակը Առաջին բանը, որ Էրիկը և նրա ընկերները փորձեցին անել, NTP կոդը BitKeeper հարթակից git տեղափոխելն էր, բայց այդպես չստացվեց։ Նախագծի ղեկավար Հարլան Ստեննը դեմ էր այս որոշմանը, և բանակցությունները փակուղի մտան։ Այնուհետև որոշվեց նախագծի կոդը բաժանել երկու մասի, և այդպես էլ ստեղծվեց NTPSec-ը։
GPSD-ի, մաթեմատիկական գիտելիքների և հին կոդ կարդալու կախարդական կարողությունների ամուր գիտելիքներով Էրիկ Ռեյմոնդը հենց այն հաքերն էր, որը իրականացրեց նման նախագիծ: Թիմը գտավ կոդի միգրացիայի մասնագետի և ընդամենը 10 շաբաթվա ընթացքում NTP-ն GitLab-ում։ Աշխատանքը սկսեց եռալ։
Էրիկ Ռեյմոնդի թիմը լուծեց խնդիրը այնպես, ինչպես Օգյուստ Ռոդենը կլուծեր քարե բլոկը։ Հեռացնելով հին կոդի 175 KLOC-ը՝ նրանք կարողացան զգալիորեն կրճատել հարձակման մակերեսը՝ փակելով անվտանգության բազմաթիվ բացթողումներ։
Ահա տուժածների ոչ ամբողջական ցանկը.
- Անփաստաթղթավորված, հնացած, ժամկետանց կամ կոտրված ռեֆ ժամացույց։
- Չօգտագործված ICS գրադարան։
- լիբոպտներ/աուտոգեն։
- Հին կոդ Windows-ի համար։
- ntpdc.
- Ավտոմատ բանալի։
- C կոդը ntpq-ից վերաշարադրված Python-ում։
- C կոդը sntp/ntpdig-ը վերաշարադրված է Python-ով։
Բացի կոդի մաքրումից, նախագիծն ուներ նաև այլ առաջադրանքներ: Ահա նվաճումների ոչ ամբողջական ցանկը.
- Կոդի պաշտպանությունը բուֆերային արտահոսքերից զգալիորեն ուժեղացվել է։ Բուֆերային արտահոսքերը կանխելու համար բոլոր անվտանգ լարային ֆունկցիաները (strcpy / strcat / strtok / sprintf / vsprintf / gets) փոխարինվել են բուֆերի չափի սահմանափակում իրականացնող անվտանգ տարբերակներով։
- Ավելացված է NTS աջակցությունը։
- Ժամանակի քայլերի ճշգրտությունը տասնապատկվել է ֆիզիկական սարքավորումների միացման միջոցով։ Դա պայմանավորված է նրանով, որ ժամանակակից համակարգչային ժամացույցները շատ ավելի ճշգրիտ են դարձել, քան այն ժամացույցները, որոնք առկա էին NTP-ի առաջին ներդրման ժամանակ։ Դրանից ամենամեծ օգուտները ստանում են GPSDO-ն և նվիրված ռադիոժամանակային կայանները։
- Ծրագրավորման լեզուների թիվը կրճատվել է մինչև երկու։ Perl-ի, awk-ի և նույնիսկ S սկրիպտների փոխարեն այժմ ամբողջությամբ Python է։ Սա կոդի վերօգտագործման ավելի շատ հնարավորություններ է տալիս։
- Autotools սկրիպտների փոխարեն, նախագիծը սկսեց օգտագործել ծրագրային ապահովման կառուցման համակարգ։ .
- Թարմացրինք և վերակազմակերպեցինք նախագծի փաստաթղթերը։ Փաստաթղթերի անհամապատասխան և երբեմն հնացած հավաքածուից մենք ստեղծեցինք բավականին ընդունելի փաստաթղթեր։ Յուրաքանչյուր հրամանի տողի անջատիչ և յուրաքանչյուր կոնֆիգուրացիայի միավոր այժմ ունի ճշմարտության մեկ տարբերակ։ Բացի այդ, ձեռնարկի էջերը և վեբ փաստաթղթերը այժմ ստեղծվում են նույն հիմնական ֆայլերից։
NTPSec-ը հասանելի է Linux-ի մի շարք բաշխումների համար։ Վերջին կայուն տարբերակը ներկայումս 1.1.8-ն է, իսկ Gentoo Linux-ի համար՝ նախավերջինը։
(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-ն ավելի փոքր է, օգտագործում է ավելի քիչ հիշողություն և պրոցեսորին մուտք է գործում միայն անհրաժեշտության դեպքում։ Սա մեծ առավելություն է ռեսուրսներ և էներգիա խնայելու համար։
- chrony-ն աջակցում է Linux-ի սարքավորումների ժամանակային նշագրերին, ինչը թույլ է տալիս չափազանց ճշգրիտ համաժամեցում իրականացնել տեղական ցանցերում։
Սակայն chrony-ին բացակայում են հին NTP-ի որոշ գործառույթներ, ինչպիսիք են հեռարձակումը և բազմահեռարձակման հաճախորդ/սերվերը: Բացի այդ, դասական NTP-ն աջակցում է ավելի մեծ թվով օպերացիոն համակարգեր և հարթակներ:
Սերվերի ֆունկցիոնալությունը և chronyd պրոցեսին ուղղված NTP հարցումները անջատելու համար պարզապես chrony.conf ֆայլում նշեք 0 պորտը: Սա արվում է այն դեպքերում, երբ NTP հաճախորդների կամ գործընկերների համար ժամանակ պահպանելու անհրաժեշտություն չկա: Սկսած 2.0 տարբերակից, NTP սերվերի պորտը բաց է միայն այն դեպքում, երբ մուտքը թույլատրվում է allow հրահանգով կամ համապատասխան հրամանով, կամ կարգավորված է NTP գործընկեր, կամ օգտագործվում է հեռարձակման հրահանգը:
Ծրագիրը բաղկացած է երկու մոդուլից։
- chronyd-ը ֆոնային ծառայություն է, որը ստանում է համակարգային ժամացույցի և արտաքին ժամանակի սերվերի միջև տարբերության մասին տեղեկատվություն և կարգավորում է տեղական ժամանակը: Այն նաև իրականացնում է NTP արձանագրությունը և կարող է գործել որպես հաճախորդ կամ սերվեր:
- chronyc-ը հրամանի տողի գործիք է ծրագիրը մոնիթորինգի և կառավարման համար: Այն օգտագործվում է տարբեր ծառայությունների պարամետրերը ճշգրտելու համար, օրինակ, այն թույլ է տալիս ավելացնել կամ հեռացնել NTP սերվերներ, մինչ chronyd-ը շարունակում է աշխատել:
RedHat Linux-ի 7-րդ տարբերակից սկսած chrony-ն որպես ժամանակի համաժամեցման ծառայություն: Փաթեթը հասանելի է նաև Linux-ի այլ բաշխումների համար: Վերջին կայուն տարբերակը 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]
Ինչպես կարգավորել ձեր սեփական հեռակա chrony սերվերը ինտերնետում՝ գրասենյակային ցանցում ժամանակը համաժամեցնելու համար: Ստորև բերված է VPS-ի վրա կարգավորման օրինակ:
Chrony-ի RHEL / CentOS-ի VPS-ի վրա տեղադրման օրինակ
Եկեք հիմա մի փոքր մարզվենք և բարձրացնենք մեր սեփական NTP սերվերը VPS-ում: Ամեն ինչ շատ պարզ է, պարզապես ընտրեք համապատասխան սակագին RuVDS կայքում, ձեռք բերեք պատրաստի սերվեր և մուտքագրեք տասնյակ պարզ հրամաններ: Մեր նպատակների համար այս տարբերակը բավականին հարմար է:

Եկեք անցնենք ծառայության կարգավորմանը և նախևառաջ տեղադրենք chrony փաթեթը։
[root@server ~]$ yum install chronyRHEL 8 / CentOS 8-ը օգտագործում են տարբեր փաթեթների կառավարիչ։
[root@server ~]$ dnf install chronyChrony-ն տեղադրելուց հետո անհրաժեշտ է սկսել և ակտիվացնել ծառայությունը։
[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 միացքը դեպի դուրս, հակառակ դեպքում firewall-ը կարգելափակի հաճախորդի հանգույցներից մուտքային կապերը։
[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
Հաջորդ անգամ ես ձեզ կասեմ, թե ինչ տարբերակներ կան ժամանակը համաժամեցնելու համար առանց ինտերնետի։
Source: www.habr.com
