12 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Синхронизация времени в CentOS по NTP

Настройка NTP в CentOS 7

Приветствую! Сегодня разберем довольно простую но полезную вещь — настройку ntp на операционной системе CentOS 7 (6).

Для чего это делать? Это делается для того, чтобы на вашем сервере было точное время. А если у вас в сети есть несколько серверов — то это просто необходимая вещь. У меня, к примеру, есть несколько zabbix proxy и 1 zabbix server и чтобы данные не разнились, то необходимо, чтобы на все этих серверах было одинаковое время. Время можно синхронизировать в интернете или со своим сервером времени (как это сделано у меня). Про настройку своего сервера времени мы поговорим отдельно. Сейчас разберемся, как настроить свои сервера на синхронизацию времени.

Настройка NTP на CentOS 7

Для начала устанавливаем NTP:

Устанавливаем часовой пояс (временную зону), которая соответсвует вашей. Например у меня это Москва, создаем символическую ссылку:

Далее необходимо указать сервера, с которыми мы будем синхронизировать время. По умолчанию 3 сервера уже есть, можно оставить их, можно добавить свои. Мы добавим свой:
Открываем файл ntp.conf для редактирования:

Находим в нем строчки:

Перед ними пишем наш ntp сервер:

Время синхронизируется последовательно. Если первый в списке сервер будет по какой то причине не доступен, то обращение идет ко второму и т.д.

Теперь давайте вручную синхронизируем время с нашим сервером:

Получаем ответ типа: 15 Sep 10:03:56 ntpdate[4843]: step time server 192.168.0.68 offset -0.012084 sec — значит синхронизация прошла успешно и время было поправлено на данный период.

Если вы получите ошибку вида: the NTP socket is in use, exiting, значит у вас чем то уже используется порт 123. Попробуйте остановить ntpd следующей командой:

и еще раз запустите синхронизацию:

Теперь добавляем в автозапуск и запускаем нашу службу автоматической синхронизации времени:

Проверить работу ntp можно командой ntpq -p

На этом все, мы настроили автоматическую синхронизацию времени на CentOS7. Эта статья может быть актуальна практически для любого дистрибутива Unix, не только CentOS 7. Если у Вас остались вопросы — задавайте их в комментариях.

Настройка NTP сервера в CentOS и синхронизации времени на телефонных аппаратах.

Анонс: В данной статье проведем настройку NTP сервера и автоматическую синхронизацию на ip-телефонах Описание: Почему важно иметь правильное выставленное время не стоит даже пояснять, однако выставлять правильное время на каждом отдельном телефонном аппарате может быть затруднительно, в особенности, когда штат состоит не из 5 человек. Для упрощения подобной настройки будем использовать в качестве ntp-сервера АТС, […]

Анонс: В данной статье проведем настройку NTP сервера и автоматическую синхронизацию на ip-телефонах

Описание:

Почему важно иметь правильное выставленное время не стоит даже пояснять, однако выставлять правильное время на каждом отдельном телефонном аппарате может быть затруднительно, в особенности, когда штат состоит не из 5 человек. Для упрощения подобной настройки будем использовать в качестве ntp-сервера АТС, чтоб подключенные к ней ip-телефоны.

Проводить настройку будем на CentOS 6.9, а в качестве телефонного аппарата в этом примере будем использовать fanvil X3S

Настройка CentOS

Подключаемся к АТС через PuTTY

Перед настройкой убедитесь, что у вас открыт UDP порт 123 т.к ntp-сервер использует протокол Network Time Protocol.

Установка простая. Какой-то надобности в сборке и установки из пакетов у нас нет и устанавливать будем через пакетный менеджер yum: # yum -y install ntp

После нам необходимо отредактировать файл конфигурации ntp.conf. Переходим в папку etc.

И открываемntp.conf любым удобным вам текстовым редактором

