การซิงโครไนซ์เวลามีความปลอดภัยเพียงใด

การซิงโครไนซ์เวลามีความปลอดภัยเพียงใด
จะแน่ใจได้อย่างไรว่าเวลาจะไม่โกหกถ้าคุณมีอุปกรณ์ขนาดใหญ่และขนาดเล็กนับล้านที่สื่อสารผ่าน TCP/IP ท้ายที่สุดแล้ว แต่ละคนมีนาฬิกา และเวลาจะต้องถูกต้องสำหรับทุกคน ปัญหานี้ไม่สามารถหลีกเลี่ยงได้หากไม่มี ntp

ลองนึกภาพสักครู่ว่าในส่วนของโครงสร้างพื้นฐานด้านไอทีทางอุตสาหกรรมมีปัญหาในการซิงโครไนซ์บริการเมื่อเวลาผ่านไป ทันทีที่สแต็กคลัสเตอร์ซอฟต์แวร์ระดับองค์กรเริ่มล้มเหลว โดเมนสลายตัว โหนดหลักและโหนดสแตนด์บายพยายามกู้คืนสถานะที่เป็นอยู่ไม่สำเร็จ

อาจเป็นไปได้ว่าผู้โจมตีจงใจพยายามขัดขวางเวลาผ่านการโจมตี MiTM หรือ DDOS ในสถานการณ์เช่นนี้ อะไรก็เกิดขึ้นได้:

  • รหัสผ่านบัญชีผู้ใช้จะหมดอายุ
  • ใบรับรอง X.509 จะหมดอายุ
  • การตรวจสอบสิทธิ์แบบสองปัจจัย TOTP จะหยุดทำงาน
  • การสำรองข้อมูลจะล้าสมัยและระบบจะลบทิ้ง
  • DNSSec จะพัง

เห็นได้ชัดว่าแผนกไอทีทุกแผนกมีความสนใจในการดำเนินงานที่เชื่อถือได้ของบริการซิงโครไนซ์เวลา และคงจะดีไม่น้อยหากบริการเหล่านี้เชื่อถือได้และปลอดภัยในการดำเนินงานทางอุตสาหกรรม

ทำลาย NTP ใน 25 นาที

โปรโตคอลเครือข่าย - คนรุ่นมิลเลนเนียลมีลักษณะเฉพาะอย่างหนึ่ง เก่า และไม่เป็นผลดีต่อสิ่งใดๆ อีกต่อไป แต่การแทนที่มันไม่ใช่เรื่องง่ายแม้ว่าจะมีผู้ที่ชื่นชอบและเงินทุนจำนวนมากก็ตาม

ข้อร้องเรียนหลักเกี่ยวกับ NTP แบบคลาสสิกคือการขาดกลไกที่เชื่อถือได้ในการป้องกันการโจมตีของผู้บุกรุก มีความพยายามหลายครั้งเพื่อแก้ไขปัญหานี้ เพื่อให้บรรลุเป้าหมายนี้ ขั้นแรกเราได้ใช้กลไก pre-shared key (PSK) สำหรับการแลกเปลี่ยนคีย์แบบสมมาตร

น่าเสียดายที่วิธีนี้ไม่ได้ผลด้วยเหตุผลง่ายๆ - มันไม่ได้ปรับขนาดได้ดี จำเป็นต้องมีการกำหนดค่าด้วยตนเองบนฝั่งไคลเอ็นต์ ขึ้นอยู่กับเซิร์ฟเวอร์ ซึ่งหมายความว่าคุณไม่สามารถเพิ่มลูกค้ารายอื่นเช่นนั้นได้ หากมีการเปลี่ยนแปลงบางอย่างบนเซิร์ฟเวอร์ NTP ไคลเอนต์ทั้งหมดจะต้องได้รับการกำหนดค่าใหม่

จากนั้นพวกเขาก็มาพร้อมกับ AutoKey แต่พวกเขาก็ค้นพบช่องโหว่ร้ายแรงจำนวนหนึ่งในการออกแบบอัลกอริธึมทันทีและพวกเขาก็ต้องละทิ้งมัน ประเด็นก็คือเมล็ดมีเพียง 32 บิตซึ่งมีขนาดเล็กเกินไปและไม่มีความซับซ้อนในการคำนวณเพียงพอสำหรับการโจมตีทางด้านหน้า

  • รหัสคีย์ - คีย์แบบสมมาตร 32 บิต;
  • 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 จะตัดบิตที่สำคัญที่สุด 5 บิตออกจากผลการคำนวณแฮช md32 คุกกี้ไคลเอนต์จะไม่เปลี่ยนแปลงตราบใดที่พารามิเตอร์เซิร์ฟเวอร์ยังคงไม่เปลี่ยนแปลง จากนั้นผู้โจมตีสามารถกู้คืนหมายเลขเริ่มต้นเท่านั้นและสามารถสร้างคุกกี้ได้อย่างอิสระ

ขั้นแรก คุณต้องเชื่อมต่อกับเซิร์ฟเวอร์ 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 ก็ปรากฏขึ้น новаяверсия มาตรการ. เพื่อที่จะประนีประนอมกับชื่อ พวกเขาจึงตัดสินใจเปลี่ยนโฉมใหม่ ดังนั้น Autokey v.2 จึงได้รับการขนานนามว่า Network Time Security

โปรโตคอล NTS เป็นส่วนขยายของการรักษาความปลอดภัย NTP และปัจจุบันรองรับเฉพาะโหมด unicast เท่านั้น โดยให้การป้องกันการเข้ารหัสที่แข็งแกร่งต่อการยักย้ายแพ็กเก็ต ป้องกันการสอดแนม ปรับขนาดได้ดี มีความยืดหยุ่นต่อการสูญเสียแพ็กเก็ตเครือข่าย และส่งผลให้เกิดการสูญเสียความแม่นยำในปริมาณน้อยที่สุดที่เกิดขึ้นระหว่างการรักษาความปลอดภัยของการเชื่อมต่อ

การเชื่อมต่อ NTS ประกอบด้วยสองขั้นตอนที่ใช้โปรโตคอลชั้นล่าง บน ครั้งแรก ในขั้นตอนนี้ ไคลเอ็นต์และเซิร์ฟเวอร์จะตกลงกันในพารามิเตอร์การเชื่อมต่อต่างๆ และแลกเปลี่ยนคุกกี้ที่มีคีย์กับชุดข้อมูลที่มาพร้อมกันทั้งหมด บน ที่สอง ในขั้นตอนนี้ เซสชัน NTS ที่ได้รับการป้องกันจริงจะเกิดขึ้นระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ NTP

การซิงโครไนซ์เวลามีความปลอดภัยเพียงใด

NTS ประกอบด้วยโปรโตคอลชั้นล่างสองโปรโตคอล: Network Time Security Key Exchange (NTS-KE) ซึ่งเริ่มต้นการเชื่อมต่อที่ปลอดภัยผ่าน TLS และ NTPv4 ซึ่งเป็นรูปแบบล่าสุดของโปรโตคอล NTP เพิ่มเติมเล็กน้อยเกี่ยวกับเรื่องนี้ด้านล่าง

ด่านแรก - NTS KE

ในขั้นตอนนี้ ไคลเอ็นต์ NTP จะเริ่มต้นเซสชัน TLS 1.2/1.3 ผ่านการเชื่อมต่อ TCP ที่แยกต่างหากกับเซิร์ฟเวอร์ NTS KE ในระหว่างเซสชั่นนี้ สิ่งต่อไปนี้จะเกิดขึ้น

  • คู่สัญญาทั้งสองฝ่ายเป็นผู้กำหนดพารามิเตอร์ กศน อัลกอริทึมสำหรับขั้นตอนที่สอง
  • ทั้งสองฝ่ายกำหนดโปรโตคอลชั้นล่างที่สอง แต่ในขณะนี้รองรับเฉพาะ NTPv4 เท่านั้น
  • ทั้งสองฝ่ายจะกำหนดที่อยู่ IP และพอร์ตของเซิร์ฟเวอร์ NTP
  • เซิร์ฟเวอร์ NTS KE ออกคุกกี้ภายใต้ NTPv4
  • คู่สัญญาแยกคู่คีย์สมมาตร (C2S และ S2C) ออกจากวัสดุคุกกี้

