Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 65
Текст из файла (страница 65)
22.1.Важным фактором для настройки синхронизации времени в вашей сети является правильный выборсерверов, используемых для получения точного времени главным сервером вашей сети. Выбранные серверадолжны удовлетворять следующим условиям:• временная задержка должна быть минимальной;• владельцы сервера не должны возражать против его использования вами.Старайтесь не использовать сервера первого уровня во избежание их перегрузки. Если вы не решаетезадачи, связанные с управлением космическими полетами, использованием высокоточного оружия и т.
п.точности серверов второго уровня вполне достаточно.Для реализации протокола Network Time Protocol авторы предлагают использовать программноеобеспечение NTP, разрабатываемое под руководством доктора Дэвида Миллса (David L. Mills, University ofDelaware).Если по каким-либо причинам вы предъявляете достаточно высокие требования к точности синхронизации времени в ваших сетях, одним из вариантов реализации этих требований является создание собственного эталонного сервера времени, получающего информацию от глобальной навигационной системыGPS (Global Positioning System). На домашней странице проекта NTP вы можете найти список совместимыхс NTP – Linux и платформой Intel – приемников. Некоторые из них на момент написания этой главы продавались в Москве и Днепропетровске (http://www.gpshome.ru) и стоили порядка нескольких сотен долларов США.В данной главе рассматривается простейший вариант инсталляции настройки сервера времени, используемого в вашей сети для синхронизации системного времени на других серверах и рабочих станциях соперационной системой Linux.
В более сложных случаях авторы рекомендуют пользоваться документациейс домашней страницы проекта NTP и других специализированных источников.Ограничения и допущенияИсходные коды находятся в каталоге /var/tmp.Все операции выполняются пользователем с учетной записью root.Используется дистрибутив ASPLinux 7.3 (Vostok).Перекомпиляция ядра не требуется.Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы это не проверяли.ПакетыПоследующие рекомендации основаны на информации, полученной с домашней страницы проектаNTP по состоянию на 08.05.2003. Регулярно посещайте домашнюю страницу проектаhttp://www.ntp.org/ и отслеживайте обновления. Исходные коды NTP содержатся в архиве ntpversion.tar.gz (последняя доступная на момент написания главы стабильная версия ntp4.1.1.tar.gz).Для нормальной работы NTP необходима библиотека LIBCAP.
Исходные коды библиотеки содержатся в архиве libpcap-version.tar.gz (последняя доступная на момент написания главы стабильнаяверсия libpcap-0.7.2.tar.gz).272Часть 4. Программное обеспечение для ограничения доступа к серверу...ЭталонныйNTP-серверЭталонныйNTP-серверIP 195.83.132.135ЭталонныйNTP-серверIP 199.212.17.34IP 216.27.190.202ИнтернетШлюзРоутерКонцентраторIP 172.16.181.1Локальная сеть 172.16.181.0/24NTP-серверсетиКонцентраторIP 172.16.181.111NTP-клиентNTP-клиентРис. 22.1.
Схема реализации синхронизации времени в сети масштаба предприятия с использованиемвнешних эталонов.Глава 22. NTP – программное обеспечение для синхронизации времени273Для запуска NTP от имени обычного пользователя и возможности запуска NTP в окружении chrootjail необходим патч ntp-chroot.patch разработки Open Network Architecture Inc., который может бытьполучен с FTP-сервера компании ftp://openna.com.Инсталляция с помощью rpm-пакетовЕсли вы предпочитаете использование системы со стандартным ядром и программным обеспечением,установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить следующиеоперации.ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.Шаг 1Проверьте, установлен ли пакет программы NTP с помощью следующей команды:[root@drwalbr /]# rpm –iq ntpШаг 2В случае его отсутствия перейдите в каталог, где находится пакет ntp-4.1.1-1.i386.rpm.
Есливы в соответствии с рекомендациями главы 2 скопировали все пакеты, входящие в дистрибутив, в каталог/home/distrib, то выполните команду:[root@drwalbr /]# cd /home/distribи установите:[root@drwalbr distrib]# rpm –ihv libcap-1.10-8.i386.rpm[root@drwalbr distrib]# rpm –ihv ntp-4.1.1-1.i386.rpmили обновите пакет:[root@drwalbr distrib]# rpm –Uhv ntp-4.1.1-1.i386.rpmПосле установки пакета перейдите к настройке программы.Компиляция, оптимизация и инсталляция NTPДля инсталляции NTP необходимо выполнить следующие операции.Шаг 1Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кодамис использованием процедур, описанных в шаге 1 радела «Компиляция, оптимизация и инсталляцияOpenSSL» главы 12.Шаг 2Если вы не установили ранее библиотеку LIBCAP, установите её в соответствии с рекомендациямиглавы 19.Шаг 3Распакуйте архивы с исходными кодами NTP в каталоге /var/tmp:[root@drwalbr tmp]# tar xzpf ntp-4.1.1.tar.gz[root@drwalbr tmp]# cd ntp-4.1.1/Шаг 4Скопируйте патч ntp-chroot.patch в каталог /var/tmp и модифицируйте исходные коды NTP:[root@drwalbr ntp-4.1.1]# patch –p1 < ../ntp-chroot.patchpatching file ntpd/Makefile.inHunk #1 succeeded at 197 (offset -2 lines).patching file ntpd/cmd_args.cpatching file ntpd/ntpd.cpatching file ntpdate/Makefile.inpatching file ntpdate/ntpdate.c274Часть 4.
Программное обеспечение для ограничения доступа к серверу...ЗАМЕЧАНИЕ Эту операцию необходимо выполнить, если вы собираетесь запускать NTP от именипользователя, отличного от root, или в окружении chroot-jail. Именно этот вариант настоятельно рекомендуется авторами.Шаг 5Создайте специального пользователя ntp, от имени которого будет запускаться NTP:[root@drwalbr ntp-4.1.1]# groupadd -g 38 ntp > /dev/null 2>&l || :[root@drwalbr ntp-4.1.1]# useradd -u 38 -g 38 -s /bin/false -M -r -d/etc/ntp ntp > /dev/null 2>&l || :ЗАМЕЧАНИЕ Эту операцию необходимо выполнить если вы собираетесь запускать NTP от именипользователя отличного от root. Именно этот вариант настоятельно рекомендуется авторами.Шаг 6Для добавления несуществующего командного интерпретатора добавьте в файл /etc/shells строку:/bin/false/Шаг 7Отконфигурируйте исходные коды NTP:[root@drwalbr ntp-4.1.1]# CFLAGS="-O2 -march=i686 -funroll-loops"; exportCFLAGS./configure \--prefix=/usr \--bindir=/usr/sbin \--sbindir=/usr/sbin \--sysconfdir=/etc \--localstatedir=/var \--mandir=/usr/share/man \--disable-debugging \--enable-all-clocks \--enable-parse-clocksШаг 8Откомпилируйте, проинсталлируйте NTP, создайте и сохраните в надежном месте список установленных файлов:[root@drwalbr ntp-4.1.1]# make[root@drwalbr ntp-4.1.1]# find /* > /root/ntp1[root@drwalbr ntp-4.1.1]# make install[root@drwalbr ntp-4.1.1]# strip /usr/sbin/ntp*strip: /usr/sbin/ntp-wait: File format not recognized[root@drwalbr ntp-4.1.1]# find /* > /root/ntp2[root@drwalbr ntp-4.1.1]# diff /root/ntp1 /root/ntp2 >/root/ntp.installed[root@drwalbr ntp-4.1.1]# mv /root/ntp.installed/very_reliable_place/ntp.installed.YYYYMMDDШаг 9Удалите архивы и каталоги с исходными кодами программ:[root@drwalbr ntp-4.1.1]# cd /var/tmp[root@drwalbr tmp]# rm –r ntp-4.1.1.tar.gz libpcap-0.7.2.tar.gz[root@drwalbr tmp]# rm –rf ntp-4.1.1/ libpcap-0.7.2/Конфигурирование NTPКонфигурирование NTP осуществляется с использованием следующих файлов:• основного конфигурационного файла /etc/ntp.conf;• файла /etc/ntp.drift, содержащего поправку (drift) на различную скорость хода системных часов вашей системы и эталона;• файла /etc/sysconfig/ntpd, используемого для запуска NTP от имени пользователя, отличного от root, и в окружении chroot jail;• файла инициализации /etc/init.d/ntpd.Глава 22.
NTP – программное обеспечение для синхронизации времени275Конфигурационный файл /etc/ntp.conf для сервераНиже рассматривается конфигурация NTP для сервера времени вашей сети. При этом предполагается,что сервер синхронизует время по находящимся в Интернет серверам и используется клиентами (серверамии рабочими станциями в локальной сети).Для конфигурирования NTP в качестве сервера необходимо выполнить следующие операции.Шаг 1Создайте файл /etc/ntp.conf, содержащий следующие строки:restrict default notrust nomodify ignorerestrict 127.0.0.1restrict 172.16.181.0 mask 255.255.255.0 notrust nomodify notraprestrict 195.83.132.135 mask 255.255.255.255 nomodify notrap noqueryrestrict 216.27.190.202 mask 255.255.255.255 nomodify notrap noqueryrestrict 199.212.17.34 mask 255.255.255.255 nomodify notrap noqueryserver 195.83.132.135 preferserver 216.27.190.202server 199.212.17.34server 127.127.1.0fudge 127.127.1.0 stratum 10driftfile /etc/ntp.driftbroadcastdelay 0.008Строки, начинающиеся с ключевого слова restrict, являются директивами управления доступом кNTP-серверу.
Для создания директив используется следующий синтаксис:restrict numeric-address [ mask numeric-mask ] [flag1] [flag2]…[flagN]где:numeric-address [ mask numeric-mask ]определяет диапазон IP-адресов, к которому относится данная директива, ключевое слово default означает все допустимые IP-адреса;[flag1] [flag2]…[flagN]определяют параметры доступа. Отсутствие флагов предоставляет неограниченный доступ. При обращениик NTP-серверу осуществляется последовательный просмотр директив управления доступом до первой директивы, разрешающей доступ.