Настройка NTP сервера в CentOS и синхронизации времени на телефонных аппаратах
Настройка NTP сервера в CentOS и синхронизации времени на телефонных аппаратах.
Анонс: В данной статье проведем настройку NTP сервера и автоматическую синхронизацию на ip-телефонах Описание: Почему важно иметь правильное выставленное время не стоит даже пояснять, однако выставлять правильное время на каждом отдельном телефонном аппарате может быть затруднительно, в особенности, когда штат состоит не из 5 человек. Для упрощения подобной настройки будем использовать в качестве ntp-сервера АТС, […]
Анонс: В данной статье проведем настройку NTP сервера и автоматическую синхронизацию на ip-телефонах
Описание:
Почему важно иметь правильное выставленное время не стоит даже пояснять, однако выставлять правильное время на каждом отдельном телефонном аппарате может быть затруднительно, в особенности, когда штат состоит не из 5 человек. Для упрощения подобной настройки будем использовать в качестве ntp-сервера АТС, чтоб подключенные к ней ip-телефоны.
Проводить настройку будем на CentOS 6.9, а в качестве телефонного аппарата в этом примере будем использовать fanvil X3S
Настройка CentOS
Подключаемся к АТС через PuTTY
PuTTY
Перед настройкой убедитесь, что у вас открыт UDP порт 123 т.к ntp-сервер использует протокол Network Time Protocol.
Установка простая. Какой-то надобности в сборке и установки из пакетов у нас нет и устанавливать будем через пакетный менеджер yum: # yum -y install ntp
Установка
После нам необходимо отредактировать файл конфигурации ntp.conf. Переходим в папку etc.
Переходим
И открываемntp.conf любым удобным вам текстовым редактором
Настройка Nt_conf 1
И приводим содержимое к следующему виду:
Настройка Ntp_conf 2
- driftfile: Данный пункт отвечает за адрес лог-файла в котором хранится история изменения времени во время синхронизации. Если синхронизация времени с внешними источниками станет невозможно, то служба обратиться к данному файлу.
- restrict(127.0.0.1 ): Здесь указывается ip адреса которым позволено использовать наш сервер времени. В данном примере указан только локальный интерфейс.
- restrictdefaultnomodifynotrapnopeernoquery: Эти параметры указывают на то, что клиентам запрещено изменять настройки и получать его статус
- server:Задается список серверов для синхронизации времени. Дополнительный параметр iburst нужен для повышения точности синхронизации. Он указывает, что на сервер нужно посылать не один, а несколько пакетов.
- disablemonitor: Параметр отвечает за безопасностью. Предотвращает использования уязвимости сервиса ntpd, которую используют злоумышленники для проведения DDoS атак.
- logfile: Здесь прописывается путь к файлу логов.
Заканчиваем редактирования файла настроек. После, запускаем службу следующей командой:
Настройка Ntp_conf 3
После чего проверяем, запущен ли сервер:
Настройка Ntp_conf 4
Как видим выше – все в порядке. Служба слушает порт 123. Переходим теперь к телефонам
Настройка Fanvil
В целом, настройки на любых телефонных аппаратах будут аналогичны, несмотря на различные web-интерфейсы. Подключаемся к телефону (в нашем случае стандартный пароль и логин admin/admin):
Настройка fanvil 1
Переходим в «Настройки телефона»
Настройка fanvil 2
Переходим дальше в «Время/Дата»
Настройка fanvil 3
В разделе «Настройка времени» указываем в качестве NTP-сервера 1 нашу АТС после чего применяем настройки.
Настройка fanvil 4
Линукс синхронизация времени ntp
Не принципиально в каком часовом поясе сервер, и что показывают часы. Их показания всегда можно скорректировать. Но, согласитесь, что гораздо приятней, когда сервер находится в вашей временной зоне и/или в зоне большинства посетителей вашего сайта.
В этой статье на примере CentOS (RedHat Linux) я покажу как удаленно изменить время на сервере с операционной системой Linux. Она будет полезна всем кто администрирует Linux server.
Какие часы бывают в Linux
Немного теории. В любом компьютере есть два вида часов. Одни аппаратные (ЧРВ — часы реального времени или RTC — real time clock), которые работают даже при выключенном блоке питания, на это у них есть батарейка на материнской плате. Другие программные, то есть часы операционной системы. Показания этих часов могут различаться. При этом программные часы опираются на показания аппаратных при старте операционной системы. А в дальнейшем могут синхронизироваться через интернет с эталонными и корректировать ход аппаратных.
В большинстве случаев если компьютер работает под управлением операционной системой Windows показания аппаратных и программных часов совпадают. В linux же чаще всего аппаратные часы настраивают по гринвичу (времени нулевого меридиана), а программные по необходимому смещению для часового пояса где расположен сервер.
Абсолютное большинство программ (приложений и сервисов) в своей работе опираются на показания системных (программных) часов.
Для чего нужно корректировать часы
- Чтобы избежать вчерашних новостей и публикаций завтрашнего дня. К примеру часы вашего сервера идут по времени Хабаровска, а основные посетители из Европы (разница UTC+11). В такой ситуации вечерний посетитель увидит «завтрашние» даты на сайте. Так как когда в Европе вечер, то в Хабаровске утро следующего дня.
- Чтобы было удобно настраивать задания Cron.
- Чтобы время создания файлов совпадало с фактическим и не вводило Вас в заблуждение.
Как настроить время вашего сервера
Проверим, что показывают аппаратные часы, для чего будем использовать три варианта команды hwclock:
Приведенный пример для случая когда аппаратные часы идут по UTC, а сервер настроен на Московский часовой пояс. Особых пояснений требует опция —utc вывод времени производится (формируется) с условием, что аппаратные часы идут по времени UTC. То есть показания должны совпадать с желаемым временем на сервере. Опция же —localtime наоборот показывает время аппаратных часов без всяких поправок.
Несколько полезных команд установки времени аппаратных часов
Устанавливаем время аппаратных часов равное системному:
Устанавливаем время системных часов на основании ЧРВ:
Устанавливаем время равное указанному:
Значение временной зоны
Данные временной зоны для аппаратных часов в Centos хранятся в файле /etc/sysconfig/clock.
Для московской временной зоны в случае когда аппаратные часы идут по UTC он имеет следующее содержимое:
Где ZONE — это наш часовой пояс, UTC говорит о том, что аппаратные часы сервера идут по универсальному времени UTC, ARC в значении false — значит используется нормальное значение века (эпохи) UNIX.
Подробнее по конфигурации файла /etc/sysconfig/clock в CentOS можно почитать в официальной документации.
Системные часы операционной системы CentOS
Для системных (программных) часов CentOS используется команда date.
Приведенный пример для случая когда операционная система использует Московский часовой пояс. Здесь опция —utc говорит, что необходимо показать время нулевого меридиана, то есть без поправок на часовой пояс.
Изменение временной зоны (часового пояса) в CentOS
Для изменения времени системных часов, если их показания не соответствуют необходимому региону, необходимо проделать следующие нехитрые операции.
В начале, сделаем резервную копию существующего файла временной зоны (часового пояса).
Затем, создаем ссылку на необходимую временную зону.
где Europe/Moscow необходимая временная зона. Полный список доступных часовых поясов смотрим в каталоге /usr/share/zoneinfo/.
При необходимости можно установить значение времени вручную:
где MM – месяц, DD – день, hh – час, mm – минуты.
То есть чтобы задать, к примеру, 18 марта 20 часов 15 минут, нужно ввести следующее:
Более подробно о команде date, можно почитать в мануале, выполнив команду:
Настройка сервера времени ntp
Со временем часы могут убегать или отставать, поэтому время от времени их нужно синхронизировать с эталонными. Для этого в CentOS используется демон ntpd.
Установим демон ntpd если его нет в системе:
Однократно синхронизируем время:
Если получили что-то вроде the NTP socket is in use, exiting — значит ntpd демон уже запущен. В этом случае остановим его:
Настраиваем работу ЧРВ в BIOS на время по UTC:
Этой командой мы присвоили значение времени аппаратных часов равным системному времени. Как вы помните, системные часы мы синхронизировали командами выше.
Проверим содержимое файла /etc/sysconfig/clock чтобы система после загрузки правильно выставляла местное время. Для Москвы он должен содержать следующее:
Настраиваем демон ntpd на автозагрузку при старте операционной системы:
Запускаем демон синхронизации времени:
Проверяем системное время командой:
Оно должно совпадать с реальным.
Проверим, синхронизируется ли системное время с серверами эталонного времени (ntp server) и все ли там в порядке командой ntpq -p:
Демон ntpd включает в ядре Linux режим «11 minute mode». В этом режиме каждые 11 минут синхронизируются системные и аппаратные часы. По-умолчанию он (режим «11 minute mode») выключен и включается только когда какой-то сервис попросит включить этот режим. Демон ntpd как раз его и (режим «11 minute mode») включает. Так что дополнительно синхронизировать аппаратные часы по значению системных нет необходимости.
Настройка времени ntp в CentOS
Это на своей рабочей станции вы всегда видите часы перед глазами и расхождение даже на 5 минут будет сразу видно. А на сервер заходят тогда, когда что-то случилось или просто для профилактики, но вряд-ли часто. И в консоли время не показывается. А сбиться оно может. А последствия могут быть разными. Простой вариант: дата создания или редактирования файла будет не верной. А если это почтовый сервер? Вы письмо приняли раньше, чем его отправили? Или запостили новость на сайт завтрашним днем? Дата важна для логов, для множества вещей. Итак, время должно быть точным.
В компьютере время бывает двух видов: аппаратное (BIOS) и программное (операционная система). В Windows при изменении программного времени вы автоматически изменяете и аппаратное, вы даже вряд ли задумывались, что время может быть разное.
Проверить показания системных часов (время в операционной системе) можно командой date:
А так можно посмотреть время на нулевом меридиане с точки зрения вашего сервера:
Проверить показания часов в BIOS можно командой:
Синхронизация времени
Для синхронизации времени используется ntp (network time protocol).
# yum install ntp
В конец файла /etc/sysconfig/ntpd добавим:
которая указывает обновить время в BIOS, а не только в операционной системе.
В файле /etc/ntp.conf есть директивы, указывающие, какой сервер времени использовать. По-умолчанию это:
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
Возможна ситуация, что ответ от серверов сразу не был получен. По-умолчанию, ntpd через определенный интервал опять повторит запрос. Чтобы уменьшить этот интервал и увеличить количество запросов, можно добавить опцию iburst (добавлена по-умолчанию). Это мой перевод найденного значения, суть такая, а вот совсем точно не скажу, что за зверь такой, iburst 🙂
Список серверов оставьте по-умолчанию или добавьте другой сервер, по желанию.
Осталось запустить сервис ntp:
service ntpd start
и добавить его в атозапуск:
chkconfig ntpd on
Командой date можно проверить изменения.
Изменение часового пояса в CentOS
Текущее значение временной зоны аппаратных часов (BIOS) находится в файле /etc/sysconfig/clock:
Для изменения программного (в операционной системе) часового пояса надо сделать следующее.
Сначала сделаем копию файла зоны. Это символьная ссылка.
mv /etc/localtime /etc/localtime.bak
В директории /usr/share/zoneinfo/ находятся файлы доступных к использованию временных зон. В нашем случае это /usr/share/zoneinfo/Europe/Moscow. В вашем случае может быть /usr/share/zoneinfo/Europe/Paris, да что угодно.
Создадим символьную ссылку /etc/localtime на нужную нам зону:
ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
Все. Мы с вами сменили часовой пояс системных часов.
Под конец приведу адрес сайта, где все изложено достаточно ясно: https://moonback.ru/page/centos-time. Спасибо тебе, добрый человек!
Авторизуйтесь для добавления комментариев!
Почтовый сервер Шифрование Squid 3proxy VPN Mikrotik Настройка сервера Виртуальные машины kvm Защита почты Резервное копирование Групповые политики SELinux WDS IPFW OpenVPN firewalld systemd Mobile libvirt Samba WiFi Iptables NAT Lightsquid Remote desktop Postfix Dovecot Удаление данных Софт Безопасность Настройка прокси Winbox User agent Хостинг Передача данных Онлайн сервисы Privacy LetsEncrypt VPN сервер RRDTool sendmail Rsync Linux SSH Система Windows Синхронизация Облако fail2ban FreeBSD
Линукс синхронизация времени ntp
Цель: поднять NTP-сервер на базе интернет-шлюза для пользователей и прочих серверов локальной сети предприятия.
0. Проверяем версию пакета временных зон proxy-сервера и при необходимости обновляем его.
[root@proxy etc]# rpm -q tzdata
tzdata-2012c-1.el6.noarch
[root@proxy etc]#
Надо менять.
Скачиваем свежий пакет временных зон с http://pkgs.org/download/tzdata, либо с иного источника.
На указанном ресурсе, например для CentOS 6 видим:
tzdata-2014h-1.el6.noarch.rpmTimezone data
tzdata-2014i-1.el6.noarch.rpmTimezone data
tzdata-2014j-1.el6.noarch.rpmTimezone data
Скачиваем и устанавливаем пакет.
1. Устанавливаем необходимый часовой пояс, например Иркутский:
ln -sf /usr/share/zoneinfo/Asia/Irkutsk /etc/localtime
либо просто копируем
cp /usr/share/zoneinfo/Asia/Irkutsk /etc/localtime
2. Правим /etc/ntp.conf
[root@proxy etc]# mcedit ntp.conf
Указываем публичные ntp-сервера по которым будем синхронизировать время
# Use public servers from the pool.ntp.org project.
server 0.centos.pool.ntp.org
server 130.126.24.24
server 109.195.19.73
server 91.226.136.136
# Разрешить получение времени с peer-ов
restrict 95.213.132.250 noquery notrap
restrict 130.126.24.24 noquery notrap
restrict 109.195.19.73 noquery notrap
restrict 91.226.136.136 noquery notrap
# Разрешить клиентам локальной сети получать время с этого сервера
restrict 192.168.1.0 mask 255.255.255.0 nopeer nomodify notrap
restrict 10.25.0.0 mask 255.255.0.0 nopeer nomodify notrap
#fudge 127.127.1.0 stratum 10
fudge 127.127.1.0 stratum 3
# Определяем файл, в который будем писать логи
logfile /var/log/ntpd.log
2. Настройка начальной, грубой синхронизации: /etc/ntp/step-tickers
Файл /etc/ntp/step-tickers хр1анит имена серверов с которыми производиться начальная корректировка. Если у вас никогда не бывает проблем с подключением к Internet, можно перечислить здесь имена ntp-серверов первичной грубой корректировки, например:
[root@proxy]# cat /etc/ntp/step-tickers
ntp21.imvp.ru
ntp.psn.ru
Но если в момент начальной загрузки инет по какой-либо причине недоступен, в процессе загрузки произойдет ощутимое зависание.
Поэтому лучше оставить его пустым.
В некоторых версиях пакета ntpd, чтобы в момент старта сервиса избежать сообщения об ошибке, можно указать в качестве сервера первичной синхронизации localhost.
Так с пустым файлом /etc/ntp/step-tickers рестарт сервиса выглядит следующим образом:
[root@proxy /]# service ntpd restart
Shutting down ntpd: [ OK ]
ntpd: Synchronizing with time server: [FAILED]
Starting ntpd: [ OK ]
Вносим в /etc/ntp/step-tickers запись localhost
[root@proxy]# service ntpd restart
Shutting down ntpd: [ OK ]
ntpd: Synchronizing with time server: [ OK ]
Starting ntpd: [ OK ]
Как таковая настройка завершена.
3. Проверяем.
синхронизацию с серверами времени:
[root@proxy etc]# ntpq -np
remote refid st t when poll reach delay offset jitter
===================================================
*91.207.136.55 89.109.251.22 2 u 18 64 37 164.580 -23.587 0.646
+130.126.24.24 128.174.38.133 2 u 16 64 37 240.694 5.479 0.760
109.195.19.73 107.220.11.135 2 u 15 64 37 93.065 2.106 0.632
+91.226.136.136 41.56.176.218 2 u 16 64 37 102.265 3.062 0.424
свой стратум:
[root@proxy etc]# ntpdate -q localhost
server 127.0.0.1, stratum 3, offset -0.000002, delay 0.02562
20 Nov 14:28:56 ntpdate[758]: adjust time server 127.0.0.1 offset -0.000002 sec
текущую установленную зону:
[root@proxy etc]# cat /etc/sysconfig/clock |grep ZONE
ZONE=»Asia/Irkutsk»
активное расписание переходов на зимнее/летнее время для текущей зоны:
[root@proxy etc]# zdump -v Asia/Irkutsk|grep 2014
Asia/Irkutsk Sat Oct 25 16:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 IRKT isdst=0 gmtoff=32400
Asia/Irkutsk Sat Oct 25 17:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 IRKT isdst=0 gmtoff=28800
Видим, что переход на летнее время отсутствует, так как в противном случае должны быть еще 2 строки описывающие переход в марте. Значит на какой-то отрезок времени (а по заявлению президента — навсегда) мы застряли в дебильном зимнем времени.
4. Ставим ntpd в автозагрузку
[root@proxy]# chkconfig —add ntpd
либо при помощи псевдографической утилиты
5. Синхронизируем аппаратные часы с системными
[root@proxy]# hwclock —systohc
Корпоративный сервер времени готов.
Настройка дочерних Linux-серверов и linux-рабочих-мест пользователей локальной сети.
1. /etc/hosts -описываем proxy
[root@s01]# cat /etc/hosts|grep proxy
10.25.25.25 proxy.kontora.ru proxy
2. Правим в /etc/ntp.conf всего одну строку:
[root@s01]# cat ntp.conf |grep server
server 10.25.25.25
3. Правим /etc/ntp/step-tickers
[root@s01]# cat step-tickers
# List of servers used for initial synchronization.
proxy
4. Ставим ntpd в автозагрузку
[root@s01]# chkconfig —add ntpd
5. Стартуем ntpd
[root@s01]# service ntpd restart
Останавливается ntpd: [СБОЙ ]
Запускается ntpd: [ OK ]
6. Проверяем
[root@s01]# ntpq -np
remote refid st t when poll reach delay offset jitter
=================================================
10.25.25.25 109.195.19.73 3 u 65 64 3 0.367 3841500 2.697
[root@s01]#
Настройка NTP сервера для локальной сети
Для синхронизации системных часов, серверов, рабочих станций, камер видео наблюдения, и других устройств в локальной сети.
Будем использовать локальный сервер точного времени с настроенным протоколом NTP (Network Time Protocol).
Устанавливаем NTP
Все настройки производятся в одном единственном файле ntp.conf.
Добавляем данные в него.
разрешим доступ к серверу времени только из нашей локальной сети
Посмотрим конфигурационный файл ntp.conf
если указанной ниже строки нет то добавляем ее или изменяем.
restrict default — задает значение по умолчанию для всех рестриктов.
kod — узлам, которые часто отправляют запросы сначала отправить поцелуй смерти (kiss of death), затем отключить от сервера.
notrap — не принимать управляющие команды.
nomodify — запрещает команды, которые могут вносить изменения состояния.
nopeer — не синхронизироваться с хостом.
noquery — не принимать запросы.
restrict 192.168.0.0 mask 255.255.255.0 — разрешить синхронизацию для узлов в сети 192.168.0.0/24.
IP адреса 127.0.0.1 и ::1 позволяют обмен данные серверу с самим собой.
перезапускаем наш сервер NTP
Для настройки автоматического запуска демона при загрузке системы, используйте специальную команду.
Тестирование
Проверить состояние получения эталонного времени можно командой:
Ее вывод будет представлен в виде таблицы:
В таблице указываются следующие параметры:
Проверить, пригоден ли сервер из списка для синхронизации, можно при помощи утилиты ntpdate:
Устанавливаем ее
В данном случае вывода видно, что сервер пригоден для синхронизации, его уровень — 2, смещение — 0.000000 мс, задержка — 0.02563 мс.
Настройка клиента в Linux
Для этих можно использовать 2 способа настройки — с помощью ntp или утилиты ntpdate.
В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:
Остальные pool и server удаляем или комментируем.
ntpdate
Утилита командной строки выполняет синхронизацию только при запуске. Для автоматизации процесса, добавляем задание в cron:
* в данном примере задание будет выполняться каждые 30 минут. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.
Настройка клиента в Windows
В командной строке выполняем:
Возможные ошибки
1. the NTP socket is in use, exiting
Данная ошибка возникает при попытке синхронизировать время с помощью ntpdate, когда в системе работает демон ntp.
Причина: NTP сокет в системе уже занят ntpd.
Решение: либо не использовать ntpdate, так как ntp умеет сверять время, либо отключить сервис ntpd командой service ntp stop.
2. Connection refused
Возникает при попытке выполнить команду ntpq -p.
Причина: нет разрешения на обращение к серверу.
Решение: проверьте, удастся ли выполнить запрос командой ntpq -pn 127.0.0.1 или ntpq -pn ::1. Также убедитесь, что настройка restrict позволяет серверу подключаться к самому себе по нужному протоколу.
3. no server suitable for synchronization found
Ошибка синхронизировать время с другим сервером синхронизации.
Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.