NTP სერვერის/კლიენტის ინსტალაცია და კონფიგურაცია

      NTP ანუ Network Time Protocol წარმოადგენს სხვადასხვა კომპანიებისთვის უნიკალურ შესაძლებლობას მათ მფლობელობაში მყოფი სისტემების რეალური დროის დასინქრონებისთვის. დროის სინქრონირება მნიშვნელოვანია ბევრი რამის გამო დაწყებული უსაფრთხოებიდან დამთავრებული log ჩანაწერებით. როდესაც კომპანიის სისტემები სხვადასხვა დროს იყენებენ ძალიან რთულდება შექმნილი პრობლემის აღმოფხვრა, რადგან რთულია ზუსტად დავადგინოთ რა პირობებში ვლინდება პრობლემა.
NTP წარმოადგენს მარტივ გზას სისტემების დროის დასასინქრონებლად, რასაც მომავალში შეუძლია გაამარტივოს სისტემური ადმინისტრატორის ცხოვრება.
NTP-ს მუშაობის პრინციპი მარტივია, მას აქვს მითითებული სერვერები საიდანაც უნდა "წამოიღოს" დრო, ამ სერვერებს კი 'stratum 0' სერვერები ეწოდებათ. ყველა დანარჩენი NTP სერვერი ამ დროს ხდება ნაკლებად პრიორიტეტული, იმის მიხედვით თუ რამდენად შორს არიან ისინი მითითებული სერვერისგან. NTP-ს ჯაჭვი იწყება stratum 1-ით, რომელიც ყოველთვის პირდაპირ არის მიერთებული stratum 0 სერვერზე. ხოლო აქიდან სხვა დაბალი დონის strata სერვერები strata 1-ს უერთდებიან ქსელის საშუალებით. ამ ყველაფრის ცოტა უკეთ წარმოსადგენად დააკვირდით სურათს.



     stratum 0 და 1 სერვერების შექმნა არ წარმოადგენს პრობლემას, მაგრამ მათი შექმნა გარკვეული ხარჯებთანაა დაკავაშირებული ამიტომაც ჩვენ მხოლოდ დაბალი დონის strata სერვერის შექმნას განვიხილავთ. დაბალი დონის strata სერვერში კი იგულისხმება ის, რომ ჩვენი სერვერი დროს "წამოიღებს" strata 0 სერვერიდან, და შემდეგ ამ დროს გაუგზავნის კლიენტებს. 
  • NTP სერვერის ინსტალაცია
      გაითვალისწინეთ, რომ მე ვიყენებ Debian 8-ს. ასე რომ ჩემს მიერ აქ დაწერილი ბრძანებები შეიძლება განსხვავდებოდეს თქვენთვის საჭირო ბრძანებებისგან თუ არ იყენებთ იგივე Linux-ის იგივე ვერსიას. მაშ ასე, პირველი ნაბიჯი არის NTP პროგრამის ინსტალაცია, რომელიც შეიცავს ყველაფერს იმისთვის რომ ჩვენ გავმართოთ NTP სერვერი. აუცილებელია ვიყოთ root მომხმარებელი ან ვფლობდეთ sudo უფლებებს.

# apt-get install ntp
# dpkg -s ntp                          [ამ ბრძანებით შეგიძლიათ შეამოწმოთ დაყენდა თუ არა ntp]


  • NTP სერვერის კონფიგურაცია

მას შემდეგ რაც NTP დაყენდა, შეგვიძლია მის კონფიგურაციას მივხედოთ, მაგალითად შეგვიძლია შევცვალოთ stratum სერვერები, რომლებსაც ჩვენი სერვერი უყურებს. ntp-ს კონფიგურაციის ფაილი შემდეგ მისამართზე ინახება /etc/ntp.conf და მისი შეცვლა ნებისმიერი ტექსტის რედაქტორით შეიძლება. ეს ფაილი შეიცავს მაღალი დონის სერვერების სახელებს, ntp სერვერის შეზღუდვებს და ყველა დანარჩენ საჭირო პარამეტრსა და ოპციას. Debians სტანდარტულად დაყენებული ექნება Debian NTP pool.
სურვილისამებრ შეგვიძლია შევცვალოთ/ჩავამატოთ strata სერვერები. სინტაქსი მარტივია 
server <სერვერის მისამართი> <ოპცია>
server time.nist.gov iburst                               [მაგალითი]
ზოგადად სჯობს, რომ რამოდენიმე strata სერვერი გვქონდეს მითითებული და სერვერი თვითონ აარჩევს რომლიდან სჯობს დროის მიღება.
სერვერს სჭირდება იცოდეს ვინ შეეკითხება დროს მაღალი დონის strata სერვერებს. ამისთვის მე გამოვიყენებ ჩემი კომპიუტერის ლოკალურ ქსელს 192.168.0.102/24. მიამატეთ ntp-ს კონფიგურაციის ფაილს შემდეგი ხაზი.
restrict 192.168.0.0 mask 255.255.255.0 limited kod nomodify notrap nopeer noquery
ეს ხაზი უფლებას აძლევს ამ ქსელიდან ნებისმიერ კომპიუტერს მიაკითხოს სერვერს დროს გასაგებად. პარამეტრები გვეხმარებიან ვაკონტროლოთ თუ რა უფლებები აქვთ ქსელში ჩართულ კომპიუტერებს, როდესაც უკავშირდებიან სერვერს.

  • Limited: თუკი კლიენტი დაარღვევს პაკეტების მოთხოვნის ნორმებს, მისი მოთხოვნა უარყოფილი იქნება სერვერის მიერ.
  • KOD: Kiss of Death ანუ სასიკვდილო კოცნა. თუკი კლიენტი დაარღვევს Limited-ში მითითებულ პაკეტების ნორმებს სერვერი მას გაუგზავნის KOD-ს ანუ შეწყვეტს მასთან კავშირს.
  • Notrap: ბლოკავს mode 6 მესიჯებს, რომლებიც ძირითადად დისტანციური ლოგირებისთვის გამოიყენება.
  • Nomodify: ხელს უშლის ntpq და ntpdc პროგრამებს სერვერის კონფიგურაციის შეცვლაში.
  • Noquery: ხელს უშლის კლიენტებს ინფორმაცია მიიღონ პირდაპირ სერვერიდან. როდესაც ეს ოპცია ჩართულია კლიენტებს ინფორმაციის მიღება შეუძლიათ ntpdc და ntpq ბრძანებების გამოყენებით.
