Bii o ṣe le rii daju pe akoko fun se ko purọ ti o ba ni miliọnu kan ti o tobi ati awọn ẹrọ kekere ti o nbasọrọ nipasẹ TCP/IP? Lẹhinna, ọkọọkan wọn ni aago kan, ati pe akoko gbọdọ jẹ deede fun gbogbo wọn. Iṣoro yii ko le yipo laisi ntp.
Jẹ ki a fojuinu fun iṣẹju kan pe ni apakan kan ti awọn amayederun IT ile-iṣẹ awọn iṣoro wa pẹlu awọn iṣẹ mimuuṣiṣẹpọ ni akoko pupọ. Lẹsẹkẹsẹ akopọ iṣupọ ti sọfitiwia Idawọlẹ bẹrẹ lati kuna, awọn ibugbe tuka, awọn ọga ati awọn apa Imurasilẹ ni aṣeyọri tiraka lati mu pada ipo iṣe.
O tun ṣee ṣe pe ikọlu kan mọọmọ gbiyanju lati da akoko duro nipasẹ ikọlu MiTM tabi DDOS. Ni iru ipo bẹẹ, ohunkohun le ṣẹlẹ:
- Awọn ọrọigbaniwọle iroyin olumulo yoo pari;
- Awọn iwe-ẹri X.509 yoo pari;
- Ijeri meji-ifosiwewe TOTP yoo da ṣiṣẹ;
- awọn afẹyinti yoo di igba atijọ ati pe eto yoo paarẹ wọn;
- DNSSec yoo fọ.
O han gbangba pe gbogbo ẹka IT nifẹ si iṣẹ igbẹkẹle ti awọn iṣẹ amuṣiṣẹpọ akoko, ati pe yoo dara ti wọn ba jẹ igbẹkẹle ati ailewu ni iṣẹ ile-iṣẹ.
Adehun NTP ni iṣẹju 25
Awọn Ilana Nẹtiwọọki - awọn ẹgbẹrun ọdun ni iyasọtọ kan, wọn ti jẹ ati ki o jẹ ko si ohun to dara fun ohunkohun, ṣugbọn a ropo wọn ni ko ki rorun paapaa nigba ti a lominu ni ibi-ti alara ati igbeowosile ti wa ni akojo.
Ẹdun akọkọ nipa NTP Ayebaye ni aini awọn ọna ṣiṣe igbẹkẹle fun aabo lodi si awọn ikọlu nipasẹ awọn onijagidijagan. Awọn igbiyanju oriṣiriṣi ti ṣe lati yanju iṣoro yii. Lati ṣaṣeyọri eyi, a kọkọ ṣe imuse ọna ṣiṣe bọtini-iṣaaju-ṣaaju (PSK) fun paarọ awọn bọtini alamimọ.
Laanu, ọna yii ko sanwo fun idi ti o rọrun - ko ṣe iwọn daradara. Iṣeto ni afọwọṣe ni a nilo ni ẹgbẹ alabara ti o da lori olupin naa. Eyi tumọ si pe o ko le ṣafikun alabara miiran bii iyẹn. Ti nkan ba yipada lori olupin NTP, gbogbo awọn alabara gbọdọ tunto.
Lẹhinna wọn wa pẹlu AutoKey, ṣugbọn lẹsẹkẹsẹ ṣe awari nọmba kan ti awọn ailagbara pataki ninu apẹrẹ ti algorithm funrararẹ ati pe wọn ni lati fi silẹ. Ohun naa ni pe irugbin naa ni awọn 32-bits nikan, o kere ju ati pe ko ni idiju iṣiro to fun ikọlu iwaju.
- ID bọtini - bọtini 32-bit symmetric;
- MAC (koodu ìfàṣẹsí ifiranṣẹ) - NTP soso checksum;
Autokey ti wa ni iṣiro bi wọnyi.
Autokey=H(Sender-IP||Receiver-IP||KeyID||Cookie)Nibo H () jẹ iṣẹ hash cryptographic kan.
Iṣẹ kanna ni a lo lati ṣe iṣiro iye owo awọn apo-iwe.
MAC=H(Autokey||NTP packet)O wa ni jade pe gbogbo iṣotitọ ti awọn sọwedowo package da lori ododo ti awọn kuki. Ni kete ti o ba ni wọn, o le mu autokey pada ati lẹhinna spoof MAC. Sibẹsibẹ, olupin NTP nlo irugbin nigbati o ba n ṣẹda wọn. Eleyi ni ibi ti awọn apeja da.
Cookie=MSB_32(H(Client IP||Server IP||0||Server Seed))Iṣẹ MSB_32 ge awọn ege pataki 5 pataki julọ lati abajade iṣiro hash md32. Kuki onibara ko yipada niwọn igba ti awọn paramita olupin wa ko yipada. Lẹhinna ikọlu le mu nọmba ibẹrẹ pada nikan ki o ni anfani lati ṣe ipilẹṣẹ awọn kuki ni ominira.
Ni akọkọ, o nilo lati sopọ si olupin NTP gẹgẹbi alabara ati gba awọn kuki. Lẹhin eyi, ni lilo ọna ipa agbara, ikọlu naa mu nọmba ibẹrẹ pada ni atẹle algorithm ti o rọrun.
Alugoridimu fun ikọlu isiro ti awọn ni ibẹrẹ nọmba lilo awọn buru-agbara ọna.
for i=0:2^32 − 1 do
Ci=H(Server-IP||Client-IP||0||i)
if Ci=Cookie then
return i
end if
end forAwọn adiresi IP ni a mọ, nitorinaa gbogbo ohun ti o ku ni lati ṣẹda 2^32 hashes titi ti kuki ti o ṣẹda ṣe baamu eyiti o gba lati ọdọ olupin NTP. Lori ibudo ile deede pẹlu Intel Core i5, eyi yoo gba iṣẹju 25.
NTS - Autokey tuntun
Ko ṣee ṣe lati fi iru awọn iho aabo ni Autokey, ati ni ọdun 2012 o han Ilana. Lati le ba orukọ naa jẹ, wọn pinnu lati tunkọ, nitorinaa Autokey v.2 ni a pe ni Aabo Akoko Nẹtiwọọki.
Ilana NTS jẹ itẹsiwaju ti aabo NTP ati lọwọlọwọ ṣe atilẹyin ipo unicast nikan. O pese aabo cryptographic ti o lagbara lodi si ifọwọyi apo, ṣe idiwọ snooping, awọn iwọn daradara, jẹ resilient si pipadanu soso nẹtiwọki, ati awọn abajade ni iye ti o kere ju ti ipadanu deede ti o waye lakoko aabo asopọ.
Asopọ NTS kan ni awọn ipele meji ti o lo awọn ilana Layer isalẹ. Lori akoko Ni ipele yii, alabara ati olupin gba lori ọpọlọpọ awọn paramita asopọ ati awọn kuki paṣipaarọ ti o ni awọn bọtini pẹlu gbogbo ṣeto data ti o tẹle. Lori keji Ni ipele yii, igba NTS ti o ni aabo gangan waye laarin alabara ati olupin NTP.

