زمان سیستم دبیان زمان نادرست در اوبونتو یا دبیان - مشکلات مربوط به همگام سازی زمان NTP
زمان دقیق در رایانه نه تنها برای تأیید تاریخ و زمان، بلکه بسیاری از وظایف مهم دیگر را نیز انجام می دهد. برای مثال، سعی کنید زمان خود را چند ساعت به عقب برگردانید یا با مشخص کردن سال 19xx در تنظیمات، زمان خود را به عقب برگردانید. اکنون با آن تاریخ به google.com بروید. به احتمال زیاد شما یک شکست کامل خواهید بود.
در یک محیط شرکتی، زمان پیکربندی نادرست میتواند باعث خطاهای زیادی شود: از ناتوانی کاربر در احراز هویت در سیستم تا... اجازه دهید در مورد چیزهای ناراحت کننده صحبت نکنیم.
راه های مختلفی برای تنظیم تاریخ و زمان وجود دارد. این را به خاطر بسپار این فرآیندتنظیمات سیستم را تحت تأثیر قرار می دهد و بنابراین به امتیازات کاربر root نیاز دارد.
روش شماره 1
این ساده ترین راه است. بیشتر برای مبتدیان ترجیح داده می شود. پیکربندی از طریق یک جادوگر در حالت شبه گرافیک انجام می شود.
Dpkg-تنظیم مجدد tzdata
روش شماره 2
تقریباً مشابه روش شماره 1 است. ساده و راحت، اما این بار فقط در حالت متنی. تنها کاری که باید انجام دهید این است که دستورالعمل های جادوگر را دنبال کنید
روش شماره 3
یکی از ابزارهای systemd
Timedatectl مجموعه منطقه زمانی<название зоны>
مناطق موجود را مشاهده کنید
Timedatectl list-zones
روش شماره 4
با استفاده از ابزار ntpdate. پیش فرض این ابزارنصب نشده است
Apt install ntp ntpdate
یک سرور ntp را به فایل پیکربندی /etc/ntp.conf اضافه کنید، به دنبال خطوطی باشید که با pool شروع می شوند. جزئیات بیشتر در مورد نحو این فایل man ntp.conf
بیایید سرویس زمان شبکه را برای به روز رسانی متوقف کنیم
سرویس ntp stop
دریافت اطلاعات از سرور ntp
Ntpdate -s<адрес ntp-сервера>
شروع مجدد سرویس
شروع سرویس ntp
روش شماره 5
تنظیم دستی منطقه زمانی مورد نیاز را در فایل /etc/timezone بنویسید، برای مثال اروپا/مسکو
Echo Europe/Moscow > /etc/timezone
ما داده های منطقه زمانی را بازنویسی می کنیم.
Ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
دریافت اطلاعات از سرور ntp
|زمان بندی دقیق جنبه بسیار مهمی از عملکرد صحیح بسیاری است برنامه های مدرن. به دلیل زمان نادرست، ممکن است خطاهایی در سرور رخ دهد و داده ها آسیب ببینند (مثلاً هنگام به روز رسانی پایگاه داده یا ثبت نام).
در دبیان 9، همگام سازی زمان به طور پیش فرض داخلی و فعال است. توسط سرور استاندارد ntpd ارائه شده توسط بسته ntp مدیریت می شود. این راهنما شما را با دستورات اساسیبرای مدیریت زمان، نحوه بررسی وضعیت ntpd و نصب سایر سرویس های زمان شبکه را به شما آموزش می دهد.
الزامات
برای کار به یک سرور Debian 9 و یک کاربر با دسترسی به sudo نیاز دارید (راهنما باید در جلسه این کاربر تکمیل شود). شما تمام دستورالعمل های راه اندازی لازم را پیدا خواهید کرد.
دستورات اولیه برای مدیریت زمان
date دستور اصلی برای تعیین زمان در سرور است. هر کاربر می تواند از آن برای اطلاع از تاریخ و زمان استفاده کند:
تاریخ
سه شنبه 4 سپتامبر 17:51:49 UTC 2018
به طور معمول، به طور پیش فرض، سرورها از منطقه زمانی UTC (زمان جهانی هماهنگ) استفاده می کنند - این زمان جهانی هماهنگ است. UTC به طور مداوم زمان را روی سرورها تنظیم می کند و اگر سرورهای زیرساخت در مناطق زمانی مختلف قرار داشته باشند، خطاها را به حداقل می رساند.
برای تغییر منطقه زمانی، از دستور timedatectl استفاده کنید.
لیستی از کمربندهای موجود را درخواست کنید:
timedatectl list-zones
می توانید با استفاده از نوار فاصله لیست را به پایین و با استفاده از b به بالا بروید. منطقه زمانی خود را انتخاب کنید، آن را یادداشت کنید و q را فشار دهید تا لیست بسته شود.
اکنون منطقه زمانی را با استفاده از timedatectl set-timezone تنظیم کنید. از دستور زیر برای تعیین منطقه زمانی مورد نیاز استفاده کنید:
sudo timedatectl مجموعه منطقه زمانی آمریکا/نیویورک
توجه: منطقه زمانی مورد نیاز را جایگزین America/New_York کنید.
مطمئن شوید که تسمه عوض شده است:
تاریخ
سه شنبه 4 سپتامبر 13:52:57 EDT 2018
مخفف منطقه زمانی مقدار جدید را منعکس می کند.
وضعیت ntpd
به طور پیش فرض، دبیان 9 از سرور استاندارد ntpd برای همگام سازی زمان با مجموعه ای از سرورهای خارجی استفاده می کند. می توانید وضعیت آن را با استفاده از systemctl بررسی کنید:
وضعیت sudo systemctl ntp
ntp.service - LSB: شبح NTP را راه اندازی کنید
بارگیری شد: بارگیری شد (/etc/init.d/ntp؛ ایجاد شد؛ از پیش تعیین شده فروشنده: فعال)
فعال: فعال (در حال اجرا) از سه شنبه 2018-09-04 15:07:03 EDT; 30 دقیقه پیش
اسناد: man:systemd-sysv-generator(8)
فرآیند: 876 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS)
وظایف: 2 (محدود: 4915)
CGroup: /system.slice/ntp.service
└─904 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
. . .
خط فعال (در حال اجرا) نشان می دهد که سرور به درستی کار می کند. با استفاده از دستور ntpq می توانید اطلاعات بیشتری کسب کنید:
ntpq -p
از راه دور refid st t در زمانی که نظرسنجی به تأخیر برسد، لرزش را جبران کند
==============================================================================
0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
-eterna.binary.n 204.9.54.119 2 u 240 256 377 35.392 0.142 0.211
-static-96-244-9 192.168.10.254 2 u 60 256 377 10.242 1.297 2.412
+minime.fdf.net 83.157.230.212 3 u 99 256 377 24.042 0.128 0.250
*t1.time.bf1.yah 98.139.133.62 2 u 31 256 377 11.112 0.621 0.186
+x.ns.gin.ntt.ne 249.224.99.213 2 u 108 256 377 1.290 -0.073 0.132
-ord1.m-d.net 142.66.101.13 2 u 473 512 377 19.930 -1.764 0.293
ntpq ابزار پرس و جو ntpd است. پرچم –p اطلاعات مربوط به سرورهای NTP که ntpd به آنها متصل است جمع آوری می کند. خروجی شما کمی متفاوت خواهد بود، اما شامل سرورهای استاندارد دبیان و چند سرور دیگر می شود. ممکن است ntpd چند دقیقه طول بکشد تا اتصال برقرار شود.
تغییر از ntpd به systemd-timesyncd
برای جایگزینی ntpd، می توانید از دیمون timesyncd داخلی systemd استفاده کنید. timesyncd یک جایگزین ساده برای ntpd است که با systemd یکپارچه شده است. با این حال، هنگام مهاجرت، توجه داشته باشید که timesyncd به عنوان یک سرور زمان عمل نمی کند و از روش های کمتر پیچیده برای همگام سازی زمان سیستم استفاده می کند. اگر از سیستم های پیچیده توزیع شده بلادرنگ استفاده می کنید، بهتر است با ntpd بمانید.
برای تغییر به timesyncd، ابتدا ntpd را حذف کنید.
sudo apt purge ntp
سپس timesyncd را اجرا کنید:
sudo systemctl start systemd-timesyncd
وضعیت آن را بررسی کنید:
وضعیت sudo systemctl systemd-timesyncd
systemd-timesyncd.service - همگام سازی زمان شبکه
بارگیری شد: بارگیری شد (/lib/systemd/system/systemd-timesyncd.service؛ فعال؛ از پیش تعیین شده فروشنده: فعال)
Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
فعال: فعال (در حال اجرا) از سه شنبه 2018-09-04 16:14:23 EDT; 1 ثانیه پیش
اسناد: man:systemd-timesyncd.service(8)
PID اصلی: 3399 (systemd-timesyn)
وضعیت: "همگام سازی با سرور زمان 198.60.22.240:123 (0.debian.pool.ntp.org)."
وظایف: 2 (محدود: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─3399 /lib/systemd/systemd-timesyncd
برای دریافت اطلاعات در مورد درک زمان فعلی systemd، تایپ کنید:
timedatectl
زمان محلی: سه شنبه 2018-09-04 16:15:34 EDT
زمان جهانی: سه شنبه 2018-09-04 20:15:34 UTC
زمان RTC: سه شنبه 2018-09-04 20:15:33
منطقه زمانی: آمریکا/نیویورک (EDT، -0400)
زمان روشن بودن شبکه: بله
NTP همگام شده: بله
RTC در TZ محلی: خیر
این فرمان زمان محلی، زمان جهانی (که ممکن است همان زمان محلی باشد اگر از منطقه زمانی UTC تغییر مکان نداده باشید) و اطلاعات مربوط به وضعیت زمانی شبکه را نمایش می دهد. زمان روشن بودن شبکه: yes نشان می دهد که سرویس timesyncd فعال است و NTP synchronized: yes نشان می دهد که زمان با موفقیت همگام سازی شده است.
نتیجه گیری
اکنون می دانید که چگونه زمان سیستم را مدیریت کنید سرورهای دبیان 9.
حفظ زمان کم و بیش دقیق روی سرور مهم است. به طوری که خواندن گزارش ها راحت باشد، به طوری که سرور شما نامه هایی از گذشته یا آینده برای دیگران ارسال نکند، به طوری که ... مهم نیست - فقط مهم است و تمام.
به دلیل اشکالات مختلف، خطاهای سخت افزاری، چرخه های برق، زمان روی سرور ممکن است نسبت به زمان اتمی تاخیر داشته باشد یا عجله کند. معمولا - نه بیشتر از یک ثانیه در روز، در عمل - یک ثانیه در ماه، یا حتی کمتر. اما عملکرد ضعیف سخت افزار می تواند زمان را بسیار بیشتر از دست بدهد (به طور کلی، نوسانات شدید در زمان دلیلی برای فکر کردن به سلامت سخت افزار است).
دو راه رایج برای همگام سازی زمان در لینوکس وجود دارد - ntpdate با استفاده از cron یا اجرای مداوم ntpd. شما در انتخاب هر یک از آنها آزاد هستید، من در مورد هر دو خواهم نوشت. اما از طرف خودم، من همچنان استفاده از ntpdate را با توجه به تاج توصیه می کنم، به خصوص اگر برای شما خیلی مهم نیست که دائماً زمان را روی سرور با خطای کمتر از 0.1 ثانیه نگه دارید.
وقتی یک آسیبپذیری در ntpd امکان استفاده از سرورهای ntpd را برای انجام یک حمله تقویتی udp (زمانی که بسته کوچکی که به سمت سرور شما فرستاده میشود به شما اجازه میدهد یک بسته udp بزرگ را به سمت سرور مورد حمله شخص دیگری تولید کنید) ممکن میسازد، با ntpd وجود داشت - http ://habrahabr.ru /post/209438/
البته اون آسیب پذیری رفع شد (و نوشته بودند چطور بدون آپدیت ntpd از آن فرار کنیم) اما تضمین اینکه مشکل مشابهی باقی نماند کجاست؟ و دوباره، ntpd همچنان روی udp کار میکند و حملاتی از نوع مشابه امکانپذیر است، البته بدون افزایش زیاد ترافیک (اما این به شما امکان میدهد مهاجم را مخفی کنید و سرور خود را در معرض سوء استفاده قرار دهید). به هر حال، من به این واقعیت برخوردم که ntpd، که در ماژول ipmi سرور تعبیه شده است، در معرض این حمله قرار گرفت و از آزار همسایگان من در کشور لذت برد =)
بنابراین، اگر آمادگی خواندن مداوم خبرنامههای امنیتی، دنبال کردن بهروزرسانیها و غیره را ندارید، باز هم نباید ntpd را نصب کنید.
بنابراین، روش اول: ntpdate را یک بار در روز طبق تاج اجرا کنید.
ntpd را حذف می کنیم، اگر وجود داشته باشد:
root@server:~# apt-get remove --purge ntpd
تنظیم ntpdate:
root@server:~# apt-get نصب ntpdate
و یک فایل /etc/cron.d/ntpdate با محتوای زیر ایجاد کنید:
0 6 * * * root ntpdate ntp.ubuntu.com 1>/dev/null 2>&1
اکنون هر روز ساعت 6 صبح (زمان و فرکانس را خودتان تنظیم کنید) ساعت به روز می شود.
روش دوم: nptd.
ما باید آن را برعکس بیان کنیم:
root@server:~# apt-get نصب ntpd
و روی کانفیگ بنویسید /etc/ntpd.confپیکربندی کم و بیش صحیح:
غیرفعال کردن اعتبار
غیرفعال کردن آمار
سرور 0.ubuntu.pool.ntp.org
سرور 1.ubuntu.pool.ntp.org
سرور 2.ubuntu.pool.ntp.org
سرور 3.ubuntu.pool.ntp.org
سپس آن را دوباره راه اندازی می کنیم:
root@server:~# /etc/init.d/ntp راه اندازی مجدد
تمام است، اکنون ساعت ما در زمان واقعی تنظیم شده و با مجموعه ای از سرورهای ntp همگام شده است.
من از اتاق عمل استفاده می کنم سیستم دبیانگنو/لینوکس روی سرورها برای میزبانی وب سایت. وقتی نسخه 9 Stretch در تابستان 2017 منتشر شد، خوشحالم که PHP 7 برای آن در مخازن موجود است که، همانطور که می دانید، سریعتر از PHP 5 کار می کند.
در این مقاله نشان خواهم داد که تنظیم زمان در Debian 9 نیز بهتر شده است. همه چیز کاملاً پیکربندی شده است و برای آن کار می کند مجموعه استانداردنرم افزار Debian 9 به لطف نسخه به روز شده سیستم شده، که دارای یک سرویس جداگانه است که مسئول همگام سازی زمان سیستم با استفاده از پروتکل است NTP.
نحوه تنظیم زمان در دبیان 9
ابتدا باید در مورد منطقه زمانی خود تصمیم بگیرید و آن را تنظیم کنید، برای من اینگونه به نظر می رسد:
# timedatectl مجموعه منطقه زمانی اروپا/ولگوگراد
سپس باید فایل را ویرایش کنید /etc/systemd/timesyncd.conf، که در آن سرورهای همگام سازی زمان را نشان می دهد، به عنوان مثال مانند زیر:
# این فایل بخشی از systemd است. # # systemd نرم افزار رایگان است. شما می توانید آن را مجدداً توزیع کنید و/یا آن را # تحت شرایط مجوز عمومی عمومی کمتر گنو که توسط # بنیاد نرم افزار آزاد منتشر شده است، تغییر دهید. یا نسخه 2.1 مجوز، یا # (به انتخاب شما) هر نسخه بعدی. # # ورودیهای این فایل پیشفرض زمان کامپایل را نشان میدهند. # با ویرایش این فایل می توانید تنظیمات را تغییر دهید. # پیش فرض ها را می توان به سادگی با حذف این فایل بازیابی کرد. # # برای جزئیات بیشتر به timesyncd.conf(5) مراجعه کنید.
NTP=ru.pool.ntp.org FallbackNTP=pool.ntp.org اینجا در گزینه NTP= سرورهای اولویت برای همگام سازی زمان مشخص شده اند. اگر دسترسی به آنها ناموفق باشد، سرورهای مشخص شده در.
FallbackNTP=
پس از ایجاد تغییرات در فایل پیکربندی، باید سرویس همگام سازی زمان را مجددا راه اندازی کنید:
# systemctl systemd-timesyncd را راه اندازی مجدد کنید
وضعیت تنظیم زمان را می توان با دستور زیر بررسی کرد:
# وضعیت timedatectl
نتیجه زیر نشان می دهد که ساعت روی سرور من به درستی پیکربندی شده است و با استفاده از پروتکل NTP همگام شده است.
زمان محلی: سه شنبه 2018-12-18 16:36:33 +04 زمان جهانی: سه شنبه 2018-12-18 12:36:33 UTC زمان RTC: سه شنبه 2018-12-18 12:36:33 منطقه زمانی: اروپا/ Volgograd (+04، +0400) زمان شبکه روشن: بله NTP همگامسازی شده: بله RTC در TZ محلی: خیر
اینجا،به وقت محلی
- این زمان محلی است؛- زمان UTC (زمان هماهنگ جهانی). این نقطه شروع برای همه مناطق زمانی است.
زمان RTC- زمان در ساعت سخت افزاری سرور (کامپیوتر)؛
منطقه زمانی- منطقه زمانی شما؛
زمان شبکه روشن است- نشان می دهد که آیا کلاینت ntp موجود در systemd فعال است یا خیر.
NTP همگام شده است- گزارش می دهد که آیا زمان با سرور ntp همگام شده است یا خیر.
RTC در TZ محلی- نشان می دهد چه زمانی در ساعت سخت افزاری ذخیره می شود: محلی یا جهانی. در عین حال، بلهبه معنای زمان محلی، نه- در سراسر جهان؛
اطلاعات برای مبتدیان
گاهی از من می پرسند دستوراتی را که می دهم کجا وارد (اجرا) کنم؟
تمام دستورات داده شده در این مقاله باید در کنسول سرور به عنوان یک کاربر ممتاز (root) اجرا شوند. امضا کنید # (octothorp، lattice، sharp، hash) فقط این را می گوید.
به عنوان مشتری کنسول برای اتصال از راه دوربه سرورهایی که از برنامه استفاده می کنم