วิธีการนี้มีข้อได้เปรียบอย่างมากที่ภาระทั้งหมดในการส่งข้อมูลลับเกี่ยวกับพารามิเตอร์การเชื่อมต่อตกอยู่กับโปรโตคอล TLS ที่ได้รับการพิสูจน์และเชื่อถือได้ ซึ่งช่วยลดความจำเป็นในการสร้างสรรค์วงล้อของคุณเองใหม่เพื่อการจับมือ NTP ที่ปลอดภัย

ขั้นตอนที่สอง - NTP ภายใต้การป้องกัน NTS

ในขั้นตอนที่สอง ไคลเอนต์จะซิงโครไนซ์เวลากับเซิร์ฟเวอร์ NTP อย่างปลอดภัย เพื่อจุดประสงค์นี้ จะส่งส่วนขยายพิเศษสี่รายการ (ฟิลด์ส่วนขยาย) ในโครงสร้างแพ็กเก็ต NTPv4

  • ส่วนขยายตัวระบุที่ไม่ซ้ำกันประกอบด้วย nonce แบบสุ่มเพื่อป้องกันการโจมตีซ้ำ
  • ส่วนขยายคุกกี้ NTS ประกอบด้วยหนึ่งในคุกกี้ NTP ที่ลูกค้าสามารถใช้ได้ เนื่องจากมีเพียงไคลเอนต์เท่านั้นที่มีคีย์ AAED C2S และ S2C แบบสมมาตร เซิร์ฟเวอร์ NTP จึงต้องแยกคีย์เหล่านั้นออกจากเนื้อหาของคุกกี้
  • NTS Cookie Placeholder Extension เป็นวิธีสำหรับลูกค้าในการขอคุกกี้เพิ่มเติมจากเซิร์ฟเวอร์ ส่วนขยายนี้จำเป็นเพื่อให้แน่ใจว่าการตอบสนองของเซิร์ฟเวอร์ NTP จะไม่ยาวเกินกว่าคำขอมากนัก ซึ่งจะช่วยป้องกันการโจมตีจากการขยายเสียง
  • ตัวตรวจสอบสิทธิ์ NTS และส่วนขยายฟิลด์ส่วนขยายที่เข้ารหัสประกอบด้วยรหัส AAED พร้อมด้วยคีย์ C2S, ส่วนหัว NTP, การประทับเวลา และ EF ข้างต้นเป็นข้อมูลประกอบ หากไม่มีส่วนขยายนี้ ก็เป็นไปได้ที่จะปลอมแปลงการประทับเวลาได้

การซิงโครไนซ์เวลามีความปลอดภัยเพียงใด

เมื่อได้รับคำขอจากไคลเอนต์ เซิร์ฟเวอร์จะตรวจสอบความถูกต้องของแพ็กเก็ต NTP ในการดำเนินการนี้ เขาจะต้องถอดรหัสคุกกี้ แยกอัลกอริธึมและคีย์ AAED หลังจากตรวจสอบความถูกต้องของแพ็คเก็ต NTP เรียบร้อยแล้ว เซิร์ฟเวอร์จะตอบสนองต่อไคลเอนต์ในรูปแบบต่อไปนี้

  • Unique Identifier Extension เป็นสำเนามิเรอร์ของคำขอไคลเอ็นต์ ซึ่งเป็นมาตรการต่อต้านการโจมตีแบบเล่นซ้ำ
  • NTS Cookie Extension คุกกี้เพิ่มเติมเพื่อดำเนินการต่อเซสชัน
  • ตัวตรวจสอบสิทธิ์ NTS และส่วนขยายฟิลด์ส่วนขยายที่เข้ารหัสมีรหัส AEAD พร้อมคีย์ S2C