И приводим содержимое к следующему виду:

  • driftfile: Данный пункт отвечает за адрес лог-файла в котором хранится история изменения времени во время синхронизации. Если синхронизация времени с внешними источниками станет невозможно, то служба обратиться к данному файлу.
  • restrict(127.0.0.1 ): Здесь указывается ip адреса которым позволено использовать наш сервер времени. В данном примере указан только локальный интерфейс.
  • restrictdefaultnomodifynotrapnopeernoquery: Эти параметры указывают на то, что клиентам запрещено изменять настройки и получать его статус
  • server:Задается список серверов для синхронизации времени. Дополнительный параметр iburst нужен для повышения точности синхронизации. Он указывает, что на сервер нужно посылать не один, а несколько пакетов.
  • disablemonitor: Параметр отвечает за безопасностью. Предотвращает использования уязвимости сервиса ntpd, которую используют злоумышленники для проведения DDoS атак.
  • logfile: Здесь прописывается путь к файлу логов.

Заканчиваем редактирования файла настроек. После, запускаем службу следующей командой:

После чего проверяем, запущен ли сервер:

Как видим выше – все в порядке. Служба слушает порт 123. Переходим теперь к телефонам

Настройка Fanvil

В целом, настройки на любых телефонных аппаратах будут аналогичны, несмотря на различные web-интерфейсы. Подключаемся к телефону (в нашем случае стандартный пароль и логин admin/admin):

Читать еще:  Как изменить MAC-адрес в Linux

Переходим в «Настройки телефона»

Переходим дальше в «Время/Дата»

В разделе «Настройка времени» указываем в качестве NTP-сервера 1 нашу АТС после чего применяем настройки.

CentOS: Настройка даты и времени, пояса, синхронизация с NTP

В данной статье я расскажу, как настроить время, дату и изменить часовой пояс(timezone) в Linux CentOS, как выполнять синхронизацию времени с NTP сервером и исправить типичные ошибки.

На серверах существует два вида часов. Аппаратные (real time clock), которые работают даже при выключенном сервере и программные часы операционной системы. Показания этих двух часов, могут отличаться. При этом, после запуска операционной системы, программные часы опираются на показания аппаратных и в дальнейшем могут корректироваться системой.

Абсолютное большинство программ в своей работе используют время программных часов.

Hwclock: настройка аппаратного (системного) времени

Чтобы проверить аппаратное время в Linux используется утилита hwclock:

  • hwclock —localtime — проверка аппаратного времени без поправки
  • hwclock —utc – проверка времени с условием, что аппаратные часы идут по времени UTC

[root@server etc]# hwclock —localtime

[root@server etc]# hwclock —utc

Чтобы установить аппаратное время равное системному времени, выполните команду:

Чтобы установить конкретное время, выполните:

# hwclock —set —date «27 Nov 2019 17:30»

Ручная настройка времени в CentOS

В Linux за программное время отвечает утилита date или timedatectl. Если вызывать утилиту date без параметров, она покажет текущее время на сервере:

[root@server etc]# date

Если вы хотите выставить время вручную, можно воспользоваться утилитой date с дополнительными ключами:

Где MM – месяц, DD — день, hh – час, mm – минуты.

Для получения расширенной информации о дате, времени, поясе, синхронизации, настройках перехода на сезонное (летнее/зимнее) время (DST), используется утилита timedatectl. Она дает более подробную информацию о настройках времени на сервере.

Timedatectl также позволяет изменить время:

# timedatectl set-time ‘2019-11-27 17:51:00’

Настройка часового пояса в CentOS

Чтобы время на сервере CentOS Linux соответствовало вашему часовому поясу, его можно изменить вручную. Для этого есть две утилиты:

  • timedatectl
  • tzdata

Чтобы изменить часовой пояс через утилиту timedatectl, выполните команду:

# timedatectl set-timezone Europe/Moscow

Или же можно использовать tzdata. Чтобы воспользоваться данным методом, нужно заменить файл /etc/localtime на нужный вам. Весь список часовых поясов, расположен в директории /usr/share/zoneinfo/. Заменим часовой пояс на Asia/Almaty. Делаем бэкап файла locatime:

# mv /etc/localtime /etc/localtime.bak

Создаем симлинк на нужный часовой пояс:

# ln -s /usr/share/zoneinfo/Asia/Almaty /etc/localtime

Настройка синхронизация времени по NTP в CentOS

