۱۳۹۲ اردیبهشت ۴, چهارشنبه

نصب و راه اندازی سرویس NTP در لینوکس


پروتکل (Network Time Protocol (NTP برای تنظیم و همگام سازی دقیق ساعت سیستم ها و دستگاه ها با ساعت های اتمی مورد استفاده قرار می گیرد.سرورهای NTP از یک ساختار سلسه مراتبی پیروی می کند که اصطلاحا به آنها Stratum گفته می شود.
 
Stratum 1 - مستقیما به ساعت های اتمی متصل هستند و خود را با آنها همگام می کنند.
Stratum 2 - به سرورهای Stratum 1 متصل هستند.
هر چه سطح Stratum ها پایین تر می آید ،از سرورهای با دقت کمتری برای همگام سازی استفاده می کنند.

تصویر یک Stratum 0
The U.S. Naval Observatory Alternate Master Clock at Schriever AFB (Colorado) is a Stratum 0 source for NTP

در هر شبکه ای بهتر است که حداقل یه NTP سرور وجود داشته باشد و کلیه سرورها و سخت افزارها ،ساعت خود را  با آن هماهنگ کنند.در ادمه به نحوه نصب و راه اندازی سرویس NTP می پردازیم.
در این آموزش ما از سرورهای Stratum سطح یک به آدرس 0.us.pool.ntp.org و wwv.nist.gov بهره می گیریم.
 مرحله اول - نصب :
برای نصب در لینوکس های ردهتی از قبیل فدورا و سنت او اس با استفاده از YUM بدین طریق عمل کنید :
yum -y install ntp
مرحله دوم - تنظیمات :
 با استفاده از ادیتورهای لینوکسی از قبیل nano یا vi مطابق دستور زیر به فایل تنظیم سرویس به آدرس etc/ntp.conf/ بروید.
nano /etc/ntp.conf
 تنظیمات زیر را انجام دهید :
1- ابتدا سرورهای Startum مد نظر خود را مشخص کنید:
server 0.us.pool.ntp.org
server wwv.nist.gov
2-نوع دسترسی سرویس های فوق را مشخص کنید :
restrict 0.us.pool.ntp.org  mask 255.255.255.255 nomodify notrap noquery
restrict wwv.nist.gov mask 255.255.255.255 nomodify notrap noquery
در تنظیمات بالا ما به سرورها اجازه ویرایش تنظیمات یا سوال و پرس و جو از سرور NTP را نخواهیم داد.

Parameters Definitions
ignore Deny all packets and queries
kod Send Kiss-Of-Death packet on access violation
nomodify Deny ntpq / ntpdc queries that attempt to modify the server
notrap Deny control message trap service
noquery Deny all ntpq / ntpdc queries
noserve Deny all queries - except ntpq / ntpdc
notrust Deny access unless cryptographically authenticated (ver 4.2 onwards)
nopeer Deny all packets that attempt to establish a peer association
 3-همانند همه سرویس های دیگر ،به خود سرور دسترسی کامل را می دهیم :
restrict 127.0.0.1
4-رنج آدرس IP هایی که می خواهیم اجازه پرس و جوی زمان از سرور را داشته باشند به طریق زیر اضافه می کنیم :
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
 5- تنظیم سرویس تا در زمان استارت آپ روشن و مشغول به کار شود :
chkconfig ntpd on
6- روش کردن سرویس NTP
service ntpd restart
مرحله سوم - بررسی عملکرد سرویس :
بهتر این است که همان شروع کار  درستی عملکرد سرویس را مورد بررسی قرار دهیم :
 ntpq -p 0.us.pool.ntp.org
 خروجی دستور :
remote              refid         st t     when    poll     reach    delay    offset    jitter
==============================================================================
*clock.sjc.he.ne .CDMA.              1 u     287      1024    377     41.147   2.016    0.376
+clock.fmt.he.ne .CDMA.             1 u     793      1024    377     38.808   0.093     0.123
+clock.nyc.he.ne .CDMA.             1 u     666      1024    377     43.767   -2.950   0.182
-tick.e.mattnord 129.7.1.66         2 u     893      1024    377     0.702   -0.233     0.844
برای همگام سازی صحیح ، اعداد delay ، jitter و  offset باید غیرصفر و علاوه برآن مقدار jitter زیر 100 باشد.

 با استفاده از دستور pgrep ntpd می توانید اطمینان حاصل کنید که سرویس NTP مشغول به کار می باشد  و در جواب باید شناسه پروسس سرویس را برگرداند.

مرجله چهارم - ایجاد دسترسی در فایروال :
سرویس NTP از پورت 123 UDP برای ارتباط با سرورها و کلاینت ها استفاده می کند.برای این منظور 2 رول برای دسترسی سرور ما برای همگام سازی با سرورهای مد نظرمان نیاز است و 2 رول برای دسترسی کلاینت ها به سرور محلی ما
رول برای دسترسی به Stratum سرورها :
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
iptables -A INPUT -p udp --sport 123 -j ACCEPT
رول برای دسترسی کلاینت ها به سرور :
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --sport 123 -j ACCEPT

و در آخر برای ذخیره سازی دستور ها :
/etc/init.d/iptables save

توجه داشته باشید که شما می توانید این رول ها را بر اساس نیازهای خود ویرایش کنید،برای مثال آدرس سرورها برای همگام سازی یا آدرس کلاینت ها را به رول ها اضافه کنید.

SNTP :
پروتکل SNTP مدل ساده شده ی NTP می باشد که به دلیل عدم ذخیره سازی وضعیت در دوره های طولانی مدت بر روی دستگاه ها و سرورهایی که نیازی به زمان دقیق ندارند مورد استفاده قرار می گیرد.نمونه این دستگاه ها و سیستم عامل ها که از پروتکل SNTP بهره می گیرد،میکروتیک می باشد.


منابع :
 http://www.tldp.org/LDP/sag/html/basic-ntp-config.html
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sect-Date_and_Time_Configuration-Command_Line_Configuration-Network_Time_Protocol.html

 نگارنده : 
رضا بهروزی