การจับมือครั้งที่สองสามารถทำซ้ำได้หลายครั้ง โดยข้ามขั้นตอนแรก เนื่องจากแต่ละคำขอและการตอบกลับจะให้คุกกี้เพิ่มเติมแก่ลูกค้า นี่เป็นข้อได้เปรียบที่การดำเนินการ TLS ที่ใช้ทรัพยากรค่อนข้างมากในการประมวลผลและการส่งข้อมูล PKI จะถูกหารด้วยจำนวนคำขอที่ซ้ำกัน วิธีนี้จะสะดวกเป็นพิเศษสำหรับผู้จับเวลา FPGA เฉพาะทาง เมื่อฟังก์ชันหลักทั้งหมดสามารถรวมเข้ากับฟังก์ชันต่างๆ ได้จากสาขาการเข้ารหัสแบบสมมาตร โดยจะถ่ายโอนสแต็ก TLS ทั้งหมดไปยังอุปกรณ์อื่น

NTPSec

NTP มีความพิเศษอย่างไร? แม้ว่า Dave Mills ผู้เขียนโครงการจะพยายามจัดทำรหัสของเขาให้ดีที่สุดเท่าที่จะเป็นไปได้ แต่เป็นโปรแกรมเมอร์ที่หายากที่สามารถเข้าใจความซับซ้อนของอัลกอริธึมการซิงโครไนซ์เวลาที่มีอายุ 35 ปี โค้ดบางส่วนเขียนก่อนยุค POSIX และ Unix API ก็แตกต่างอย่างมากจากที่ใช้ในปัจจุบัน นอกจากนี้จำเป็นต้องมีความรู้ด้านสถิติเพื่อล้างสัญญาณจากการรบกวนบนสายที่มีเสียงดัง

NTS ไม่ใช่ความพยายามครั้งแรกในการแก้ไข NTP เมื่อผู้โจมตีเรียนรู้ที่จะใช้ประโยชน์จากช่องโหว่ NTP เพื่อขยายการโจมตี DDoS ก็เห็นได้ชัดว่าจำเป็นต้องมีการเปลี่ยนแปลงครั้งใหญ่ และในขณะที่ร่าง NTS กำลังอยู่ระหว่างการเตรียมและสรุปผล มูลนิธิวิทยาศาสตร์แห่งชาติของสหรัฐอเมริกา (US National Science Foundation) เมื่อปลายปี 2014 ได้จัดสรรเงินช่วยเหลืออย่างเร่งด่วนสำหรับการปรับปรุง NTP ให้ทันสมัย

คณะทำงานไม่ได้นำโดยใครเลย แต่เป็นผู้นำ เอริก สตีเฟน เรย์มอนด์ - หนึ่งในผู้ก่อตั้งและเสาหลักของชุมชนโอเพ่นซอร์สและผู้แต่งหนังสือ มหาวิหารและบาซาร์- สิ่งแรกที่เอริคและเพื่อนๆ พยายามทำคือย้ายรหัส NTP จากแพลตฟอร์ม BitKeeper ไปยังคอมไพล์ แต่มันก็ไม่ได้ผล หัวหน้าโครงการ Harlan Stenn ไม่เห็นด้วยกับการตัดสินใจครั้งนี้และการเจรจาต้องหยุดชะงัก จากนั้นจึงตัดสินใจแยกรหัสโครงการ และ NTPSec ก็ถือกำเนิดขึ้น

ประสบการณ์อันแข็งแกร่ง รวมถึงการทำงานกับ GPSD พื้นฐานทางคณิตศาสตร์ และทักษะมหัศจรรย์ในการอ่านโค้ดโบราณ - Eric Raymond คือแฮ็กเกอร์ที่สามารถดึงโปรเจ็กต์ดังกล่าวออกมาได้อย่างแน่นอน ทีมงานพบผู้เชี่ยวชาญด้านการย้ายโค้ดและ NTP ในเวลาเพียง 10 สัปดาห์ ตัดสินบน GitLab งานเต็มไปด้วยความผันผวน