სერვერი უკვე მზად არის ჩაირთოს და მიაწოდოს დრო კლიენტებს. ვინახავთ შეცვლილ კონფიგურაციას და შემდეგი ბრძანებით სერვერს გადავტვირთავთ.

# service ntp restart
გადატვირთვას რამოდენი წამი დაჭირდება. თუ კი კონფიგურაციის ფაილში თუნდაც მცირედი შეცდომაა სერვერი არ გაეშვება. ამის შემოწმება კი შემდეგი ბრძანებით შეგვიძლია

# service ntp status
თუკი სერვერს გამოაქვს მსგავსი შეტყობინება ყველაფერი რიგზეა და შეგვიძლია შემდეგ ნაბიჯზე გადავიდეთ.
ntpdc და ntpq ბრძანებები გვიჩვენებს თუ რომელი მაღალი დონის სერვერიდან მოაქვს დრო ჩვენს სერვერს

# ntpdc -np
# ntpq -pn

ეს ორი ბრძანება ერთი და იგივე რამეს აკეთებს უბრალოდ ntpq-ს შეუძლია ცოტათი მეტი ინფორმაცია მოგვაწოდოს. არგუმენტები ერთნაირი აქვთ ისევე, როგორც მათი მნიშვნელობა -p ნიშნავს სერვერების გამოტანას, ხოლო -n მათი სახელის ნაცვლად მათი IP მისამართების დაწერას.


* აღნიშნული სერვერის IP არის ჩვენი სერვერის მიერ არჩეული სერვერი, რომლიდანაც დროს იღებს და ასინქრონებს. მსგავსად მიგვითითებს ntpdc ბრძანებაც.


  • NTP კლიენტის ინსტალაცია
 სერვერის ინსტალაციისა და კონფიგურაციის მიზანი იყო შეგვექმნა strata 2 დონის სერვერი, რომელსაც ჩვენს კლიენტებს დავაკავშირებდით. ამ ეტაპზე სერვერი ჩართულია და მუშაობს მხოლოდ კლიენტების მიბმაღა დარჩა. პირველ რიგში უნდა ჩავწეროთ NTP პაკეტი, როგორც უკვე გავაკეთეთ სერვერის ინსტალაციის დროს

# apt-get install ntp
# dpkg -s ntp                          [ამ ბრძანებით შეგიძლიათ შეამოწმოთ დაყენდა თუ არა ntp]
ამჯერად ntp უნდა დავაკონფიგურიროთ ისე, რომ დრო წამოიღეს უკვე ჩვენს მიერ შექმნილი სერვერიდან. ntp-ს კონფიგურაციის ფაილში ვამატებთ შემდეგ ხაზებს.
ჩემს შემთხვევაში სერვერიც და კლიენტიც ლოკალურად არიან დაკავშირებულები, ამიტომაც საკმარისია სერვერის ლოკალური ადრესიც. გაითვალისწინეთ, რომ თქვენს შემთხვევაში IP ადრესები შეიძლება იყოს განსხვავებული. კლიენტის კონფიგურაცია სულ ეს იყო.
# service ntp restart
კონფიგურაციის მისაღებად ntp-ს გადავტვირთავთ და თუ ყველაფერი სწორად ჩაწერეთ წესით უკვე უნდა დაკავშირებოდა.

# ntpdc -np
# ntpq -pn
ntpdc და ntpq ბრძანებით კი ნათლად შეგვიძლია დავინახოთ, რომ კლიენტს ნამდვილად ჩვენს მიერ შექმნილი სერვერიდან მოაქვს დრო.



წყარო:
https://www.tecmint.com/install-and-configure-ntp-server-client-in-debian/2/
https://www.tecmint.com/install-ntp-server-in-centos/
https://en.wikipedia.org/wiki/Network_Time_Protocol


Comments

Popular posts from this blog

ProFTPD სერვერის ინსტალაცია/კონფიგურაცია