Вы можете настроить автоматическую синхронизацию времени на вашем сервере с внешним NTP (Network Time Protocol) сервером. Для этого нужно установить сервис ntp. Например, в CentOS 7 установка выполняется через yum:

# yum install ntp -y

После установки, нужно запустить сервис ntpd и добавить его в автозагрузку:

# systemctl start ntpd.service
# systemctl enable ntpd.service

Проверим, что сервис запущен:

[root@server Asia]# service ntpd status

В файле /etc/ntp.conf нужно указать сервера, с которыми нужно синхронизировать время:

Синхронизация времени выполняется последовательно. Если недоступен первый NTP сервер, идет обращение ко второму и т.д.

Можно вручную синхронизировать время с указанным NTP сервером командой:

По умолчанию, ntpd включает в системе режим “11 minute mode”, то есть время будет синхронизироваться каждые 11 минут. Если вы не можете использовать демон ntpd, вы можете настроить синхронизацию времени по крону, добавьте в крон следующую команду:

Используем chronyd для синхронизация времени в CentOS 8

Для CentOS 8 из официальных репозиториев убрали ntp и ntpdate, поэтому для синхронизации времени нужно использовать chrony.

Основные преимущества chrony:

  • высокая скорость и точность синхронизции
  • корректная работа при отсутствии доступа к эталонным часам (ntpd требуются регулярные запросы)
  • по-умолчанию не меняет сразу время при синхронизации, чтобы не нарушить работу программ
  • Меньше использует ресурсов

По умолчанию, утилита chrony уже установлена в системе, но если по какой-то причина у вас ее нет, выполните установку:

# dnf install chrony

Как и любой другой сервис, после установки chrony нужно включить и добавить в автозагрузку:

# systemctl start chronyd
# systemctl enable chronyd

Проверим статус сервиса:

Чтобы проверить, что синхронизация работает, выполнитите команду:

Конфигурационный файл chrony/etc/chrony.conf. В нем нужно указать список NTP серверов, которые нужно использовать для синхронизации. Как и у ntp, у chrony есть интерфейс командной строки chronyc. Чтобы проверить информацию о текущих параметрах синхронизации времени, используйте:

Чтобы проверить информацию о серверах синхронизации, выполните команду:

Если вы хотите установить конкретное время и дату вручную, вы можете воспользоваться утилитой date, но перед этим нужно отключить демон chronyd.

Распространённые ошибки при настройке времени в CentOS

В данном разделе, я опишу частые ошибки, которые возникают при работе с утилитами timedatectl, ntp.

При ручной синхронизации времени, у вас может возникнуть подобная ошибка:

Она означает, что у вас запущен демон ntpd, который блокирует ручную синхронизация времени. Чтобы выполнить ручную синхронизацию, остановите демон ntpd:

# service ntpd stop

И запустите синхронизацию заново:

Аналогичная ошибка может возникать и при работе с утилитой timedatectl:

Теперь нужно отключить автоматическую синхронизацию в самой утилите timedatectl:

# timedatectl set-ntp 0

И выполнить команду по установке конкретного времени:

При работе с часовыми поясами, они могут быть не установлены у вас на сервере и создать симлинк для localtime не получится. Для того, чтобы в системе были доступны часовые пояса, установите утилиту tzdata:

# yum install tzdata -y

Так при ручной синхронизации, часто бывают ошибки вида:

В этом случае проверьте правила firewalld / iptables, и убедитесь, что у вас на сервере открыт UDP порт 123. Так же некоторые хосты синхронизации могут быть недоступны в момент проверки.

Читать еще:  Неизвестная ошибка 14 при восстановлении прошивки или обновлении iPhone 4S, 5S, 6

Настройка времени 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

Все. Мы с вами сменили часовой пояс системных часов.

установка, настройка и синхронизация времени в CentOS

Первым делом обновим базовую систему:

Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:

И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntaxсинтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.

Дальше нам пригодятся сетевые утилиты. В минимальной настройке вы будете удивлены, когда наберете команду:

И увидите ответ:

По крайней мере я, когда впервые это увидел, прилично удивился. Подумал, что ошибся в написании команды, перепроверил все несколько раз, но без результата. Оказалось, что надо отдельно установить пакет для выполнения ifconfig и прочих сетевых утилит.

