เหตุใดจึงสำคัญที่เซิร์ฟเวอร์มีเวลาตรงกันแน่นอน


35

ฉันได้อ่านหลาย ๆ ครั้ง (แม้ว่าฉันจะหาไม่ได้ในตอนนี้) ที่ศูนย์ข้อมูลใช้ความพยายามอย่างมากเพื่อให้แน่ใจว่าเซิร์ฟเวอร์ทั้งหมดมีเวลาที่แน่นอน รวมถึง แต่ไม่ จำกัด เพียงการกังวลเกี่ยวกับการกระโดดวินาที

เหตุใดจึงสำคัญที่เซิร์ฟเวอร์มีเวลาเดียวกัน และความคลาดเคลื่อนที่แท้จริงคืออะไร

คำตอบ:


53

ความปลอดภัย

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

การพิสูจน์ตัวตน Kerberos ทำสิ่งนี้อย่างแน่นอนตัวอย่างเช่น ในเวอร์ชันของ Kerberos ที่ใช้ใน Windows ค่าเผื่อเริ่มต้นคือ 5 นาที

นอกจากนี้ยังใช้โดยโปรโตคอลรหัสผ่านแบบใช้ครั้งเดียวหลายครั้งที่ใช้สำหรับการตรวจสอบสิทธิ์แบบสองปัจจัยเช่น Google Authenticator, RSA SecurID เป็นต้นในกรณีเหล่านี้ความอดทนมักจะอยู่ที่ประมาณ 30-60 วินาที

หากไม่มีเวลาที่ซิงค์ระหว่างไคลเอนต์และเซิร์ฟเวอร์จะไม่สามารถทำการตรวจสอบสิทธิ์ให้เสร็จสิ้นได้ (ข้อ จำกัด นี้จะถูกลบออกใน MIT Kerberos รุ่นใหม่ล่าสุดโดยให้ผู้ร้องขอและ KDC กำหนดออฟเซ็ตระหว่างนาฬิกาในระหว่างการตรวจสอบสิทธิ์ แต่การเปลี่ยนแปลงเหล่านี้เกิดขึ้นหลังจาก Windows Server 2012 R2 และจะอยู่ครู่หนึ่งก่อนที่คุณจะเห็นใน Windows version. แต่การใช้งาน 2FA บางอย่างอาจจำเป็นต้องใช้นาฬิกาแบบซิงโครไนซ์เสมอ)

การบริหาร

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


16
+1 การแก้ไขปัญหาข้อผิดพลาดใน ystems แบบกระจายด้วยการบันทึกเวลาที่ไม่ซิงค์กัน: ไม่เคยอีกต่อไป
Mathias R. Jessen

3
เซิร์ฟเวอร์ที่ใช้ NTP daemon จะทำการซิงโครไนซ์ภายใน 0.01 วินาที (ไม่กี่มิลลิวินาที) การซิงโครไนซ์ Windows NTP ดั้งเดิมจะตรวจสอบสองสามครั้งต่อวันและไม่ถูกต้อง มีไคลเอนต์ NTP สำหรับ Windows ที่ให้การซิงโครไนซ์ที่ดี
BillThor

+1 สำหรับคำตอบนี้เพราะฉันเพิ่งตรวจสอบเวลาระบบของฉันและฉันมาสาย 5 วินาที แต่ตอนนี้ฉันใช้ ntp เพื่อซิงโครไนซ์จึงเป็นการดีที่จะเพิ่มคำถามลิงก์ไปยัง ntp.org เพื่อให้ผู้คนสามารถตรวจสอบได้ ระบบ
Freedo

2
makeนอกจากนี้ยังสับสนโดยนาฬิกา skews ระหว่างไคลเอนต์ / เซิร์ฟเวอร์ NFS
Sobrique

@BillThor ข้อมูลของคุณเกี่ยวกับบริการ windows time ประมาณหนึ่งทศวรรษ มันเป็นไคลเอนต์ NTP เต็มรูปแบบตั้งแต่เปิดตัว 2003R2 และซิงค์ตัวแทนส่วนหนึ่งของโดเมนโฆษณาแบบปรับตัว เราเห็นการชดเชยทั่วไป <16 ms ในปี 2008R2 ขีด จำกัด ของติ๊กระบบตั้งเวลา 64Hz เราเห็นการจับเวลาที่ดียิ่งขึ้นในกล่องปี 2012 ซึ่งสามารถใช้ช่วงเวลาที่มีขนาดเล็กลง
rmalayter

17

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


