محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

آموزش راه اندازی NTP سرور در لینوکس به زبان بسیار ساده

چند وقت پیش خانم مهندس مرشدی مقاله ای با عنوان NTP سرور در وب سایت توسینسو منتشر کردند ، در ادامه بنده روش معرفی یک NTP سرور به Domain Controller های موجود در شبکه را نیز به شما معرفی کردم اما هنوز یاد نگرفته ایم که چگونه یک NTP سرور راه اندازی کنیم ؟ در این آموزش قصد داریم به شما نحوه نصب و راه اندازی سرویس NTP در یک سیستم عامل لینوکس را آموزش بدهیم. روشی که ما در نظر گرفته ایم در اکثر نسخه های لینوکس قابل پیاده سازی است اما با توجه به اینکه اکثر لینوکس هایی که در سازمان های بزرگ به عنوان سرور استفاده می شود از نوع RedHat یا CentOS هستند این آموزش نیز تا حدود زیادی بر روی این توزیع ها متمرکز شده است.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

NTP مخفف کلمه Network Time Protocol یا پروتکل زمان شبکه است. NTP برای یکپارچه سازی و هماهنگ سازی زمان در شبکه های توزیع شده مورد استفاده قرار می گیرد ، منظور از شبکه های توزیع شده یا Distributed Networks شبکه هایی است که در آنها تعداد زیادی دستگاه در مناطق جغرافیایی مختلف قرار گرفته اند. در سرورهای ویندوزی عملیات هماهنگ سازی زمان وظیفه Domain Controller ای است که نقش PDC Emulator را بر عهده دارد در واقع سرور PDC Emulator همان Time Server ما است ، اما در سیستم عامل لینوکس همه این موارد بایستی تعریف شود.

فرض کنید یک مدل به شکل زیر را در شبکه دارید ، در این مدل یک NTP سرور به آدرس 192.168.1.5 وجود دارد که اطلاعات زمان و تاریخ خود را از یک سرور خارجی به آدرس 212.65.10.1 بروز رسانی می کند. تمامی Node های دیگر شبکه از این Local NTP زمان خود را بروز رسانی و یکپارچه می کنند ، این سناریو دقیقا مانند همان ساختار Domain controller ها و PDC می باشد که کلاینت ها از سرور PDC و سرور PDC از یک Time Server خارجی اطلاعات زمان را دریافت می کند :

 

آموزش راه اندازی NTP سرور لینوکسی

 

برای نصب و راه اندازی این NTP سرور به آدرس 192.168.1.5 دستورالعملی که در این آموزش می بینید را به ترتیب انجام دهید ، تمامی این دستورات بصورت تمام و کمال در سیستم عامل های لینوکس توزیع CentOS و RedHat Enterprise 5 تست شده است و شما با خیال راحت می توانید آنها را انجام دهید ، قبل از اینکه به سراغ نصب Package های مربوطه بکنیم مطمئن شوید که سرور شما دسترسی لازم به اینترنت را دارد در این حال دستور زیر را برای نصب شدن پکیچ NTP Server وارد کنید :

rpm -ivh ntp-4.2.2p1-9.el5.i386.rpm

بعد از اینکه دستور بالا به درستی انجام شد و Package مربوط به NTP بر روی سرور نصب شد فایل ntp.conf را که در مسیر //etc//ntp.conf قرار دارد را باز کنید. تمامی خطوطی که با pool.ntp.org ایجاد شده اند را با استفاده از علامت # به حالت Comment در بیاورید و در انتها آدرس IP سرور NTP خارجی را وارد به شکل زیر در این فایل وارد کنید :

# server 0.rhel.pool.ntp.org
# server 1.rhel.pool.ntp.org
# server 2.rhel.pool.ntp.org
server 212.65.10.1

فایل ntp.conf را ذخیره کنید و از ان خارج شوید ، محتویات کلی فایل بعد از باز کردن باید به شکل زیر باشد :

# cat /etc/ntp.conf
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.rhel.pool.ntp.org
# server 1.rhel.pool.ntp.org
# server 2.rhel.pool.ntp.org
server 212.65.10.1

#broadcast 192.168.1.255 autokey        # broadcast server
#broadcastclient                        # broadcast client
#broadcast 224.0.1.1 autokey            # multicast server
#multicastclient 224.0.1.1              # multicast client
#manycastserver 239.255.254.254         # manycast server

اگر محتویات فایل را به همان شکلی که در بالا مشاهده می کنید در ntp.conf مشاهده کردید از آن خارج شوید. با استفاده از دستور زیر فایل ntpservers به آدرس //etc//ntp//ntpservers را باز کنید و محتویات آن را به شرح زیر تغییر دهید :

cat /etc/ntp/ntpservers
#This file contains a list of ntp servers to show in the system-config-date user interface.
#It is not recommended that you modify this file by hand.
212.65.10.1

فایل را ذخیره کنید و از آن خارج شوید و اینک فایل step-tickers را در مسیر //etc//ntp//step-tickers مطابق موارد زیر ویرایش کنید :

cat /etc/ntp/step-tickers
server 212.65.10.1

با استفاده از دستور زیر کاری کنید که سرویس ntpd بصورت خودکار زمان boot شدن لینوکس اجرا شود :

chkconfig ntpd on

برخی اوقات وجود فایروال ممکن است از سرویس دهی درست NTP سرور جلوگیری کند برای اینکه این مشکل پیش نیاید کافیست دستورات زیر را برای پیکربندی فایروال IPTables لینوکس برای عبور ترافیک NTP وارد به شکل زیر وارد کنید :

iptables -I OUTPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT
iptables -I INPUT -p udp -m udp -m multiport --sports 123 -m state --state NEW -j ACCEPT

همچنین rule های زیر را نیز در فایل //etc//sysconfig//iptables مشابه زیر انجام دهید :

cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-I OUTPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT
-I INPUT -p udp -m udp -m multiport --dports 123 -m state --state NEW -j ACCEPT
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

بعد از ذخیره کردن و خارج شدن از فایل بالا سرویس ntpd را با استفاده از دستور زیر Start کنید :

 service ntpd start

برای تکمیل شدن فرآیند و اینکه Client Node ها بتوانند زمان را با سرور Sync کنند مراحل زیر را در Client ها انجام دهید ، فایل crontab را در حالت ویرایش باز کنید و دستورات زیر را درون این فایل برای یکسان سازی زمان با NTP سرور در هر دقیقه یکبار وارد کنید :

* * * * * /usr/sbin/ntpdate -s -b -p 8 -u 192.168.1.5 > /dev/null 2>&1

فایل را ذخیره و از آن خارج شوید ، در اینجا شما هم سرور NTP و هم Client ای که قرار است زمان را با آن یکسان سازی کند را به درستی پیکربندی کردید و یک NTP سرور ساده لینوکسی راه اندازی کردید ، امیدوارم مورد توجه شما قرار گرفته باشد . ITPRO باشید.

نویسنده : محمد نصیری

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات