• Ubuntu veya Debian'da yanlış zaman - NTP zaman senkronizasyonu ile ilgili sorunlar. Ubuntu veya Debian'da yanlış zaman - NTP zaman senkronizasyonu ile ilgili sorunlar Ubuntu veya Debian'da bir NTP istemcisi kurma ve yapılandırma

    Sunucuda, az ya da çok doğru zamanı korumak önemlidir. Günlükleri okumayı kolaylaştırmak için, böylece sunucunuz başkalarına geçmişten veya gelecekten mektuplar göndermez, böylece ... umursama - bu sadece önemli ve bu kadar.
    Çeşitli aksaklıklar, donanımdaki hatalar, açılıp kapanmalar nedeniyle, sunucudaki süre atomik zamana göre geride kalabilir, acele edebilir. Genellikle - pratikte günde bir saniyeden fazla değil - ayda bir saniye veya daha az. Ancak kötü çalışan demir, zamanı çok daha güçlü bir şekilde gevezelik edebilir (genel olarak, güçlü zaman dalgalanmaları, demir parçasının sağlığı hakkında düşünmek için bir nedendir).
    Linux'ta zamanı senkronize etmenin iki popüler yolu vardır - cron tarafından ntpdate veya sürekli çalışan bir ntpd. Aralarından istediğinizi seçmekte özgürsünüz, ikisini de yazacağım. Ancak, kendi başıma, özellikle 0.1 saniyeden daha az bir hatayla sunucuda sürekli olarak zaman tutmanız sizin için çok kritik değilse, cron tarafından ntpdate kullanmanızı tavsiye ederim.
    ntpd'deki bir güvenlik açığı, bir udp yükseltme saldırısı gerçekleştirmek için ntpd sunucularının kullanılmasına izin verdiğinde (sunucunuza gönderilen küçük bir paket, saldırıya uğrayan başka bir sunucuya doğru büyük bir udp paketi oluşturmasına izin verdiğinde) ntpd ile ilgili bir sorun oluştu - http://habrahabr.ru /post/209438/
    Tabii ki, bu güvenlik açığı düzeltildi (ve ntpd güncellemeleri olmadan ondan nasıl kaçılacağını yazdılar), ancak böyle bir sorunun kalmayacağının garantisi nerede? Ve yine, ntpd yine de udp üzerinden çalışır ve çok fazla trafik artışı olmasa da benzer türde saldırılar mümkündür (ancak bu, kötüye kullanım altındaki sunucunuzu değiştirerek saldırganı gizlemenizi sağlar). Bu arada sunucunun ipmi modülünde yerleşik olan ntpd'nin bu saldırıya maruz kaldığı ve ülkedeki komşuları neşeyle ddos ​​ettiği gerçeğine rastladım =)
    Bu nedenle, güvenlik postalarını sürekli okumaya, güncellemeleri takip etmeye vb. Hazır değilseniz, yine de ntpd yüklememelisiniz.
    Yani, ilk yol: ntpdate'i günde bir kez cron kullanarak çalıştırın.
    Varsa ntpd'yi yıkıyoruz:

    [e-posta korumalı]:~# apt-get kaldır --purge ntpd

    ntpdate'i kurun:

    [e-posta korumalı]:~# apt-get kurulum ntpdate

    Ve aşağıdaki içeriğe sahip bir /etc/cron.d/ntpdate dosyası oluşturun:

    0 6 * * * root ntpdate ntp.ubuntu.com 1>/dev/null 2>&1

    Şimdi her gün sabah 6'da (zamanı ve frekansı kendiniz değiştirin), saat mevcut duruma güncellenecektir.

    İkinci yol: nptd.
    Bunun tersini söylememiz gerekiyor:

    [e-posta korumalı]:~# apt-get ntpd'yi kur

    Ve yapılandırmaya yaz /etc/ntpd.conf aşağı yukarı doğru yapılandırma:

    yetkilendirmeyi devre dışı bırak
    istatistikleri devre dışı bırak
    server0.ubuntu.pool.ntp.org
    server1.ubuntu.pool.ntp.org
    server2.ubuntu.pool.ntp.org
    server3.ubuntu.pool.ntp.org

    Sonra yeniden başlatıyoruz:

    [e-posta korumalı]:~# /etc/init.d/ntp yeniden başlat

    Her şey, şimdi saatimiz gerçek zamanlı olarak özetlendi, bir ntp sunucuları havuzuyla senkronize edildi.

    Bilgisayardaki tam saat, yalnızca tarih ve saati doğrulamakla kalmaz, aynı zamanda diğer birçok önemli görevi de yerine getirir. Örneğin, ayarlarda 19xx yılını belirterek zamanınızı birkaç saat geri almayı veya zamanda geri gitmeyi deneyin. Şimdi bu tarihle google.com'a gidin. Büyük ihtimalle tam bir fiyasko yaşayacaksınız.

    Kurumsal bir ortamda, yanlış yapılandırılmış bir süre birçok başka hataya neden olabilir: sistemdeki bir kullanıcının kimliğinin doğrulanamamasından ... üzücü şeylerden bahsetmeyelim.

    Tarih ve saati ayarlamanın birkaç yolu vardır. Lütfen bu işlemin sistem ayarlarını etkilediğini ve bu nedenle kök kullanıcı ayrıcalıkları gerektirdiğini unutmayın.

    Yöntem numarası 1

    En basit yolu temsil eder. Yeni başlayanlar için en çok tercih edilen. Ayar, sözde grafik modunda sihirbaz aracılığıyla gerçekleştirilir.

    dpkg-tzdata'yı yeniden yapılandır

    Yöntem numarası 2

    Yöntem # 1 ile neredeyse aynı. Basit ve kullanışlı, ancak bu sefer yalnızca metin modunda. Tek yapmanız gereken sihirbazın talimatlarını takip etmek.

    Yöntem numarası 3

    systemd yardımcı programlarından biri

    timedatectl set-timezone<название зоны>

    Kullanılabilir bölgeleri görüntüle

    timedatectl listesi saat dilimleri

    Yöntem numarası 4

    ntpdate yardımcı programını kullanma. Bu yardımcı program varsayılan olarak yüklenmez.

    uygun kurulum ntp ntpdate

    /etc/ntp.conf yapılandırma dosyasına bir ntp sunucusu ekleyin, pool ile başlayan satırları arayın. Bu dosyanın sözdizimi hakkında daha fazla bilgi edinin man ntp.conf

    Güncellemek için ağ saati hizmetini durdurun

    hizmet ntp durdurma

    ntp sunucusundan veri alma

    Ntpdate -s<адрес ntp-сервера>

    Hizmeti geri başlatmak

    hizmet ntp başlangıcı

    Yöntem numarası 5

    Manuel ayar. /etc/timezone dosyasına istenilen zaman dilimini yazıyoruz örneğin Europe/Moscow

    Eko Avrupa/Moskova > /etc/timezone

    Saat dilimi verilerinin üzerine yazılıyor.

    Ln -sf /usr/share/zoneinfo/Avrupa/Moskova /etc/yerelzaman

    ntp sunucusundan veri alma

    Web sitesi barındırma için sunucularda Debian GNU/Linux işletim sistemini kullanıyorum. 2017 yazında Stretch'in 9. sürümü piyasaya sürüldüğünde, PHP 7'nin depolarda kullanıma hazır olmasına sevindim. Bildiğiniz gibi, PHP 5'ten daha hızlıdır.

    Bu yazıda, Debian 9'daki zaman ayarının da daha iyi hale geldiğini, ek olarak herhangi bir şey indirip yüklemenize gerek olmadığını, özellikle ntp arka plan programı veya ntpdate yardımcı programını göstereceğim. Her şey mükemmel şekilde yapılandırılabilir ve güncellenmiş sürüm sayesinde standart Debian 9 yazılımında çalışır sistemd protokolü kullanarak sistem zamanını senkronize etmekten sorumlu ayrı bir servisi olan NTP.

    Debian 9 zamanı nasıl ayarlanır?

    Öncelikle saat diliminize karar vermeniz ve ayarlamanız gerekiyor, benim için şöyle görünüyor:

    # timedatectl set-timezone Europe/Volgograd

    O zaman dosyayı düzenlemeniz gerekir /etc/systemd/timesyncd.conf, içinde zaman senkronizasyonu için sunucuları belirterek, örneğin:

    # Bu dosya systemd'nin bir parçasıdır. # # systemd özgür yazılımdır; Özgür Yazılım Vakfı tarafından yayınlandığı şekliyle # GNU Kısıtlı Genel Kamu Lisansı hükümleri uyarınca # yeniden dağıtabilir ve/veya değiştirebilirsiniz; Lisansın 2.1 sürümü veya # (seçeneğinize bağlı olarak) herhangi bir sonraki sürüm. # # Bu dosyadaki girişler, derleme zamanı varsayılanlarını gösterir. # Bu dosyayı düzenleyerek ayarları değiştirebilirsiniz. # Varsayılanlar, bu dosyayı silerek geri yüklenebilir. # # Ayrıntılar için timesyncd.conf(5)'e bakın. NTP=ru.pool.ntp.org FallbackNTP=pool.ntp.org

    Burada seçeneklerde NTP= zaman senkronizasyonu için öncelikli sunucular belirtilir. Bunlara erişimde bir hata oluşursa, o zaman belirtilen sunucular Yedek NTP=.

    Yapılandırma dosyasında değişiklik yaptıktan sonra, zaman eşitleme hizmetini yeniden başlatmanız gerekir:

    # systemctl systemd-timesyncd'yi yeniden başlat

    Zaman ayarının durumu aşağıdaki komutla kontrol edilebilir:

    # timedatectl durumu

    Aşağıdaki sonuç, sunucumdaki saatin doğru ayarlandığını ve NTP protokolü kullanılarak senkronize edildiğini gösterir.

    Yerel saat: Sal 2018-12-18 16:36:33 +04 Evrensel saat: Sal 2018-12-18 12:36:33 UTC RTC saati: Sal 2018-12-18 12:36:33 Saat dilimi: Avrupa/ Volgograd (+04, +0400) Ağ süresi açık: evet NTP senkronize: evet yerel TZ'de RTC: hayır

    Burada,
    Yerel zaman yerel saat;
    evrensel zaman- UTC saati (Eşgüdümlü Evrensel Saat). Bu, tüm zaman dilimlerini saymak için başlangıç ​​noktasıdır;
    RTC zamanı- sunucunun (bilgisayar) donanım saatindeki süre;
    saat dilimi- saat diliminiz;
    ağ süresi açık- systemd'ye dahil olan ntp istemcisinin etkin olup olmadığını gösterir;
    NTP senkronize edildi- zamanın ntp sunucusuyla senkronize olup olmadığını söyler;
    Yerel TZ'de RTC- donanım saatinde hangi saatin saklandığını gösterir: yerel veya evrensel. nerede, Evet yerel saat anlamına gelir, HAYIR- Dünya çapında;

    Yeni başlayanlar için bilgiler

    Bazen verdiğim komutları nereye gireceğim (yürüteceğim) soruluyor?

    Bu makaledeki tüm komutlar, sunucu konsolunda ayrıcalıklı bir kullanıcı (root) olarak yürütülmelidir. İmza # (octothorpe, hash, diyez, hash) öyle diyor.

    Sunuculara uzaktan bağlantı için konsol istemcisi olarak programı kullanıyorum

    |

    Doğru zamanlama, birçok modern programın doğru çalışmasının çok önemli bir yönüdür. Yanlış zaman nedeniyle sunucuda hatalar oluşabilir ve veriler bozulabilir (örneğin, veritabanını güncellerken veya günlük tutarken).

    Debian 9'da, zaman senkronizasyonu yerleşiktir ve varsayılan olarak etkinleştirilmiştir; ntp paketi tarafından sağlanan standart ntpd sunucusu bundan sorumludur. Bu kılavuz size zaman yönetimi için temel komutları, ntpd durumunun nasıl kontrol edileceğini ve diğer ağ zaman servislerinin nasıl kurulacağını tanıtacaktır.

    Gereksinimler

    Çalışmak için bir Debian 9 sunucusuna ve sudo erişimine sahip bir kullanıcıya ihtiyacınız olacak (kılavuz bu kullanıcının oturumunda yürütülmelidir). Gerekli tüm kurulum talimatlarını bulacaksınız.

    Zaman yönetimi için temel komutlar

    tarih, sunucudaki saati belirlemek için ana komuttur. Herhangi bir kullanıcı tarih ve saati öğrenmek için kullanabilir:

    tarih
    4 Eylül Salı 17:51:49 UTC 2018

    Varsayılan olarak, sunucular UTC (Eşgüdümlü Evrensel Saat) saat dilimini kullanır - bu, eşgüdümlü evrensel saattir. UTC, sunuculardaki saati tutarlı bir şekilde ayarlar ve altyapı sunucuları farklı saat dilimlerinde bulunuyorsa hataları en aza indirir.

    Saat dilimini değiştirmek için timedatectl komutunu kullanın.

    Mevcut kayışların bir listesini isteyin:

    timedatectl listesi saat dilimleri

    Listede boşluk tuşu ile aşağı, b tuşu ile yukarı gidebilirsiniz. Bir saat dilimi seçin, not edin ve listeyi kapatmak için q tuşuna basın.

    Şimdi timedatectl set-timezone ile saat dilimini ayarlayın. İçinde istenen saat dilimini belirterek aşağıdaki komutu kullanın:

    sudo timedatectl set-timezone America/New_York

    Not: America/New_York'u gereken saat dilimiyle değiştirin.

    Kayışın değiştiğinden emin olun:

    tarih
    4 Eylül Sal 01:52:57 EDT 2018

    Saat dilimi kısaltması yeni değeri yansıtacaktır.

    ntpd durumu

    Varsayılan olarak Debian 9, zamanı bir dış sunucu havuzuyla senkronize etmek için standart ntpd sunucusunu kullanır. Durumunu systemctl kullanarak kontrol edebilirsiniz:

    sudo systemctl durumu ntp
    ntp.service - LSB: NTP arka plan programını başlat
    Yüklendi: yüklendi (/etc/init.d/ntp; oluşturuldu; satıcı ön ayarı: etkin)
    Aktif: aktif (çalışıyor) Salı 2018-09-04 15:07:03 EDT'den beri; 30 dakika önce
    Dokümanlar: man:systemd-sysv-generator(8)
    İşlem: 876 ExecStart=/etc/init.d/ntp start (kod=çıkıldı, durum=0/BAŞARI)
    Görevler: 2 (sınır: 4915)
    Grup: /system.slice/ntp.service
    └─904 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
    . . .

    Etkin (çalışıyor) satırı, sunucunun düzgün çalıştığını gösterir. Daha fazla bilgi için ntpq komutunu kullanın:

    ntpq -p
    uzak refid st t yoklama erişim gecikmesi ofset titremesi olduğunda
    ==============================================================================
    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
    -statik-96-244-9 192.168.10.254 2u 60 256 377 10.242 1.297 2.412
    +minime.fdf.net 83.157.230.212 3 kullanıcı 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 ve 473 512 377 19.930 -1.764 0.293

    ntpq, ntpd sorgulama aracıdır. -p bayrağı, ntpd'nin bağlı olduğu NTP sunucuları hakkında bilgi toplar. Çıktınız biraz farklı olacak, ancak standart Debian havuz sunucularını ve birkaç başka sunucuyu içerecek. Ntpd'nin bağlantı kurması birkaç dakika sürebilir.

    ntpd'den systemd-timesyncd'ye geçiş

    Ntpd'yi değiştirmek için systemd'nin yerleşik timesyncd arka plan programını kullanabilirsiniz. timesyncd, systemd ile entegre basit bir ntpd alternatifidir. Ancak geçişi yaparken, timesyncd'in bir zaman sunucusu olarak çalışmadığını ve sistem zamanını senkronize etmek için daha az karmaşık yöntemler kullandığını unutmayın. Karmaşık gerçek zamanlı dağıtılmış sistemler çalıştırıyorsanız, en iyisi ntpd'ye bağlı kalmaktır.

    Timesyncd'ye geçmek için önce ntpd'yi kaldırın.

    sudo apt temizleme ntp

    Ardından timesyncd'yi çalıştırın:

    sudo systemctl systemd-timesyncd'yi başlat

    Durumunu kontrol edin:

    sudo systemctl durum systemd-timesyncd
    systemd-timesyncd.service - Ağ Saati Senkronizasyonu
    Yüklendi: yüklendi (/lib/systemd/system/systemd-timesyncd.service; etkinleştirildi; satıcı ön ayarı: etkinleştirildi)
    Bırakma: /lib/systemd/system/systemd-timesyncd.service.d
    └─disable-with-time-daemon.conf
    Aktif: aktif (çalışıyor) Salı 2018-09-04 16:14:23 EDT'den beri; 1 saniye önce
    Dokümanlar: man:systemd-timesyncd.service(8)
    Ana PID: 3399 (systemd-timesyn)
    Durum: "198.60.22.240:123 (0.debian.pool.ntp.org) zaman sunucusuyla eşitlendi."
    Görevler: 2 (sınır: 4915)
    CGroup: /system.slice/systemd-timesyncd.service
    └─3399 /lib/systemd/systemd-timesyncd

    systemd'nin şimdiki zaman algısı hakkında bilgi almak için şunu yazın:

    timedatectl
    Yerel saat: Sal 2018-09-04 16:15:34 EDT
    Evrensel saat: Sal 2018-09-04 20:15:34 UTC
    RTC zamanı: Sal 2018-09-04 20:15:33
    Saat dilimi: Amerika/New_York (EDT, -0400)
    Ağ süresi açık: evet

    NTP senkronize: evet
    Yerel TZ'de RTC: hayır

    Komut, yerel saati, evrensel saati (UTC saat diliminden geçiş yapmadıysanız yerel saatle aynı olabilir) ve ağdaki saatin durumu hakkında bilgileri yazdıracaktır. Ağ süresi açık: evet, zaman senkronizasyonu hizmetinin etkinleştirildiği ve NTP senkronize olduğu anlamına gelir: evet, zamanın başarıyla senkronize edildiği anlamına gelir.

    Çözüm

    Artık bir Debian 9 sunucusunun sistem zamanını nasıl yöneteceğinizi biliyorsunuz.

    Bilgisayardaki tam saat güzel bir şey .. ama benim gözlemime göre çoğu kullanmaya çalışmıyor bile .. en iyi ihtimalle manuel ayar .. :(
    Linux harika bir ntp hizmetine sahiptir, ancak birçok kişi bunu yapılandıramaz, bunun için "nasıl çalıştığını" anlamak için belirli miktarda belge okumanız gerekir (c)
    Öncelikle istemeyenler veya üzerinde fazla zaman ayıramayanlar için bu servisi nasıl kuracağınızı ve kullanacağınızı kısaca anlatmaya çalışacağım.
    Bu ne için?
    Sunucuda uygun şekilde yapılandırılmış bir hizmetle, hem OS Linux hem de Windows olmak üzere yerel ağdaki tüm bilgisayarlardaki saatleri yerel olarak senkronize edebileceksiniz.
    Güzel olan, sürekli olarak İnternete erişmeye gerek yoktur, sunucu sahip olduğunda, zamanla bir ayarlama yapacaktır .. senkronizasyonun geri kalanı yerel olarak ondan alınacaktır.
    Ayrıca eski bilgisayarlarda çok sık olarak anakartlardaki piller çoktan bitmiştir ve süre dolmak üzeredir, bilgisayar başladığında süre otomatik olarak ayarlanacaktır..
    Nelerin yüklenmesi gerekiyor?
    Standart Debian deposunda şu paketler vardır: ntp ve ntpdate
    apt-get kurulum ntp ntpdate
    prensipte kurulumdan sonra sunucu hemen çalışmaya başlar..
    ancak onunla senkronize edemezsiniz.
    bunun için /etc/ntp.conf dosyasında bir şeylerin değiştirilmesi gerekiyor..
    Aşağıda yapılandırmasını ve yorumlarını veriyorum, kendi düzeltmelerinizi yapabilirsiniz:
    #=============================================================================
    # /etc/ntp.conf, ntpd için yapılandırma; yardım için ntp.conf(5)'e bakın driftfile /var/lib/ntp/ntp.drift statsdir /var/log/ntpstats/ Statistics loopstats peerstats clockstats filegen loopstats file loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats dosya clockstats type day enable server 0.debian.pool.ntp.org server 1.debian.pool.ntp.org server 2.debian.pool.ntp.org server 3.debian.pool.ntp.org server 2.ru.pool. ntp.org sunucusu 1.ru.pool.ntp.org sunucusu 3.europe.pool.ntp.org sunucusu 2.europe.pool.ntp.org kısıtlaması -4 varsayılan kod notrap nomodify nopeer noquery kısıtlaması 127.0.0.1 # ağımız kısıtlaması 192.168.0.0 mask 255.255.255.0 nomodify notrap kısıtlama 192.168.255.0 mask 255.255.255.240 nomodify notrap # ve bu, sunucuya (tabakalara) olan güven düzeyini kısaca 3'e eşitleyen sihirli bir şeydir #, daha yüksek seviye, sayı ne kadar düşükse. 0 atomik saattir, #1 onunla senkronize edilir, 2 birinciyle vb. sunucu 127.127.1.1 geçiştirme 127.127.1.1 katman 3 ====================================== = =========================================

    Örneğin, Windows XP bilgisayarlarda, artık sunucunuzu tarih ve saat ayarlarında veya ipdaare'lerinde belirtebilir ve senkronize edebilirsiniz.
    Windows 98, 200 ile daha zor.. D4 gibi özel bir programa ihtiyacınız var,
    temelde doğru olan.
    Linux ile - bildiğim hemen hemen tüm sürümlerin böyle bir hizmeti var .. Oradaki yapılandırmanın çok farklı olduğunu düşünmüyorum .. :)