Вместо ifconfig в CentOS 7 теперь утилита ip. Я не понимаю, зачем пилить отдельные программы для управления сетевыми настройками, если ifconfig и так отлично справляется с задачей. К тому же мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это неудобно. Так что предлагаю установить привычный ifconfig.

Теперь, чтобы у нас работали команды nslookup или, к примеру, host необходимо установить пакет bind-utils. Если этого не сделать, то на команду:

Так что устанавливаем bind-utils:

Отключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем:

меняем значение
SELINUX=disabled
Чтобы изменения вступили в силу, перезагружаемся:

Можно без перезагрузки применить отключение SElinux:

Указываем сетевые параметры

В поле IPADDR вводим свой адрес, в NETMASK маску сети, в GATEWAY шлюз, DNS1 адрес днс сервера. Сохраняем файл и перезапускаем сеть для применения настроек:

Настраиваем firewall

Сразу хочу предупредить, что не имея доступа к консоли сервера, настраивать firewall плохая идея. Даже если вы очень хорошо понимаете что делаете и проделывали подобное много раз, все равно есть шанс остаться без доступа к серверу. Так что первым делом перед настройкой iptables проверяем доступ к консоли через KVM или физически.

В 7-й версии CentOS для управления iptables разработан новый инструмент под названием firewalld и все управление производится через него. Я не понял зачем это сделали, и не могу сказать, удобнее с ним стало или нет. По мне, так удобнее использовать одни и те же наработки по iptables. Мигрируя от сервера к серверу и от дистрибутива к дистрибутиву, я просто редактирую скрипт настроек фаервола.

Но CentOS зачем-то придумали firewalld, в Ubuntu стоит ufw, но суть одна и та же — это утилиты для конфигурирования iptables, который один и тот же во всех дистрибутивах. Я привык управлять iptables через самописный скрипт, который переношу от сервера к серверу и редактирую под конкретные потребности. Этим скриптом я и поделюсь. Так что для начала остановим и отключим firewalld:

Читать еще:  Смотрим информацию о системе в Linux (Ubuntu, CentOS, Fedora)

Установим утилиты для iptables:

Включим автозапуск iptables:

Теперь создадим файл /etc/iptables_rules.sh следующего содержания:

В принципе, добавить нечего, в файле даны все комментарии. В таком виде, логи всего заблокированного будут писаться в файл /var/log/messages и записей там будет очень много. Так что в обычной работе эти строки нужно закомментировать, и использовать только во время отладки. Более подробное описание правил и примеры настроек firewall в случае, когда ваш сервер является шлюзом локальной сети, приведено по ссылке в начале раздела.

Делаем файл c правилами исполняемым и запускаем:

Проверяем, применились ли правила:

При каждом запуске файла с правилами iptables, все изменения записываются в файл /etc/sysconfig/iptables и применяются при загрузке системы.

Настройка SSH в CentOS 7

Раскомментируем строку Port 22 и заменим значение 22 на 25333.
Так же я обычно разрешаю подключаться по ssh пользователю root. Мне так удобнее. Проблем с этим у меня никогда не возникало. Если вы считаете, что это не безопасно, не трогайте эту настройку. Чтобы разрешить пользователю root подключаться по ssh, раскомментируйте строку PermitRootLogin yes.

Сохраняем файл. Теперь обязательно изменяем настройки iptables, добавляем в разрешенные подключения вместо 22 порта 25333. Если этого не сделать, то после перезапуска sshd мы потеряем удаленный доступ к серверу. Итак, открываем /etc/iptables_rules.sh и меняем в строке

22 на 25333 и исполняем файл. Наше текущее соединение не оборвется, так как оно уже установлено, но заново подключиться по ssh к 22 порту уже н получится.

Проверяем какой порт слушает sshd:

Если вывод такой же как у меня, то все в порядке, теперь к ssh можно подключаться по 25333 порту.