NTS ni awọn ilana ilana-kekere meji: Paṣipaarọ Bọtini Aabo Akoko Nẹtiwọọki (NTS-KE), eyiti o bẹrẹ asopọ to ni aabo lori TLS, ati NTPv4, isọdọkan tuntun ti Ilana NTP. Diẹ diẹ sii nipa eyi ni isalẹ.
Ipele akọkọ - NTS KE
Ni ipele yii, alabara NTP bẹrẹ igba TLS 1.2/1.3 lori asopọ TCP lọtọ pẹlu olupin NTS KE. Lakoko igba yii awọn atẹle n ṣẹlẹ.
- Awọn ẹgbẹ pinnu awọn paramita algorithm fun ipele keji.
- Awọn ẹgbẹ ṣe asọye ilana ilana Layer-kekere keji, ṣugbọn ni akoko NTPv4 nikan ni atilẹyin.
- Awọn ẹgbẹ pinnu adiresi IP ati ibudo olupin NTP.
- Olupin NTS KE ṣe awọn kuki labẹ NTPv4.
- Awọn ẹgbẹ naa yọ bata ti awọn bọtini alamimọ (C2S ati S2C) lati inu ohun elo kuki naa.
Ọna yii ni anfani nla pe gbogbo ẹru gbigbe alaye aṣiri nipa awọn aye asopọ ti o ṣubu lori ilana TLS ti a fihan ati igbẹkẹle. Eleyi ti jade ni nilo a reinvent ara rẹ kẹkẹ fun a ni aabo NTP bowo.
Ipele keji - NTP labẹ aabo NTS
Ni igbesẹ keji, alabara mu akoko ṣiṣẹpọ ni aabo pẹlu olupin NTP. Fun idi eyi, o ṣe atagba awọn amugbooro pataki mẹrin (awọn aaye ifaagun) ni ọna apo NTPv4.
- Ifaagun Idanimọ Alailẹgbẹ ni aibikita lairotẹlẹ lati ṣe idiwọ awọn ikọlu atunṣe.
- Itẹsiwaju Kuki NTS ni ọkan ninu awọn kuki NTP ti o wa fun alabara. Niwọn igba ti alabara nikan ni o ni ami-ami AAED C2S ati awọn bọtini S2C, olupin NTP gbọdọ yọ wọn jade lati ohun elo kuki.
- Itẹsiwaju Ibi Itọju Kuki NTS jẹ ọna fun alabara lati beere awọn kuki ni afikun lati olupin naa. Ifaagun yii jẹ pataki lati rii daju pe idahun olupin NTP ko gun ju ibeere lọ. Eyi ṣe iranlọwọ lati yago fun awọn ikọlu imudara.
- Ijeri NTS ati Ifaagun Awọn aaye Ifaagun ti paroko ni AAED cipher pẹlu bọtini C2S, akọsori NTP, awọn akoko, ati EF loke bi data ti o tẹle. Laisi ifaagun yii o ṣee ṣe lati sọ awọn ami igba.