ทีมของเอริค เรย์มอนด์รับงานนี้ในลักษณะเดียวกับที่ออกุสต์ โรแดงทำกับก้อนหิน ด้วยการลบโค้ดเก่า 175 KLOC ออก พวกเขาสามารถลดพื้นที่การโจมตีได้อย่างมากโดยการปิดช่องโหว่ด้านความปลอดภัยจำนวนมาก

นี่คือรายการที่ไม่สมบูรณ์ของรายการที่รวมอยู่ในการแจกจ่าย:

  • refclock ที่ไม่มีเอกสาร ล้าสมัย ล้าสมัย หรือใช้งานไม่ได้
  • ไลบรารี ICS ที่ไม่ได้ใช้
  • ลิโบพต์/ออโตเจน
  • รหัสเก่าสำหรับ Windows
  • เอ็นทีพีดีซี
  • กุญแจอัตโนมัติ
  • รหัส ntpq C ได้รับการเขียนใหม่ใน Python
  • รหัส sntp/ntpdig C ได้รับการเขียนใหม่ใน Python

นอกเหนือจากการล้างโค้ดแล้ว โปรเจ็กต์ยังมีงานอื่นๆ อีกด้วย นี่คือรายการความสำเร็จบางส่วน:

  • การป้องกันโค้ดจากบัฟเฟอร์ล้นได้รับการปรับปรุงอย่างมีนัยสำคัญ เพื่อป้องกันไม่ให้บัฟเฟอร์ล้น ฟังก์ชันสตริงที่ไม่ปลอดภัยทั้งหมด (strcpy/strcat/strtok/sprintf/vsprintf/gets) จะถูกแทนที่ด้วยเวอร์ชันที่ปลอดภัยที่ใช้ขีดจำกัดขนาดบัฟเฟอร์
  • เพิ่มการรองรับ NTS
  • ปรับปรุงความแม่นยำของขั้นตอนเวลาเป็นสิบเท่าโดยการเชื่อมโยงฮาร์ดแวร์ทางกายภาพ เนื่องจากนาฬิกาคอมพิวเตอร์สมัยใหม่มีความแม่นยำมากกว่าเมื่อ NTP ถือกำเนิดมาก ผู้รับผลประโยชน์ที่ใหญ่ที่สุดคือ GPSDO และวิทยุบอกเวลาโดยเฉพาะ
  • จำนวนภาษาการเขียนโปรแกรมลดลงเหลือสองภาษา แทนที่จะเป็น Perl, awk และแม้กระทั่งสคริปต์ S ตอนนี้กลับกลายเป็น Python ทั้งหมด ด้วยเหตุนี้ จึงมีโอกาสมากขึ้นสำหรับการใช้โค้ดซ้ำ
  • แทนที่จะใช้สคริปต์เครื่องมืออัตโนมัติ โปรเจ็กต์เริ่มใช้ระบบสร้างซอฟต์แวร์ WAF.
  • อัปเดตและจัดระเบียบเอกสารโครงการใหม่ จากการรวบรวมเอกสารที่ขัดแย้งและบางครั้งก็โบราณ พวกเขาสร้างเอกสารที่ค่อนข้างผ่านได้ สวิตช์บรรทัดคำสั่งทุกตัวและเอนทิตีการกำหนดค่าทุกรายการมีความจริงเวอร์ชันเดียวแล้ว นอกจากนี้ หน้าคู่มือและเอกสารเว็บยังถูกสร้างขึ้นจากไฟล์หลักเดียวกันอีกด้วย

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 มีขนาดเล็กลง ใช้หน่วยความจำน้อยลง และเข้าถึง CPU เมื่อจำเป็นเท่านั้น นี่เป็นข้อดีอย่างมากสำหรับการประหยัดทรัพยากรและพลังงาน
  • chrony รองรับการประทับเวลาฮาร์ดแวร์บน Linux ช่วยให้สามารถซิงโครไนซ์บนเครือข่ายท้องถิ่นได้อย่างแม่นยำอย่างยิ่ง

