نحوه ی نصب و راه اندازی NTP (Network Time Protocol) برروی سرور و کلاینت در دبیان
NTP یک قابلیت منحصربفرد برای شرکت ها است که از ان برای زمانبندی ساعت سیستم های شرکت از آن استفاده می کنند.زمانبندی ساعت به دلایل بسیاری مهم است اعم از زمان اجرای اپلیکیشن ها و همچنین لاگ های ورودی انها. زمانیکه یک سیستم سازمانی با ساعت های متفاوت نگهداری شود، عیب یابی مشکلات و تشخیص اینکه تحت چه شرایطی رویدادی رخ داده است، بسیار دشوار خواهد شد.
NTP راه ساده ای برای اطمینان از اینکه تمام سیستم ها با ساعت درستی نگهداری می شوند، تاحد زیادی می تواند پشتیبانی آنرا برای ادمین ساده تر کند.
NTP به صورت پیش فرض با ساعت مرجع که به عنوان سرورهای stratum 0 شناخته می شوند ، کار می کند.تمام NTP سرورهای دیگر به عنوان لایه های پایین تر بر اساس سرور مرجع قرار می گیرند.شروع زنجیره ی NTPیک سرور stratum 1 است که همیشه به طور مستقیم به سرور stratum 0 متصل است. از اینجا سرورهای سطح پایین تر توسط یک ارتباط شبکه به سرورهای سطح بالاتر متصل می شوند. برای درک بهتر به شکل زیر مراجعه کنید.
در حالی که راه اندازی stratum 0 و stratum 1 می تواند انجام شود،اما هزینه ی زیادی دارد و ما در این مقاله تنها به تنظیمات سرور های سطح پایین تر می پردازیم.
نحوه ی زمانبندی ساعت با سرور NTP
در این راهنما به شما آموزش داده می شود که به جای اینکه تمامی هاست های شبکه از سرور NTP عمومی استفاده کنند ، یک سرور با سروهای عمومی NTP ارتباط برقرار خواهد کرد و زمان را برای تمامی هاست های داخل شبکه فراهم خواهد کرد.
یک NTP سرور داخلی اغلب برای نگهداری پهنای باند ایده آل است، همچنین برخی امنیت هایی را از طریق رمزنگاری و محدودیت های NTP افزایش می دهد.
گام اول:نصب سرور NTP
1.اولین گام برای تنظیمات ساختار یک سرور NTP داخلی ، نصب نرم افزار NTP است.پکیج نرم افزار در دبیان به نام NTP است که در حال حاضر شامل تمامی ابزارهای لازم برای تنظیمات سرور NTP سلسله مراتبی می باشد.
همانطور که با تمام آموزش ها درباره ی پیکربندی سیستم ،دسترسی root و یا sudo در نظر گرفته شده است.
گام اول:پیکربندی سرور NTP
2.هنگامیکه سرور NTP نصب شد،زمان پیکر بندی می باشد که از سرورهای stratum برای درخواست زمان استفاده کند. فایل پیکربندی NTP در مسیر /etc/ntp.conf ذخیره شده است، و می تواند با هر ادیتوری اصلاح شود. این فایل شامل FQDN های سرورهای بالاتر است،محدودیت های تنظیم برای این سرور و پارامترهای دیگری برای هاست و سرور ها می باشد.
برای شروع پروسه ی پیکربندی ، سرورهای لایه بالاتر نیاز به پیکربندی دارند.دبیان به صورت پیش فرض NTP pool دبیان را در فایل پیکر بندی قرار می دهد.این برای بیشتر اهداف جالب است،اما یک ادمین می تواند NIST ها را برای سرور بخصوصی ملاقات کند و برای این کار از روش راند رابین استفاده می کند.
در این راهنما سرور مشخصی پیکربندی خواهد شد. فایل پیکربندی به برخی بخش ها تقسیم می شود و به صورت پیش فرض به IPv4 و IPv6 بخش بندی می شود.برای شروع پروسه ی پیکربندی فایل پیکربندی را باید با یک ادیتور باز کنید.
اولین بخش ها (driftfileو statsdir, و statistics) هستند. بخش بعدی شامل سرورهای لایه بالاتر است.الگوی هر سرور خیلی ساده است:
معمولا داشتن چندین سرور strata در این لیست ایده ی خوبی است. این سرور از تمام سرورهای موجود در این لیست query خواهد گرفت و هر کدام در دسترس باشند پاسخ خواهند داد.سرورهای این مثال از لیست زیر هستند: http://tf.nist.gov/tf-cgi/servers.cgi.
گام 3:پیکربندی محدودیت های NTP
3. امکاناتی برای allow و dis allow کزدن هاست ها با سرور NTP وجود دارد.به صورت پیش فرض سرور NTP ساعت را برای همه تنظیم می کند اما اجازه ی پیکربندی برای هردو IPv4 و IPv6 را نمی دهد.
این سرور درحال حاضر برای ارتباطات IPv4 استفاده می شود. پس IPv6 غیرفعال می باشد.اولین چیزی که انجام می دهد برای غیرفعال کردن IPv6 روی سرورتغییر پیش فرض های شروع دیمون است.این توسط تغییر خط /etc/default/ntp انجام می شود.
به فایل کانفیگ اصلی برگردید/etc/ntp.conf،دیمون NTP به صورت خودکار برای اشتراک زمان برای IPv4 و 6 پیکربندی خواهد شد اما تمام پیکربندی اعمال نمی شود.
این توسط دو خط زیر نشان داده شده است.
NTPD کار می کند برای هم مگر اینکه اساس را تکذیب کند.به دلیل اینکه IPv6 غیرفعال باشد،خط restrict -6 می تواند حذف شود و یا توسط # کامنت شود.
این تغییرات از تمام پیام ها چشم پوشی خواهد کرد. این ممکن است به نظر عجیب باشد اما برای تغییرات بعدی ممکن است استفاده شود.
حالا سرور نیاز دارد که بداند که چه کسانی اجازه ی درخواست ساعت از آن را دارند.برای این سرور یک شبکه ی خصوصی 172.27.0.0/16 استفاده خواهد شد.
این خط به سرور اجازه می دهد که هر هاستس در این رنج وجود دارد از سرور درخواست ساعت کند.پارامترهای بعد از mask برای کنترل اینکه چگونه هر هاستی از این شبکه درخواست کند، کمک می کند.اجازه بدهید که در مورد هر کدام از این گزینه های محدودیت توضیح دهیم:
Limited:اشاره به این دارد که اگر یک کلاینت توسط ارسال تعدادی پکت سوء استفاده کند، پکت ها توسط سرور دور انداخته خواهد شد. اگر Kiss of Death packet فعال باشد. به هاست سوءاستفاده کننده ارسال خواهد شد.
KoD:Kiss of Death. اگر هاستی محدودیت پکت ها به سرور را نقض کند. سرور پکت KoD را به آن ارسال خواهد کرد.
Notrap:کاهش پیام های کنترلی مد 6. این پیام های کنترلی برای برنامه های لاگ گیری از راه دور استفادهمی شود.
Nomodify:از درخواست ها ی ntpq و ntpdc که پیکربندی سرور را را تغییر خواهد دادجلوگیری می کند.اما درخواست های اطلاع رسانی هنوز اجازه داده خواهند شد.
Noquery:این گزینه از هاست ها برای درخواست از سرور جلوگیری می کند.برای مثال بدون این گزینه ، هاست ها می توانند از ntpdc و یا ntpq برای تشخیص تایم سرور استفاده کنند.
گام چهارم:query گرفتن شبکه NTP server
4.این یک پیکربندی نسبتا ساده برای شبکه است.برخی مسائل در مورد query گرفتن این سرور وجود دارد که محدودیت هایی را ایجاد کرده است.
به منظور اصلاح این موضوع،یک بیان restrict نیاز است که به این سرورهای ساعت که برای query گرفتن هستند، اضافه شود.این بند restrict اطمینان می دهد که این سرور می تواند به سرورهای سطح بالاتر دسترسی داشته باشد، در تصویر زیر بندهایی برای این موضوع در فایل ntp.conf اضافه شده است.
به گام 3 برگردید، لیستی از سرورها که به عنوان primary ntp server شناخته شده اند ، برای query گرفتن این سرور مشخص شده اند. در پیکربندی ،بند restrict default ignore از برقراری ارتباط این سرور با سرورهای پیکربندی شده جلوگیری خواهد کرد.این می تواند توسط بندخاصی برای هر سرور مشخص شود.این پروسه ی ساده ای است و باید برای هر سرور انجام شود.
Server 129.6.15.28:این خط باید آدرس آی پی به جای نام هاست را داشته باشد. این برای ایمنی است و کمک به dns زمانی که به خطر می افتد است.
restrict 129.6.15.28 mask 255.255.255.255 nomodify notrap nopeer noquery: در این خط قسمت اول به سرور 129.6.15.28 اجازه می دهد. nomodify و notrap و nopeer و noquery محدودیت ها یی هستند که سرور 129.6.15.28 اجازه دارد برروی این سرور داشته باشد.
نکته:آدرس آی پی برای این قسمت می تواند به سادگی توسط nslookup تشخیص داده شود.
5.در این نقطه،سیستم آماده ی گرفتن ساعت خواهد بود.تغییرات نیاز به ذخیره شدن دارد و سرویس ntp نیز باید استارت شود.
سرور ممکن است چند ثانیه طول بکشد اما پروسه می تواند توسط ntpdc و ntpq مانیتور شود.
آرگومان های دودستور یک کار را انجام می دهند. گزینه ی –p لیستی از peer ها را که در حال حاضر هستند نشان می دهد و گزینه ی –n قابلیت نمایش ادرس ای پی به جای نام هاست می باشد.
قسمت مهم خروجی ntpdc سمت چپ آدرس ای پی ریموت است. کاراکتر * اشاره دارد به سروری که برای زمانبندی ساعت انتخاب شده است.
قسمت مهم این خروجی نیز سمت چپ آدرس ای پی ریموت است. کاراکتر * اشاره دارد به سروری که برای زمانبندی ساعت انتخاب شده است. سمبول های دیگر نیز معنی خوبی دارند، برای مثال + نشان دهنده ی کاندیدهای بعدی برای زمانبندی می باشند. و علامت – نیز نشان دهنده ی یک سرور پرت است .
در اینجا به نظر می رسد که تنظیمات سرور تمام شده است و سرور می تواند با سرورهای عمومی همزمان شود و همچنین هاست های داخلی نیز می توانند با این سرور زمان خود را تنظیم نمایند.
گام 5:پیکربندی کلاینت NTP
6.هدف از این بخش پیکربندی یک سرور به عنوان strata 2 می باشد که هاست های داخلی بتوانند با این سرور زمان خود را تنظیم کنند.در اینجا سرور در حال اجرا ست و هاست ها نیاز دارند که به صورت مستقیم به سرور متصل شوند.
در مرحله ی بعد فرض بر این است که یک هاست لینوکسی بتواند از سرور strata 2 ما query بگیرد.اولین گام روی هاست لینوکس نصب پکیج ntp است.
این همان پکیجی است که برروی سرور نصب کردیم، اما اینبار به عنوان سرور محلی به جای سرور عمومی پیکربندی خواهد شد.فایل کانفیگ را باز کنید.
تغییرات را به صورت زیر اعمال کنید.
تغییرات را ذخیره کنید. در این هنگام کلاینت به سرور ntp ایجاد شده در شبکه گوش خواهد داد.بعد سرویس ntp را ریستارت کنید. و بررسی کنید که هاست با سرور ntp ایجاد شده همزمان شده است.
در تصاویر زیر نحوه ی بررسی این مورد نشان داده شده است.
در اینجا سرور NTP زمان را بدرستی از طریق strata 1 همزمان کرده است. و سپس به هاست های داخلی منتقل کرده است.
NTP یک قابلیت منحصربفرد برای شرکت ها است که از ان برای زمانبندی ساعت سیستم های شرکت از آن استفاده می کنند.زمانبندی ساعت به دلایل بسیاری مهم است اعم از زمان اجرای اپلیکیشن ها و همچنین لاگ های ورودی انها. زمانیکه یک سیستم سازمانی با ساعت های متفاوت نگهداری شود، عیب یابی مشکلات و تشخیص اینکه تحت چه شرایطی رویدادی رخ داده است، بسیار دشوار خواهد شد.
NTP راه ساده ای برای اطمینان از اینکه تمام سیستم ها با ساعت درستی نگهداری می شوند، تاحد زیادی می تواند پشتیبانی آنرا برای ادمین ساده تر کند.
NTP به صورت پیش فرض با ساعت مرجع که به عنوان سرورهای stratum 0 شناخته می شوند ، کار می کند.تمام NTP سرورهای دیگر به عنوان لایه های پایین تر بر اساس سرور مرجع قرار می گیرند.شروع زنجیره ی NTPیک سرور stratum 1 است که همیشه به طور مستقیم به سرور stratum 0 متصل است. از اینجا سرورهای سطح پایین تر توسط یک ارتباط شبکه به سرورهای سطح بالاتر متصل می شوند. برای درک بهتر به شکل زیر مراجعه کنید.
در حالی که راه اندازی stratum 0 و stratum 1 می تواند انجام شود،اما هزینه ی زیادی دارد و ما در این مقاله تنها به تنظیمات سرور های سطح پایین تر می پردازیم.
نحوه ی زمانبندی ساعت با سرور NTP
در این راهنما به شما آموزش داده می شود که به جای اینکه تمامی هاست های شبکه از سرور NTP عمومی استفاده کنند ، یک سرور با سروهای عمومی NTP ارتباط برقرار خواهد کرد و زمان را برای تمامی هاست های داخل شبکه فراهم خواهد کرد.
یک NTP سرور داخلی اغلب برای نگهداری پهنای باند ایده آل است، همچنین برخی امنیت هایی را از طریق رمزنگاری و محدودیت های NTP افزایش می دهد.
گام اول:نصب سرور NTP
1.اولین گام برای تنظیمات ساختار یک سرور NTP داخلی ، نصب نرم افزار NTP است.پکیج نرم افزار در دبیان به نام NTP است که در حال حاضر شامل تمامی ابزارهای لازم برای تنظیمات سرور NTP سلسله مراتبی می باشد.
همانطور که با تمام آموزش ها درباره ی پیکربندی سیستم ،دسترسی root و یا sudo در نظر گرفته شده است.
کد:
[LEFT]# apt-get install ntp # dpkg --get-selections ntp [Can be used to confirm NTP is installed] # dpkg -s ntp [Can also be used to confirm NTP is installed] [/LEFT]
گام اول:پیکربندی سرور NTP
2.هنگامیکه سرور NTP نصب شد،زمان پیکر بندی می باشد که از سرورهای stratum برای درخواست زمان استفاده کند. فایل پیکربندی NTP در مسیر /etc/ntp.conf ذخیره شده است، و می تواند با هر ادیتوری اصلاح شود. این فایل شامل FQDN های سرورهای بالاتر است،محدودیت های تنظیم برای این سرور و پارامترهای دیگری برای هاست و سرور ها می باشد.
برای شروع پروسه ی پیکربندی ، سرورهای لایه بالاتر نیاز به پیکربندی دارند.دبیان به صورت پیش فرض NTP pool دبیان را در فایل پیکر بندی قرار می دهد.این برای بیشتر اهداف جالب است،اما یک ادمین می تواند NIST ها را برای سرور بخصوصی ملاقات کند و برای این کار از روش راند رابین استفاده می کند.
در این راهنما سرور مشخصی پیکربندی خواهد شد. فایل پیکربندی به برخی بخش ها تقسیم می شود و به صورت پیش فرض به IPv4 و IPv6 بخش بندی می شود.برای شروع پروسه ی پیکربندی فایل پیکربندی را باید با یک ادیتور باز کنید.
کد:
# nano /etc/ntp.conf
اولین بخش ها (driftfileو statsdir, و statistics) هستند. بخش بعدی شامل سرورهای لایه بالاتر است.الگوی هر سرور خیلی ساده است:
کد:
[LEFT] [/LEFT] server <fully qualified domain name> <options> server time.nist.gov iburst â [sample entry]
گام 3:پیکربندی محدودیت های NTP
3. امکاناتی برای allow و dis allow کزدن هاست ها با سرور NTP وجود دارد.به صورت پیش فرض سرور NTP ساعت را برای همه تنظیم می کند اما اجازه ی پیکربندی برای هردو IPv4 و IPv6 را نمی دهد.
این سرور درحال حاضر برای ارتباطات IPv4 استفاده می شود. پس IPv6 غیرفعال می باشد.اولین چیزی که انجام می دهد برای غیرفعال کردن IPv6 روی سرورتغییر پیش فرض های شروع دیمون است.این توسط تغییر خط /etc/default/ntp انجام می شود.
کد:
# nano /etc/default/ntp[LEFT] [/LEFT] NTPD_OPTS='-4 -g' [Add the '[B] -4 [/B]' to this line to tell NTPD to only listen to IPv4]
این توسط دو خط زیر نشان داده شده است.
NTPD کار می کند برای هم مگر اینکه اساس را تکذیب کند.به دلیل اینکه IPv6 غیرفعال باشد،خط restrict -6 می تواند حذف شود و یا توسط # کامنت شود.
این تغییرات از تمام پیام ها چشم پوشی خواهد کرد. این ممکن است به نظر عجیب باشد اما برای تغییرات بعدی ممکن است استفاده شود.
حالا سرور نیاز دارد که بداند که چه کسانی اجازه ی درخواست ساعت از آن را دارند.برای این سرور یک شبکه ی خصوصی 172.27.0.0/16 استفاده خواهد شد.
این خط به سرور اجازه می دهد که هر هاستس در این رنج وجود دارد از سرور درخواست ساعت کند.پارامترهای بعد از mask برای کنترل اینکه چگونه هر هاستی از این شبکه درخواست کند، کمک می کند.اجازه بدهید که در مورد هر کدام از این گزینه های محدودیت توضیح دهیم:
Limited:اشاره به این دارد که اگر یک کلاینت توسط ارسال تعدادی پکت سوء استفاده کند، پکت ها توسط سرور دور انداخته خواهد شد. اگر Kiss of Death packet فعال باشد. به هاست سوءاستفاده کننده ارسال خواهد شد.
KoD:Kiss of Death. اگر هاستی محدودیت پکت ها به سرور را نقض کند. سرور پکت KoD را به آن ارسال خواهد کرد.
Notrap:کاهش پیام های کنترلی مد 6. این پیام های کنترلی برای برنامه های لاگ گیری از راه دور استفادهمی شود.
Nomodify:از درخواست ها ی ntpq و ntpdc که پیکربندی سرور را را تغییر خواهد دادجلوگیری می کند.اما درخواست های اطلاع رسانی هنوز اجازه داده خواهند شد.
Noquery:این گزینه از هاست ها برای درخواست از سرور جلوگیری می کند.برای مثال بدون این گزینه ، هاست ها می توانند از ntpdc و یا ntpq برای تشخیص تایم سرور استفاده کنند.
گام چهارم:query گرفتن شبکه NTP server
4.این یک پیکربندی نسبتا ساده برای شبکه است.برخی مسائل در مورد query گرفتن این سرور وجود دارد که محدودیت هایی را ایجاد کرده است.
به منظور اصلاح این موضوع،یک بیان restrict نیاز است که به این سرورهای ساعت که برای query گرفتن هستند، اضافه شود.این بند restrict اطمینان می دهد که این سرور می تواند به سرورهای سطح بالاتر دسترسی داشته باشد، در تصویر زیر بندهایی برای این موضوع در فایل ntp.conf اضافه شده است.
به گام 3 برگردید، لیستی از سرورها که به عنوان primary ntp server شناخته شده اند ، برای query گرفتن این سرور مشخص شده اند. در پیکربندی ،بند restrict default ignore از برقراری ارتباط این سرور با سرورهای پیکربندی شده جلوگیری خواهد کرد.این می تواند توسط بندخاصی برای هر سرور مشخص شود.این پروسه ی ساده ای است و باید برای هر سرور انجام شود.
Server 129.6.15.28:این خط باید آدرس آی پی به جای نام هاست را داشته باشد. این برای ایمنی است و کمک به dns زمانی که به خطر می افتد است.
restrict 129.6.15.28 mask 255.255.255.255 nomodify notrap nopeer noquery: در این خط قسمت اول به سرور 129.6.15.28 اجازه می دهد. nomodify و notrap و nopeer و noquery محدودیت ها یی هستند که سرور 129.6.15.28 اجازه دارد برروی این سرور داشته باشد.
نکته:آدرس آی پی برای این قسمت می تواند به سادگی توسط nslookup تشخیص داده شود.
کد:
[LEFT]# nslookup time-a.nist.gov [The system will reply back with the IP address] [/LEFT]
5.در این نقطه،سیستم آماده ی گرفتن ساعت خواهد بود.تغییرات نیاز به ذخیره شدن دارد و سرویس ntp نیز باید استارت شود.
کد:
[LEFT]# service ntp restart [/LEFT]
سرور ممکن است چند ثانیه طول بکشد اما پروسه می تواند توسط ntpdc و ntpq مانیتور شود.
کد:
[LEFT]# ntpdc -pn [This utility will provide basic information about the higher level NTP servers] # ntpq -pn [This utility will provide slightly more information than 'ntpdc'] [/LEFT]
قسمت مهم خروجی ntpdc سمت چپ آدرس ای پی ریموت است. کاراکتر * اشاره دارد به سروری که برای زمانبندی ساعت انتخاب شده است.
قسمت مهم این خروجی نیز سمت چپ آدرس ای پی ریموت است. کاراکتر * اشاره دارد به سروری که برای زمانبندی ساعت انتخاب شده است. سمبول های دیگر نیز معنی خوبی دارند، برای مثال + نشان دهنده ی کاندیدهای بعدی برای زمانبندی می باشند. و علامت – نیز نشان دهنده ی یک سرور پرت است .
در اینجا به نظر می رسد که تنظیمات سرور تمام شده است و سرور می تواند با سرورهای عمومی همزمان شود و همچنین هاست های داخلی نیز می توانند با این سرور زمان خود را تنظیم نمایند.
گام 5:پیکربندی کلاینت NTP
6.هدف از این بخش پیکربندی یک سرور به عنوان strata 2 می باشد که هاست های داخلی بتوانند با این سرور زمان خود را تنظیم کنند.در اینجا سرور در حال اجرا ست و هاست ها نیاز دارند که به صورت مستقیم به سرور متصل شوند.
در مرحله ی بعد فرض بر این است که یک هاست لینوکسی بتواند از سرور strata 2 ما query بگیرد.اولین گام روی هاست لینوکس نصب پکیج ntp است.
کد:
[LEFT]# apt-get install ntp [/LEFT]
این همان پکیجی است که برروی سرور نصب کردیم، اما اینبار به عنوان سرور محلی به جای سرور عمومی پیکربندی خواهد شد.فایل کانفیگ را باز کنید.
کد:
[LEFT]# nano /etc/ntp.conf [/LEFT]
تغییرات را به صورت زیر اعمال کنید.
تغییرات را ذخیره کنید. در این هنگام کلاینت به سرور ntp ایجاد شده در شبکه گوش خواهد داد.بعد سرویس ntp را ریستارت کنید. و بررسی کنید که هاست با سرور ntp ایجاد شده همزمان شده است.
کد:
[LEFT]# service ntp restart # ntpdc -pn # ntpq -pn [/LEFT]
در اینجا سرور NTP زمان را بدرستی از طریق strata 1 همزمان کرده است. و سپس به هاست های داخلی منتقل کرده است.