Nigbati o ba gba ibeere lati ọdọ alabara kan, olupin naa jẹri otitọ ti apo NTP naa. Lati ṣe eyi, o gbọdọ kọ awọn kuki, jade algorithm AAED ati awọn bọtini. Lẹhin ṣiṣe ayẹwo ni aṣeyọri ti apo NTP fun iwulo, olupin naa dahun si alabara ni ọna kika atẹle.
- Ifaagun Idanimọ Alailẹgbẹ jẹ ẹda digi ti ibeere alabara, iwọn kan lodi si awọn ikọlu atunwi.
- Itẹsiwaju Kuki NTS awọn kuki diẹ sii lati tẹsiwaju igba naa.
- Oluṣeto NTS ati Ifaagun Awọn aaye Ifaagun ti paroko ni AEAD cipher pẹlu bọtini S2C kan.
Ifọwọsowọ keji le tun ṣe ni ọpọlọpọ igba, ni ikọja igbesẹ akọkọ, nitori ibeere kọọkan ati idahun yoo fun alabara ni awọn kuki ni afikun. Eyi ni anfani pe awọn iṣẹ TLS to lekoko ti o ni ibatan ti iširo ati gbigbe data PKI pin nipasẹ nọmba awọn ibeere ti o leralera. Eyi jẹ irọrun paapaa fun awọn olutọju akoko FPGA pataki, nigbati gbogbo iṣẹ akọkọ le ṣe akopọ sinu awọn iṣẹ lọpọlọpọ lati aaye ti cryptography symmetric, gbigbe gbogbo akopọ TLS si ẹrọ miiran.
NTPSec
Kini pataki nipa NTP? Bíótilẹ o daju wipe awọn onkowe ti ise agbese, Dave Mills, gbiyanju lati iwe koodu rẹ bi o dara ju bi o ti ṣee, o jẹ kan toje pirogirama ti yoo ni anfani lati ni oye awọn intricacies ti akoko amuṣiṣẹpọ aligoridimu ti o jẹ 35 ọdun atijọ. Diẹ ninu koodu naa ni a kọ ṣaaju akoko POSIX, ati pe Unix API nigbana yatọ pupọ si eyiti a lo loni. Ni afikun, imọ ti awọn iṣiro nilo lati ko ifihan kuro lati kikọlu lori awọn laini ariwo.
NTS kii ṣe igbiyanju akọkọ lati ṣatunṣe NTP. Ni kete ti awọn ikọlu kọ ẹkọ lati lo awọn ailagbara NTP lati mu awọn ikọlu DDoS pọ si, o han gbangba pe a nilo awọn ayipada ipilẹṣẹ. Ati pe lakoko ti a ti pese awọn apẹrẹ NTS ati ipari, US National Science Foundation ni opin ọdun 2014 ni iyara sọtọ ẹbun kan fun isọdọtun ti NTP.
Ẹgbẹ ti n ṣiṣẹ kii ṣe nipasẹ ẹnikẹni nikan, ṣugbọn - ọkan ninu awọn oludasilẹ ati awọn ọwọn ti agbegbe Open Source ati onkọwe ti iwe naa . Ohun akọkọ Eric ati awọn ọrẹ rẹ gbiyanju lati ṣe ni gbigbe koodu NTP lati pẹpẹ BitKeeper si git, ṣugbọn ko ṣiṣẹ ni ọna yẹn. Adari ise agbese Harlan Stenn lodi si ipinnu yii ati awọn idunadura duro. Lẹhinna o pinnu lati kọ koodu iṣẹ akanṣe, ati pe a bi NTPSec.
Iriri lile, pẹlu iṣẹ lori GPSD, isale mathematiki ati ọgbọn idan ti kika koodu atijọ - Eric Raymond jẹ agbonaeburuwole gangan ti o le fa iru iṣẹ akanṣe kan kuro. Ẹgbẹ naa rii alamọja ijira koodu kan ati ni ọsẹ mẹwa 10 NTP lori GitLab. Iṣẹ wà ni kikun golifu.
Ẹgbẹ Eric Raymond gba iṣẹ naa ni ọna kanna ti Auguste Rodin ṣe pẹlu bulọọki okuta kan. Nipa yiyọ 175 KLOC ti koodu atijọ, wọn ni anfani lati dinku dada ikọlu ni pataki nipa pipade ọpọlọpọ awọn iho aabo.
Eyi ni atokọ ti ko pe ti awọn ti o wa ninu pinpin:
- Ti ko ni iwe-aṣẹ, ti igba atijọ, ti igba atijọ tabi aago atunṣe fifọ.
- Akolo ICS ìkàwé.
- libopts / autogen.
- Atijọ koodu fun Windows.
- ntpdc.
- Àkọ̀kọ̀.
- Koodu ntpq C ti tun kọ ni Python.
- Awọn koodu sntp/ntpdig C ti tun kọ ni Python.
Ni afikun si nu soke koodu, ise agbese ní miiran awọn iṣẹ-ṣiṣe. Eyi ni atokọ apa kan ti awọn aṣeyọri:
- Idaabobo koodu lodi si aponsedanu ifipamọ ti ni ilọsiwaju ni pataki. Lati yago fun awọn iṣan omi ifipamọ, gbogbo awọn iṣẹ okun ti ko ni aabo (strcpy/strcat/strtok/sprintf/vsprintf/gets) ti rọpo pẹlu awọn ẹya ailewu ti o ṣe awọn opin iwọn ifipamọ.
- Ṣe afikun atilẹyin NTS.
- Igbesẹ akoko ilọsiwaju deede ni ilopo mẹwa nipasẹ sisopọ ohun elo ti ara. Eyi jẹ nitori otitọ pe awọn aago kọnputa ode oni ti di deede diẹ sii ju awọn ti wọn bi NTP. Awọn anfani nla julọ ti eyi ni GPSDO ati awọn redio akoko igbẹhin.
- Nọmba awọn ede siseto ti dinku si meji. Dipo Perl, awk ati paapaa awọn iwe afọwọkọ S, o jẹ bayi gbogbo Python. Nitori eyi, awọn anfani diẹ sii wa fun ilotunlo koodu.
- Dipo awọn nudulu ti awọn iwe afọwọkọ autotools, iṣẹ akanṣe bẹrẹ lati lo eto kikọ sọfitiwia .
- Imudojuiwọn ati atunto iwe akanṣe. Lati a ilodi ati ki o ma archaic gbigba ti awọn iwe aṣẹ, nwọn si da oyimbo passable iwe. Gbogbo yipada laini aṣẹ ati gbogbo nkan atunto ni bayi ni ẹya kan ti otitọ. Ni afikun, awọn oju-iwe eniyan ati awọn iwe wẹẹbu ni a ṣẹda lati awọn faili pataki kanna.
NTPSec wa fun nọmba awọn pinpin Lainos. Ni akoko yii, ẹya iduroṣinṣin tuntun jẹ 1.1.8, fun Gentoo Linux o jẹ ọkan ti o penutimate.
(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]
Chrony
Igbiyanju miiran wa lati rọpo NTP atijọ pẹlu yiyan aabo diẹ sii. Chrony, ko dabi NTPSec, ti kọ lati ilẹ soke ati pe a ṣe apẹrẹ lati ṣiṣẹ ni igbẹkẹle labẹ ọpọlọpọ awọn ipo, pẹlu awọn asopọ nẹtiwọọki aiduro, wiwa nẹtiwọọki apakan tabi idinku, ati awọn iyipada iwọn otutu. Ni afikun, chrony ni awọn anfani miiran:
- chrony le muṣiṣẹpọ aago eto ni iyara pẹlu iṣedede nla;
- chrony kere, n gba iranti kere, o si wọle si Sipiyu nikan nigbati o nilo. Eyi jẹ afikun nla fun fifipamọ awọn orisun ati agbara;
- chrony ṣe atilẹyin awọn akoko ohun elo lori Lainos, gbigba mimuuṣiṣẹpọ deede to gaju lori awọn nẹtiwọọki agbegbe.
Sibẹsibẹ, chrony ko ni diẹ ninu awọn ẹya ti NTP atijọ, gẹgẹbi igbohunsafefe ati alabara multicast / olupin. Ni afikun, NTP Ayebaye ṣe atilẹyin nọmba nla ti awọn ọna ṣiṣe ati awọn iru ẹrọ.
Lati mu iṣẹ ṣiṣe ti olupin naa jẹ ati awọn ibeere NTP si ilana chronyd, kan kọ ibudo 0 sinu faili chrony.conf. Eyi ni a ṣe ni awọn ọran nibiti ko si iwulo lati ṣetọju akoko fun awọn alabara NTP tabi awọn ẹlẹgbẹ. Lati ẹya 2.0, ibudo olupin NTP wa ni sisi nikan nigbati iraye ba gba laaye nipasẹ itọsọna gbigba tabi aṣẹ ti o yẹ, tabi tunto ẹlẹgbẹ NTP kan, tabi ti lo itọsọna igbohunsafefe kan.
Awọn eto oriširiši meji modulu.
- chronyd jẹ iṣẹ kan ti o nṣiṣẹ ni abẹlẹ. O gba alaye nipa iyatọ laarin aago eto ati olupin akoko ita ati ṣatunṣe akoko agbegbe. O tun ṣe ilana Ilana NTP ati pe o le ṣe bi alabara tabi olupin.
- chronyc jẹ ohun elo laini aṣẹ fun ibojuwo ati iṣakoso eto. Ti a lo lati ṣatunṣe ọpọlọpọ awọn aye iṣẹ, fun apẹẹrẹ gbigba ọ laaye lati ṣafikun tabi yọ awọn olupin NTP kuro lakoko ti chronyd tẹsiwaju lati ṣiṣẹ.
Lati ẹya 7 ti RedHat Linux chrony bi iṣẹ amuṣiṣẹpọ akoko. Apo naa tun wa fun awọn pinpin Lainos miiran. Ẹya iduroṣinṣin tuntun jẹ 3.5, ngbaradi fun itusilẹ ti 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]
Bii o ṣe le ṣeto olupin chrony latọna jijin tirẹ lori Intanẹẹti lati mu akoko ṣiṣẹpọ lori nẹtiwọọki ọfiisi kan. Ni isalẹ jẹ apẹẹrẹ ti iṣeto VPS kan.
Apẹẹrẹ ti iṣeto Chrony lori RHEL / CentOS lori VPS
Jẹ ki a ṣe adaṣe diẹ diẹ ki a ṣeto olupin NTP tiwa lori VPS kan. O rọrun pupọ, kan yan owo idiyele ti o yẹ lori oju opo wẹẹbu RuVDS, gba olupin ti a ti ṣetan ati tẹ awọn aṣẹ ti o rọrun mejila kan. Fun awọn idi wa, aṣayan yii dara pupọ.