2
นอกจากนี้โซลูชันความปลอดภัยบางตัวเช่น ldap และ / หรือ kerberos จะล้มเหลวหากไม่มีการซิงค์เวลา โซลูชัน HA บางอย่างจะเป็นเช่นไร
เจนนี่ดีพูดว่า Reinstate Monica

7

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

นอกจากนี้หากการจำลองเสมือนบนเซิร์ฟเวอร์ VMWare ESXi และเวลาของ VM ไม่ซิงค์กับไฮเปอร์ไวเซอร์การกระทำเช่น vmotion อาจซิงค์นาฬิกา VM กับไฮเปอร์ไวเซอร์อีกครั้งและสิ่งนี้จะนำไปสู่ผลลัพธ์ที่ไม่สามารถคาดการณ์ได้ ถ้าความแตกต่างของเวลามีขนาดใหญ่พอ

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


6

เมื่อคุณกล่าวถึงวินาทีกระโดดควรสังเกตว่าพวกเขาต้องการการจัดการที่ยากเป็นพิเศษ

พวกเขามักจะเพิ่มโดยการฉีดที่สองเป็น 23:59:60 นี่เป็นปัญหาถ้าคุณตรวจสอบการประทับเวลาเป็น 0-59 สำหรับฟิลด์นาทีและวินาที ทางเลือกในการทำซ้ำ 23:59:59 เพื่อทำให้มันยาว 2 วินาทีนั้นไม่ค่อยดีนักเนื่องจากมันจะยุ่งกับสิ่งต่าง ๆ ที่มีความอ่อนไหวต่อจังหวะเวลาจนถึงระดับต่อวินาที

Google มาพร้อมกับวิธีแก้ปัญหาที่ดีสักพักหนึ่งซึ่งดูเหมือนว่ายังไม่ได้รับการยอมรับ ทางออกของพวกเขาคือการใช้การกระโดด "smear" และแยกการเปลี่ยนแปลงในช่วงระยะเวลาหนึ่งกระบวนการทั้งหมดที่จัดการโดยเซิร์ฟเวอร์ NTP พวกเขาเผยแพร่บล็อกเกี่ยวกับมันในปี 2011 ทำให้อ่านน่าสนใจและดูเหมือนว่าเกี่ยวข้องกับคำถามนี้


ฟังดูคล้ายกับพฤติกรรมการฆ่าลูกค้าของ NTPซึ่งถูกนำไปใช้อย่างถาวร
CVN

@ MichaelKjörlingเป็นประเภท ความแตกต่างคือการฆ่านั้นมีจุดประสงค์เพื่อหลีกเลี่ยงการกระโดดครั้งใหญ่หลังจากที่นาฬิกาถูกตัดสินว่าผิดโดยทำการแก้ไขเมื่อเวลาผ่านไป สิ่งที่ google ทำคือการเพิ่มออฟเซ็ตลงในเซิร์ฟเวอร์ ntp ของพวกเขาโดยเจตนาล่วงหน้าและไม่เคยมีการก้าวกระโดดครั้งที่สอง
Kaithar

5

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


4

ฉันเห็นด้วยกับทุกประเด็นข้างต้น ฉันต้องการที่จะโยนความคิดเพิ่มเติม
ฐานข้อมูลบางอย่างเช่นCassendra พึ่งพาการลงเวลาอย่างมาก นั่นคือวิธีจัดการกับการเกิดพร้อมกัน

การประทับเวลาที่แตกต่างกันจะทำให้ฐานข้อมูลยุ่งเหยิง


2
นี่คือการโพสต์ที่ดีขึ้นเป็นความคิดเห็น
เดฟ M

ดังนั้นฉันจึงอัพเกรด glibc บนเครือข่าย CentOS 5.2 หลายเครื่องและการอัพเดทตั้งครึ่งเวลาของเขตเวลา MST โดยไม่ได้ตั้งใจ - เราทันทีมีปัญหากับผู้ใช้ที่ได้รับการสุ่มออกจากระบบเป็น "ไม่ทำงาน" วิดเจ็ตและ dodings เล็ก ๆ ทุกประเภทคาดว่าเวลาจะถูกต้องมากขึ้นหรือน้อยลง นอกจากนี้หากเวลาของคุณผิดพลาดและได้รับการแก้ไขอัตโนมัติกลับมาคุณก็เลิกกับไฟล์และบันทึกเวลาที่ทำให้สับสนและมาจากอนาคต ...
Linux Nerd

ฉันคาดหวังว่าสิ่งนี้จะเป็นจริงของฐานข้อมูลแบบกระจายจำนวนมาก ความแตกต่างในการประทับเวลาเพียงไม่กี่วินาทีอาจเพียงพอที่จะกลับคำสั่งของการดำเนินการสองอย่าง
Kaithar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.