Добавим еще одну небольшую настройку. Иногда, когда возникают проблемы с dns сервером, логин по ssh подвисает на 30-60 секунд. Вы просто ждете после ввода логина, когда появится возможность ввести пароль. Чтобы избежать этого замедления, укажем ssh не использовать dns в своей работе. Для этого в конфиге раскомментируем строку с параметром UseDNS и отключим его. По-умолчанию он включен.

Для применения изменений нужно перезапустить ssh службу, как мы уже делали ранее.

Настраиваем время

Чтобы сменить часовой пояс, необходимо выбрать подходящий файл часовой зоны в /usr/share/zoneinfo. В случае, если у вас часовой пояс Москвы, выполните следующее:

Либо можете воспользоваться специальной утилитой, которая входит в комплект CentOS 7. Делает она ровно то же самое:

В CentOS 7 есть утилита для синхронизации времени chrony. В стандартной установке она должна быть установлена в системе, в минимальной ее нет. Если у вас она не стоит, то устанавливайте вручную:

Запускаем chrony и добавляем в автозагрузку:

Проверяем, нормально ли запустился:

Все в порядке, сервис работает. После запуска он автоматически синхронизирует время.

Для синхронизации времени вы можете воспользоваться более привычно программой, которая присутствует практически во всех unix дистрибутивах — ntp. Устанавливаем утилиту синхронизации времени ntp в CentOS:

Разово синхронизируем время:

Если ntpdate не работает, посмотрите материал, может это ваш случай. Запустим демон синхронизации и запишем его запуск в автозагрузку:

Теперь наши часы будут автоматически синхронизироваться с сервером времени.

Более подробно об этой теме написано отдельно в моем материале — установка, настройка и синхронизация времени в CentOS.

DATAENGINER

Это руководство поможет вам установить и настроить NTP-сервер с помощью Chrony на RHEL 8/CentOS 8. NTP (сетевой протокол времени) — это сетевой протокол, который позволяет синхронизировать часы между компьютерными системами.

Chrony — это универсальная реализация протокола сетевого времени. У него есть две программы chrony и chronyd .

  • chronyd — это демон, который может быть запущен во время загрузки
  • chronyc это программа интерфейса командной строки, которая может использоваться для мониторинга chronyd производительности и изменения различных рабочих параметров во время работы.

Установка Chrony на RHEL 8/CentOS 8

Подключимся по ssh, к нашей виртуальной машине.

Установим часовой пояс. В моей случае я установлю часовой пояс Europe/Moscow, затем проверим временную зону:

Chrony содержит в репозиториях CentOS, поэтому выполним его установку используя пакетный менеджер DNF:

После установки запустим и включим службу chronyd.

Статус сервиса должен отображаться running

Настройка Chrony на RHEL 8/CentOS 8

После установки вы можете внести изменения в основной файл конфигурации Chrony в файле /etc/chrony.conf

Одно из основных изменений конфигурации, которое вы можете сделать — это установить серверы времени ближе всего к вам. Поскольку я живу в России, я установлю пул серверов NTP в ВНИИФТРИ.

Для этого я отредактирую файл /etc/chrony.conf закомментирую первую строку и добавлю следующий список серверов:

Файл примет вид.

Установим синхронизацию NTP.

Перезапустим chronyd сервис после внесения изменений:

Если вы используете включенный фаерволл, то откройте порт который будет использовать chrony для работы с ntp серверами и не забудьте перезагрузить фаерволл для того, чтобы правила вступили в силу:

Проверим, работает ли NTP-сервер.

Настройка NTP-клиент на CentOS 8/RHEL 8

Теперь, когда у вас установлен и настроен NTP-сервер Chrony, вы можете настроить NTP-клиент.

Установите часовой пояс на виртуальной машине с которой необходимо синхронизировать время.

Установим Chrony и настройте его как клиента NTP.

Отредактируем файл конфигурации, чтобы настроить NTP-сервер так, чтобы он указывал на вновь настроенный NTP-сервер.

Установим синхронизацию NTP.

Запустим и включим сервис chrony.

Проверьте настройку с помощью следующей команды:

Если команда верна, то в качестве имени/ip-адреса сервера, мы увидим ip адрес нашего chrony сервера.

Это все. Теперь у вас есть сервер NTP, работающий на сервере CentOS 8 .

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector
×
×