برای همگام‌سازی ساعت سیستم‌های مختلف در یک شبکه می‌توانید از پروتکل NTP استفاده کنید. این پروتکل امکان تنظیم ساعت سیستم‌ها بر اساس یک منبع زمانی مشخص را فراهم می‌کند.

Chrony یکی از ابزارهای کاربردی برای پیاده‌سازی NTP در لینوکس است که علاوه بر همگام‌سازی ساعت سیستم با سرورهای مرجع، امکان راه‌اندازی یک سرور NTP برای سایر سیستم‌های شبکه را نیز فراهم می‌کند.

در این مقاله، نحوه نصب و پیکربندی Chrony در اوبونتو را گفته و در ادامه، روش باز کردن پورت 123 و بررسی وضعیت سرویس را توضیح می‌دهیم.

نصب Chrony در اوبونتو

ابتدا فهرست بسته‌های سیستم را به‌روزرسانی کنید و سپس Chrony را نصب کنید:

sudo apt update
sudo apt install chrony

پس از پایان نصب، سرویس Chrony روی سیستم قرار می‌گیرد و می‌توانید تنظیمات مربوط به سرور NTP را انجام دهید.

پیکربندی Chrony به‌عنوان سرور NTP

فایل اصلی تنظیمات Chrony در مسیر /etc/chrony/chrony.conf قرار دارد. برای ویرایش این فایل، دستور زیر را اجرا کنید:

sudo nano /etc/chrony/chrony.conf

در این فایل می‌توانید سرورهای مرجع زمان و محدوده IP سیستم‌هایی را که اجازه اتصال به سرور NTP دارند، مشخص کنید.

تنظیم سرورهای مرجع زمان

برای همگام‌سازی ساعت سرور با منابع زمانی عمومی یا محلی، خطوط زیر را به فایل تنظیمات اضافه کنید:

server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst

در این تنظیمات، سرورهای مشخص‌شده به‌عنوان منابع مرجع زمان استفاده می‌شوند. گزینه iburst نیز باعث می‌شود Chrony هنگام برقراری ارتباط اولیه، درخواست‌های بیشتری ارسال کند تا فرایند همگام‌سازی سریع‌تر انجام شود.

مشخص کردن محدوده دسترسی کلاینت‌ها

برای اینکه سایر سیستم‌های شبکه بتوانند از این سرور برای همگام‌سازی ساعت استفاده کنند، باید محدوده IP مجاز را مشخص کنید.

برای این کار، خط زیر را به فایل تنظیمات اضافه کنید:

allow 192.168.0.0/16

این تنظیم به سیستم‌هایی با آدرس IP در محدوده 192.168.0.0 تا 192.168.255.255 اجازه می‌دهد به سرور NTP دسترسی داشته باشند.

در صورت نیاز می‌توانید این محدوده را متناسب با ساختار شبکه خود تغییر دهید. بهتر است فقط شبکه‌هایی را مجاز کنید که واقعاً به سرویس NTP شما نیاز دارند.

راه‌اندازی مجدد سرویس Chrony

پس از اعمال تغییرات، باید سرویس Chrony را مجدداً راه‌اندازی کنید تا تنظیمات جدید بارگذاری شوند:

sudo systemctl restart chrony

فعال‌سازی Chrony هنگام راه‌اندازی سیستم

برای اینکه سرویس Chrony پس از هر بار روشن شدن سرور به‌صورت خودکار اجرا شود، دستور زیر را وارد کنید:

sudo systemctl enable chrony

با این کار، سرویس پس از راه‌اندازی مجدد سیستم نیز به‌صورت خودکار اجرا خواهد شد.

بررسی وضعیت Chrony

برای اطمینان از عملکرد صحیح Chrony، می‌توانید وضعیت همگام‌سازی زمان و منابع زمانی مورد استفاده را بررسی کنید.

بررسی وضعیت همگام‌سازی زمان

دستور زیر اطلاعات مربوط به وضعیت فعلی همگام‌سازی ساعت را نمایش می‌دهد:

chronyc tracking

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

مشاهده منابع زمانی

برای مشاهده سرورهای مرجع زمانی که Chrony از آن‌ها استفاده می‌کند، دستور زیر را اجرا کنید:

chronyc sources

این دستور فهرستی از منابع زمانی و وضعیت ارتباط با آن‌ها را نمایش می‌دهد. از طریق این خروجی می‌توانید بررسی کنید که Chrony به سرورهای مرجع دسترسی دارد یا خیر.

باز کردن پورت 123 در فایروال

پروتکل NTP برای تبادل اطلاعات از پورت 123/UDP استفاده می‌کند. بنابراین، اگر فایروال سرور فعال باشد، باید اجازه عبور درخواست‌های NTP را صادر کنید.

بررسی قوانین فایروال UFW

اگر از UFW برای مدیریت فایروال استفاده می‌کنید، ابتدا وضعیت قوانین فعلی را بررسی کنید:

sudo ufw status

این دستور قوانین فعال فایروال را نمایش می‌دهد.

اجازه دسترسی به پورت NTP

اگر پورت 123 در فایروال باز نیست، با اجرای دستور زیر اجازه دریافت درخواست‌های NTP را صادر کنید:

sudo ufw allow 123/udp

از آنجا که NTP از پروتکل UDP استفاده می‌کند، هنگام تعریف قانون فایروال باید نوع پروتکل را نیز مشخص کنید.

برای بررسی تغییرات، دوباره دستور زیر را اجرا کنید:

sudo ufw status

بررسی وضعیت پورت 123

پس از تنظیم فایروال، بهتر است بررسی کنید که سرویس Chrony روی پورت 123 در حال گوش دادن به درخواست‌ها باشد.

برای این کار می‌توانید از دستور ss استفاده کنید:

sudo ss -tuln | grep :123

اگر سرویس روی پورت موردنظر در حال گوش دادن باشد، خروجی مشابه زیر مشاهده خواهید کرد:

udp   UNCONN   0   0   0.0.0.0:123   0.0.0.0:*

همچنین اگر ابزار netstat روی سیستم نصب باشد، می‌توانید از دستور زیر برای بررسی وضعیت پورت استفاده کنید:

sudo netstat -tuln | grep :123

در صورت فعال بودن پورت، خروجی مشابهی نمایش داده می‌شود.