Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В

..pdf
Скачиваний:
119
Добавлен:
24.05.2014
Размер:
3.66 Mб
Скачать

Глава 22. NTP – программное обеспечение для синхронизации времени

281

Шаг 3

Скопируйте системные файлы, необходимые для работы NTP, в соответствующие подкаталоги окру-

жения chroot-jail:

[root@drwalbr /]# cp /etc/resolv.conf /chroot/ntpd/etc/ [root@drwalbr /]# cp /etc/localtime /chroot/ntpd/etc/ [root@drwalbr /]# chown ntp.ntp /chroot/ntpd/etc/localtime

Шаг 4

В файл /etc/sysconfig/ntpd добавьте строку:

ROOTDIR="-T /chroot/ntpd"

OPTIONS="-U ntp"

Шаг 5

Создайте файл инициализации /etc/init.d/ntpd, содержащий следующие строки:

#!/bin/bash

#This shell script takes care of starting and stopping ntpd.

#chkconfig: 345 58 74

#description: NTPD is used to provide time server.

#Source function library.

. /etc/init.d/functions

#Source networking configuration.

. /etc/sysconfig/network

#Source for additional options if we have them. if [ -f /etc/sysconfig/ntpd ];then

. /etc/sysconfig/ntpd

fi

#Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

#If NTPD is not available stop now. [ -f /usr/sbin/ntpd ] || exit 0

[ -f /chroot/ntpd/etc/ntp.conf ] || exit 0

#Path to the NTPD binary. ntpd=/usr/sbin/ntpd

RETVAL=0

prog="NTPD"

start() {

echo -n $"Starting $prog: " daemon $ntpd $ROOTDIR $OPTIONS RETVAL=$?

echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/ntpd return $RETVAL

}

stop() {

echo -n $"Shutting down $prog: " killproc $ntpd

RETVAL=$? echo

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ntpd return $RETVAL

}

282

Часть 4. Программное обеспечение для ограничения доступа к серверу...

# See how we were called. case "$1" in

start)

start

;;

stop)

stop

;;

status)

status $ntpd RETVAL=$?

;;

restart) stop start

RETVAL=$?

;;

condrestart)

if [ -f /var/lock/subsys/ntpd ]; then stop

start RETVAL=$?

fi

;;

*)

echo $"Usage: $0 {start|stop|status|restart|condrestart}" exit 1

esac

exit $RETVAL

Шаг 6 Для дополнительной безопасности сделайте файл неизменяемым:

[root@drwalbr /] # cd /chroot/ntpd/etc/

[root@drwalbr etc]# chattr +i ntp.conf

ЗАМЕЧАНИЕ Не забудьте удалить атрибут immutable перед внесением изменений и установить его вновь после их завершения.

Шаг 7

Для тестирования NTP в окружении chroot jail запустите ntpd, просканируйте UDP порты вашей системы и проверьте работоспособность NTP c использованием утилиты ntpq, в соответствии с рекомендациями по тестированию NTP в обычной среде, изложенными выше.

Шаг 8

Проверьте, запущен ли ntpd и определите соответствующий номер процесса:

[root@drwalbr /]# ps -axf | grep ntpd

21889 ? SL 0:00 /usr/sbin/ntpd -T /chroot/ntpd -U ntp

Проверьте, действительно ли NTP работает в окружении chroot-jail:

[root@drwalbr

/]# ls

-la

/proc/21889/root

 

Если вы получите вывод вида (отображающий ссылку на корневой каталог среды chroot-jail):

lrwxrwxrwx

1 root

 

root

0

Апр 30 20:54 /proc/21889/root

-> /chroot/ntpd

то NTP корректно работает в окружении chroot-jail.

Если вы получите вывод, отображающий корневой каталог системы, на которой он установлен, то NTP работает в обычном режиме, а не в безопасной среде.

Глава 23. ISC BIND – программное обеспечение для организации службы DSN

283

Часть 5

Служба DNS

284

Часть 5. Служба DSN

Глава 23

ISC BIND – программное обеспечение для организации службы DNS

В этой главе:

1. Ограничения и допущения

2.Пакеты

3.Инсталляция с помощью rpm-пакетов

4.Компиляция, оптимизация и инсталляция ISC BIND

5.Конфигурирование ISC BIND

6.Конфигурирование ISC BIND в режиме кэширующего DNS-сервера

7.Конфигурационный файл /etc/named.conf

8.Конфигурационный файл /var/named/db.cache

9.Конфигурационный файл зоны localhost /var/named/db.localhost

10. Конфигурационный файл обратной зоны /var/named/0.0.127.in-addr.arpa 11. Системный конфигурационный файл /etc/sysconfig/named

12. Файл инициализации /etc/init.d/named

13. Конфигурирование ISC BIND в режиме первичного DNS-сервера

14. Конфигурационные файлы /var/named/db.cache, /var/named/db.localhost, /var/named/0.0.127.in-addr.arpa, /etc/sysconfig/named и /etc/init.d/named

15. Конфигурационный файл /etc/named.conf

16. Конфигурационный файл зоны /var/named/db.contora

17. Конфигурационный файл обратной зоны /var/named/76.24.213.in-addr.arpa 18. Конфигурирование ISC BIND в режиме вторичного DNS-сервера

19. Конфигурационные файлы /var/named/db.cache, /var/named/db.localhost, /var/named/0.0.127.in-addr.arpa, /etc/sysconfig/named и /etc/init.d/named

20. Обеспечение безопасности транзакций для ISC BIND с использованием TSIG

21. Использование TSIG для безопасного администрирования ISC BIND с использованием утилиты rndc

22.Тестирование и администрирование ISC BIND

23.Выполнение ISC BIND в среде chroot-jail

24.Демон lwresd

Глава 23. ISC BIND – программное обеспечение для организации службы DSN

285

Каждый компьютер или другое устройство, подключенное к сети Интернет, имеют уникальный IPадрес. Именно по IP-адресу происходит поиск и взаимодействие устройств в сети. IP-адрес представляет собой последовательность из четырех чисел, разделенных точками. Поначалу для облегчения взаимодействия с удаленными информационными ресурсами в Интернет стали использовать таблицы соответствия IPадресов именам систем и псевдонимам. Пример такого соответствия вы можете посмотреть в файле

/etc/hosts.

Эти таблицы использовались для преобразования IP-адресов в имена и обратно. Авторство их создания, по-видимому, принадлежит Д. Постелю (John Postel), который первым стал поддерживать (собирать информацию об IP-адресах и соответствующих им именах систем) файл hosts. Доступ к файлу предоставлялся всем желающим по протоколу FTP. С развитием Интернет хранение и использование файла на каждом компьютере, подключенном к Интернет, стала невозможной. Поэтому вместо единого для всех файла была создана доменная система имен (Domain Name System, DNS), представляющая собой распределенную базу данных, позволяющая устанавливать соответствие между IP-адресами и символьными именами.

Однако файл /etc/hosts не ушел безвозвратно в прошлое и используется в небольших сетях для установления соответствия между IP-адресами и именами систем.

Впервые DNS была описана Паулем Моккапетрисом (Paul Mockapetris) в 1984 году в RFC-882 и RFC883. Позже эти документы были заменены на RFC-1034 и RFC-1035. Система доменных имен строится по иерархическому принципу. Точнее, по принципу вложенных друг в друга множеств. Корень системы, согласно RFC-1034, имеет пустое имя. Иногда ошибочно полагают, что обозначение корневого домена – символ ".", но это не так. Точка – это всего лишь разделитель компонентов доменного имени, а т. к. у корневого домена нет обозначения, то эту точку и ошибочно принимают за обозначение корневого домена.

Корень – это все множество хостов Интернет. Данное множество подразделяется на домены первого или верхнего уровня (top-level domen или TLD). Домен ru, например, соответствует множеству хостов российской части Интернет. Домены верхнего уровня дробятся на более мелкие домены, например, корпоративные.

В80-е годы были определены первые домены первого уровня (top-level): gov, mil, edu, com, net. Позднее, когда сеть перешагнула национальные границы США, появились национальные домены: uk, jp, au, ch, и т. п. Для СССР также был выделен домен su. После 1991 года, когда республики Союза стали суверенными, многие из них получили свои собственные домены: ua, ru, la, li и т. п.

Слово «хост» не является в полном смысле синонимом имени компьютера, как это часто упрощенно представляется, т. к. у компьютера может быть множество IP-адресов, каждому из которых можно поставить

всоответствие одно или несколько доменных имен. Кроме того, одному доменному имени можно поставить

всоответствие несколько разных IP-адресов, которые, в свою очередь могут быть закреплены за разными компьютерами. Символьное имя хоста включает в себя доменное имя и имя системы и состоит из нескольких полей, разделенных точками. Крайнее правое поле является именем домена верхнего уровня, далее, справа налево, следуют имена доменов более низкого уровня. Крайнее левое поле, является именем системы.

ВRFC-1034 и RFC-1035 определяется несколько типов DNS-серверов. Одним из способов классификации серверов является тип отклика на запрос:

авторитетный (authoritative response) ответ серверами, ответственными за зону (фрагмент DNS, управляемый этим сервером);

неавторитетный (non authoritative response) ответ выдается по запросам клиентов серверами, которые не отвечают за зону, а просто по каким-либо причинам обладают (содержат в кэше) необходимую для ответа на запрос информацию.

Например, если ваш сервер доменных имен поддерживает зону sipria.msk.ru, и клиент запрашивает у него IP-адрес почтового сервера mail.sipria.msk.ru, то ответ вашего сервера считается авторитетным, т. к. именно ваш сервер несет ответственность за ответы на запросы, касающиеся хостов в зоне si-

pria.msk.ru.

Если клиент обратится к вашему DNS-серверу, поддерживающего, зону sipria.msk.ru с запросом об IP-адресе сервера www.yandex.ru, то он, вероятно, выдаст информацию из кэша (кто-то из пользователей мог уже обращаться с таким запросом). В этом случае ответ, скорее всего, является правильным, но не авторитетным. В рассматриваемом примере авторитетный ответ на запрос могут дать либо первичный сервер, отвечающий за зону yandex.ru, или дублирующие его функции вторичные сервера.

Администратор первичного сервера доменных имен вручную создает описание файлов зон, за которые отвечает сервер. Все остальные серверы только копируют информацию с первичного сервера. Для зоны можно определить только один первичный сервер, являющийся первоисточником для всех вторичных серверов.

Вторичный сервер также предоставляет клиентам авторитетные ответы на запросы, касающиеся обслуживаемых им зон, подстраховывая работу первичного сервера доменных имен и отвечая на часть запросов, адресуемых первичному серверу. В больших зонах может быть несколько вторичных серверов, так, например, из 13 серверов, обслуживающих корневую зону, 12 являются вторичными серверами.

286

Часть 5. Служба DSN

Администратор вторичного сервера не создает файлов описания зон, он только обеспечивает настройку своего сервера таким образом, чтобы он копировал описание зон с первичного сервера, поддерживая описание зон в актуализированном состоянии.

Существует оговоренная практика резервирования серверов, которая описана в рекомендациях по ведению зон. Она заключается в том, что для домена второго уровня необходимо иметь, как минимум, два сервера, ответственных за зону, т. е. дающих авторитетные отклики на запросы. При этом эти серверы должны иметь независимые подключения к Интернет для обеспечения бесперебойного обслуживания запросов в случае потери связи или выхода из строя одного из серверов.

Наиболее популярным приложением, реализующим систему доменных имен, является Berkeley Internet Name Domain (BIND) от Internet Software Consortium (ISC). По оценкам, более 90 % компьютеров в Интернет используют программу ISC BIND, которая cодержит сервер, библиотеку клиента и несколько утилит. В этой главе мы рассмотрим инсталляцию и настройку ISC BIND на примере организации поддержания собственной зоны небольшой компании. Принципиальная схема организации службы DNS представлена на рис. 23.1.

В рассматриваемом примере служба DNS реализуется с помощью:

первичного DNS-сервера;

вторичного DNS-сервера, имеющего независимое подключение к Интернет (например, установленного на одной из систем дружественной заокеанской фирмы);

кэширующих DNS-серверов на шлюзе, других серверах и Linux-системах в локальной сети.

ЗАМЕЧАНИЕ Если вы используете DNS-сервера провайдера, то необходимость в инсталляции и настройке первичного и вторичного DNS-серверов отпадает. При этом файлы описания вашей зоны должны создаваться и актуализироваться провайдером. На шлюзе в Интернет необходимо установить кэширующий DNS-сервер, а на остальных Linux системах в вашей сети желательно установить «облегченный» вариант DNS-сервера - .

Ограничения и допущения

Исходные коды находятся в каталоге /var/tmp.

Все операции выполняются пользователем с учетной записью root. Используется дистрибутив ASPLinux 7.3 (Vostok).

Перекомпиляция ядра не требуется.

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

Пакеты

Последующие рекомендации основаны на информации, полученной с домашней страницы проекта ISC BIND по состоянию на 13.05.2003. Регулярно посещайте домашнюю страницу проекта http://www.isc.org/и отслеживайте обновления.

Исходные коды ISC BIND содержатся в архиве bind-version.tar.gz (последняя доступная на момент написания главы стабильная версия bind-9.2.2.tar.gz).