Jẹ ki a tẹsiwaju lati ṣeto iṣẹ naa ki o kọkọ fi package chrony sori ẹrọ.
[root@server ~]$ yum install chronyRHEL 8 / CentOS 8 lo oluṣakoso package ti o yatọ.
[root@server ~]$ dnf install chronyLẹhin fifi chrony sori ẹrọ, o nilo lati bẹrẹ ati mu iṣẹ naa ṣiṣẹ.
[root@server ~]$ systemctl enable chrony --nowTi o ba fẹ, o le ṣe awọn ayipada si /etc/chrony.conf, rọpo awọn olupin NPT pẹlu awọn agbegbe ti o sunmọ julọ lati dinku akoko idahun.
# 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
Nigbamii ti, a ṣeto amuṣiṣẹpọ ti olupin NTP pẹlu awọn apa lati adagun ti a ti sọtọ.
[root@server ~]$ timedatectl set-ntp true
[root@server ~]$ systemctl restart chronyd.service
O tun jẹ dandan lati ṣii ibudo NTP si ita, bibẹẹkọ ogiriina yoo dènà awọn asopọ ti nwọle lati awọn apa alabara.
[root@server ~]$ firewall-cmd --add-service=ntp --permanent
[root@server ~]$ firewall-cmd --reload
Ni ẹgbẹ alabara, o to lati ṣeto agbegbe aago ni deede.
[root@client ~]$ timedatectl set-timezone Europe/MoscowFaili /etc/chrony.conf ṣetọkasi IP tabi orukọ agbalejo ti olupin VPS wa ti n ṣiṣẹ chrony olupin NTP.
server my.vps.serverAti nikẹhin, mimuuṣiṣẹpọ akoko bẹrẹ lori alabara.
[root@client ~]$ systemctl enable --now chronyd
[root@client ~]$ timedatectl set-ntp true
Nigbamii Emi yoo sọ fun ọ kini awọn aṣayan ti o wa fun mimuuṣiṣẹpọ akoko laisi Intanẹẹti.
orisun: www.habr.com