อย่างไรก็ตาม chrony ยังขาดคุณสมบัติบางอย่างของ NTP แบบเก่า เช่น ไคลเอนต์/เซิร์ฟเวอร์แบบออกอากาศและมัลติคาสต์ นอกจากนี้ NTP แบบคลาสสิกยังรองรับระบบปฏิบัติการและแพลตฟอร์มจำนวนมากอีกด้วย

หากต้องการปิดใช้งานฟังก์ชันการทำงานของเซิร์ฟเวอร์และคำขอ NTP ไปยังกระบวนการ chronyd เพียงเขียนพอร์ต 0 ในไฟล์ chrony.conf ซึ่งจะทำในกรณีที่ไม่จำเป็นต้องรักษาเวลาสำหรับไคลเอนต์หรือเพียร์ NTP ในเวอร์ชัน 2.0 พอร์ตเซิร์ฟเวอร์ NTP จะเปิดเฉพาะเมื่ออนุญาตการเข้าถึงโดยคำสั่งอนุญาตหรือคำสั่ง หรือมีการกำหนดค่าเพียร์ NTP หรือใช้คำสั่งการออกอากาศ

โปรแกรมประกอบด้วยสองโมดูล

  • chronyd เป็นบริการที่ทำงานอยู่เบื้องหลัง ได้รับข้อมูลเกี่ยวกับความแตกต่างระหว่างนาฬิกาของระบบและเซิร์ฟเวอร์เวลาภายนอก และปรับเวลาท้องถิ่น นอกจากนี้ยังใช้โปรโตคอล NTP และสามารถทำหน้าที่เป็นไคลเอนต์หรือเซิร์ฟเวอร์ได้
  • chronyc เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งสำหรับการตรวจสอบและควบคุมโปรแกรม ใช้เพื่อปรับแต่งพารามิเตอร์บริการต่างๆ อย่างละเอียด เช่น อนุญาตให้คุณเพิ่มหรือลบเซิร์ฟเวอร์ NTP ในขณะที่ chronyd ยังคงทำงานต่อไป

ตั้งแต่เวอร์ชัน 7 ของ RedHat Linux ใช้ chrony เป็นบริการซิงโครไนซ์เวลา แพ็คเกจนี้ยังมีให้สำหรับลีนุกซ์รุ่นอื่น ๆ อีกด้วย เวอร์ชันเสถียรล่าสุดคือ 3.5 กำลังเตรียมการเปิดตัวเวอร์ชัน 4.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 ออกไปด้านนอก มิฉะนั้นไฟร์วอลล์จะบล็อกการเชื่อมต่อขาเข้าจากโหนดไคลเอนต์

[root@server ~]$ firewall-cmd --add-service=ntp --permanent 
[root@server ~]$ firewall-cmd --reload

ในฝั่งไคลเอ็นต์ การตั้งค่าเขตเวลาให้ถูกต้องก็เพียงพอแล้ว

[root@client ~]$ timedatectl set-timezone Europe/Moscow

ไฟล์ /etc/chrony.conf ระบุ IP หรือชื่อโฮสต์ของเซิร์ฟเวอร์ VPS ของเราที่ใช้งานเซิร์ฟเวอร์ NTP chrony

server my.vps.server

และสุดท้าย การซิงโครไนซ์เวลาเริ่มต้นบนไคลเอนต์

[root@client ~]$ systemctl enable --now chronyd
[root@client ~]$ timedatectl set-ntp true

ครั้งต่อไปฉันจะบอกคุณว่ามีตัวเลือกใดบ้างสำหรับการซิงโครไนซ์เวลาโดยไม่ใช้อินเทอร์เน็ต

การซิงโครไนซ์เวลามีความปลอดภัยเพียงใด

การซิงโครไนซ์เวลามีความปลอดภัยเพียงใด

ที่มา: will.com

เพิ่มความคิดเห็น