Для нормальной работы ISC BIND с поддержкой протокола SSL необходима установка программного обеспечения OpenSSL, описанная в главе 12.

Инсталляция с помощью rpm-пакетов

Если вы предпочитаете использование системы со стандартным ядром и программным обеспечением, установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить следующие операции.

ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.

Шаг 1

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

[root@drwalbr /]# rpm –iq bind

Шаг 2

Перейдите в каталог, где находится пакет bind-9.2.1-1.asp.i386.rpm. Если вы в соответствии с рекомендациями главы 2 скопировали все пакеты, входящие в дистрибутив, в каталог /home/distrib, то выполните команду:

[root@drwalbr /]# cd /home/distrib

Глава 23. ISC BIND – программное обеспечение для организации службы DSN

287

Первичный DNS-сервер

Вторичный DNS-сервер зоны contora.ru

IP 213.24.76.2

IP 194.226.94.138

 

Интернет

WWW-сервер,

 

кэширующий

Роутер

DNS-сервер

 

Почтовый сервер,

 

кэширующий DNS-сервер

 

Концентратор

 

 

 

 

 

 

 

 

 

IP 213.24.76.9

 

 

 

 

 

 

 

 

 

 

IP 213.24.76.5

Шлюз,

 

 

Сервер баз данных,

кэширующий DNS-сервер

 

 

кэширующий DNS-сервер

 

 

IP 213.24.76.1

 

 

IP 213.24.76.3

 

 

IP 192.168.1.1

 

 

 

 

Локальная сеть 192.168.1.0/24

Концентратор На всех Linux-системах уста- новлены кэширующие DNS-сервера

Рис. 23.1 Принципиальная схема организации службы DNS.

288

Часть 5. Служба DSN

и установите:

[root@drwalbr distrib]# rpm -ihv bind-utils-9.2.1-1.asp.i386.rpm [root@drwalbr distrib]# rpm –ihv bind-9.2.1-1.asp.i386.rpm

или обновите пакет:

[root@drwalbr distrib]# rpm –Uhv bind-9.2.1-1.asp.i386.rpm

После установки пакета перейдите к настройке программы.

Компиляция, оптимизация и инсталляция ISC BIND

Для инсталляции ISC BIND из исходных кодов необходимо выполнить следующие операции.

Шаг 1 Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кодами

с использованием процедур, описанных в шаге 1 радела «Компиляция, оптимизация и инсталляция

OpenSSL» главы 12.

Шаг 2

Если вы собираетесь использовать ISC BIND с поддержкой протокола SSL, и на вашей системе не установлено программное обеспечение OpenSSL, установите его в соответствии с рекомендациями главы 12.

Шаг 3

Распакуйте архивы с исходными кодами ISC BIND в каталоге /var/tmp:

[root@drwalbr tmp]# tar xzpf bind-9.2.2.tar.gz

[root@drwalbr tmp]# cd bind-9.2.2

Шаг 4

Создайте специального пользователя named, от имени которого будет запускаться ISC BIND:

[root@drwalbr bind-9.2.2]# groupadd -g 25 named > /dev/null || : [root@drwalbr bind-9.2.2]# useradd -u 25 -g 25 -s /bin/false -M -r -d

/var/named named > /dev/null 2>&1 || :

Шаг 5

Для добавления несуществующего командного интерпретатора добавьте в файл /etc/shells стро-

ку:

/bin/false/

Шаг 6

Для изменения используемых для хранения файлов named.pid и lwresd.pid в файле

/var/tmp/bind-9.2.2/bin/named/include/named/giobals.h замените строку:

"/run/named .pid");

на:

"/run/named/named.pid");

Строку:

"/run/lwresd.pid");

на:

"/run/named/lwresd.pid");

Шаг 7

Отконфигурируйте исходные коды ISC BIND:

[root@drwalbr bind-9.2.2]# CFLAGS="-O2 -march=i686 -funroll-loops"; export CFLAGS

./configure \ --prefix=/usr \ --atedir=/var \ --mandir=/usr/share/man \ --with-openssl \ --with-libtool \ --disable-ipv6

Глава 23. ISC BIND – программное обеспечение для организации службы DSN

289

Шаг 8

Откомпилируйте, проинсталлируйте ISC BIND, создайте и сохраните в надежном месте список установленных файлов:

[root@drwalbr bind-9.2.2]# make

