Ինչպես ժամանակի համաժամացումը դարձավ ապահով

Ինչպես ժամանակի համաժամացումը դարձավ ապահով
Ինչպե՞ս համոզվել, որ ժամանակը ինքնին չի ստում, եթե ունեք միլիոնավոր մեծ ու փոքր սարքեր, որոնք փոխազդում են 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 for

IP հասցեները հայտնի են, ուստի մնում է միայն ստեղծել 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 կապի միջոցով։ Այս սեսիայի ընթացքում տեղի է ունենում հետևյալը։

  • Կողմերը որոշում են պարամետրերը AEAD Երկրորդ փուլի ալգորիթմը։
  • Կողմերը սահմանում են երկրորդ՝ ավելի ցածր մակարդակի արձանագրություն, սակայն ներկայումս աջակցվում է միայն 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 chrony

RHEL 8 / CentOS 8-ը օգտագործում են տարբեր փաթեթների կառավարիչ։

[root@server ~]$ dnf install chrony

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 միացքը դեպի դուրս, հակառակ դեպքում 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

Добавить комментарий