[root@drwalbr bind-9.2.2]# find /* > /root/dns1 [root@drwalbr bind-9.2.2]# make install [root@drwalbr bind-9.2.2]# strip /usr/sbin/named [root@drwalbr bind-9.2.2]# mkdir -p /var/named [root@drwalbr bind-9.2.2]# mkdir -p /var/run/named

[root@drwalbr bind-9.2.2]# install -c -m0600 bin/rndc/rndc.conf /etc/ [root@drwalbr bind-9.2.2]# chown named.named /etc/rndc.conf [root@drwalbr bind-9.2.2]# chown named.named /var/named/ [root@drwalbr bind-9.2.2]# chown named.named /var/run/named

[root@drwalbr bind-9.2.2]# /sbin/ldconfig [root@drwalbr bind-9.2.2]# find /* > /root/dns2

[root@drwalbr bind-9.2.2]# diff /root/dns1 /root/dns2 >

/root/dns.installed

[root@drwalbr bind-9.2.2]# mv /root/dns.installed

/very_reliable_place/dns.installed.YYYYMMDD

Шаг 9 Удалите архивы и каталоги с исходными кодами программ:

[root@drwalbr /]# cd /var/tmp/ [root@drwalbr tmp]# rm -rf bind-9.2.2/

[root@drwalbr tmp]# rm -f bind-9.2.2.tar.gz

Конфигурирование ISC BIND

Конфигурирование ISC BIND осуществляется с использованием следующих файлов:

основного конфигурационного файла /etc/named.conf;

файла/var/named/db.cache, содержащего IP-адреса DNS-серверов, обслуживающих корневую зону;

файлов зон /var/named/db.*;

файлов обратных зон /var/named/*.*.*.in-addr.arp;

системного конфигурационного файла /etc/sysconfig/named, необходимого для запуска ISC BIND в окружении chroot-jail.

файла инициализации /etc/init.d/named, необходимого для запуска ISC

BIND.

Конфигурирование ISC BIND в режиме кэширующего DNS-сервера

Кэширующий DNS-сервер не отвечает ни за какие зоны, кроме локальной, и предназначен для хранения и выдачи по запросам клиентов из локальной сети информации о соответствии имен IP-адресам и наоборот. При невозможности ответа на запрос клиента из-за отсутствия соответствующей информации в кэше, кэширующий DNS-сервер переадресовывает запрос соответствующим DNS-серверам, получает на него ответ и сохраняет полученную информацию в кэше. В последующем эта информация может быть использована при ответе на другие запросы.

Конфигурационный файл /etc/named.conf

Шаг 1

Создайте файл /etc/named.conf, руководствуясь своими потребностями и ниже приведенными рекомендациями:

//Authorized source addresses. acl "trusted" {

localhost;

};

//Known fake source addresses shouldn't be replied to. acl "bogon" {

0.0.0.0/8;

1.0.0.0/8;

290

Часть 5. Служба DSN

 

2.0.0.0/8;

 

192.0.2.0/24;

 

224.0.0.0/3;

 

169.254.0.0/16;

 

// Enterprise networks may or may not be bogus.

 

10.0.0.0/8;

 

172.16.0.0/12;

 

192.168.0.0/16;

};

 

options

{

 

directory "/var/named";

 

allow-transfer { none; };

 

allow-query { trusted; };

 

allow-recursion { trusted; };

 

blackhole { bogon; };

 

tcp-clients 32;

 

forwarders { 213.24.76.2; 194.226.94.138; };

 

version "Hangry Bambr DNS v. 0.01";

};

 

logging

{

 

category lame-servers { null; };

};

 

// Root

server hints

zone "." { type hint; file "db.cache"; };

// Provide a reverse mapping for the loopback address 127.0.0.1/24 zone "localhost" {

type master;

file "db.localhost"; notify no;

};

zone "0.0.127.in-addr.arpa" { type master;

file "0.0.127.in-addr.arpa"; notify no;

};

где строки:

acl "trusted" { localhost;

};

определяют список контроля доступа с именем trusted, содержащий список хостов, которым в дальнейшем будет разрешено обращаться с запросами к DNS-серверу, обрабатывающему все разрешенные IPадреса или имена хостов в нашей конфигурации. Для кэширующего DNS-сервера необходимо включить в список только localhost.

Строки:

acl "bogon" { 0.0.0.0/8; 1.0.0.0/8; 2.0.0.0/8; 192.0.2.0/24; 224.0.0.0/3; 169.254.0.0/16;

10.0.0.0/8;

172.16.0.0/12;

192.168.0.0/16;

};

Соседние файлы в предмете Информатика