Linux: Полное руководство — страница 45 из 98

Конфигуратор diskdrake-fileshare позволяет очень быстро настроить пакет Samba для разрешения совместного использования каталогов («расшаривания» каталогов). Убедитесь, что запущены сервисы nfs и smb, если это не так, запустите их:

# service nfs start

# service smb start

Запустите конфигуратор diskdrake-fileshare (рис. 12.3), выберите опцию «Разрешить всех пользователей» и нажмите OK.

Рис. 12.3. Конфигуратор diskdrake-fileshare

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

fileshare
.

Как только вы разрешите совместное использование каталогов, пользователи смогут расшарить их в своем файловом менеджере. Например, в Konqueror для расшаривания каталога нужно щелкнуть на нем правой кнопкой мыши и выбрать пункт меню Share.

12.4. Программа LinNeighborhood — правильный выбор

Доступ к совместно используемым ресурсам осуществляется с помощью программ smbclient и smbmount. Как их использовать, вы уже знаете. Не очень удобно, не правда ли? Конечно, если вы работаете в текстовом режиме и система X Window у вас не установлена, то другого выхода у вас нет. Но если у вас установлена графическая среда, то бороздить просторы сети Microsoft гораздо приятнее с помощью программы LinNeighborhood (Сетевое окружение Linux).

Установите программу LinNeighborhood (пакет и команда для запуска называются так же). Запустите ее и наслаждайтесь!

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

Вы видите, что в сети находятся две машины. Первая — это контроллер домена

server.dhsilabs.com
, а вторая — это моя машина
den.dhsilabs.com
.

Ресурс public в данный момент подключен к каталогу

/home/denis/mnt/server.dhsilabs.com/public
. С этим каталогом можно работать как с обыкновенным каталогом локальной файловой системы.

Чтобы подключить ресурс, выделите его и нажмите кнопку Подключить или дважды щелкните на нужном вам ресурсе. Появится окно Диалог подключения, в котором нужно указать необходимые параметры подключения.

Рис. 12.4. Программа LinNeighborhood

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

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

Для поиска компьютера в доступной сети можно использовать команду меню Опции→Просмотреть всю сеть.

Глава 13DNS — служба имен

13.1. Введение в DNS

Перед началом настройки DNS-сервера давайте разберемся, как он работает. Пространство имен DNS — это иерархическая древовидная структура доменов. Корень дерева доменов обозначается «.». Под ним находятся домены верхнего уровня. Наиболее известные из них вы знаете: com, gov, net, org и т.п. Выделением имен доменов верхнего уровня занимается ICANN — International Corporation for Assigned Names and Numbers. Администрация домена регистрирует домены следующего уровня и так далее.

Всемирная система доменных имен представляет собой распределенную базу данных. Каждый компьютер, подключенный к сети, является клиентом этой базы, а некоторые компьютеры — серверами.

Допустим, пользователь вводит в окне браузера адрес: http://www.yahoo.com. Чтобы установить соединение с компьютером www.yahoo.com, компьютеру пользователя необходимо знать его IP-адрес, поэтому операционная система пользователя пытается разрешить (перевести) имя компьютера в IP-адрес. С этой целью она обращается к серверу DNS. Сервер DNS сначала пытается разрешить имя данного компьютера, используя свой собственный кэш имен. Если требуемое имя компьютера в нем отсутствует, то сервер DNS должен получить его у другого сервера DNS, поэтому база данных DNS и называется распределенной.

Сначала первичный сервер обращается к одному из корневых серверов, список IP-адресов которых находится в его конфигурационных файлах (конкретно, в файле

named.ca
). Далее запрос обрабатывается рекурсивно: корневой сервер знает имена и IP-адреса официальных серверов DNS всех доменов второго уровня и перенаправляет запрос к серверу, который отвечает за домен com, а тот, в свою очередь, — к серверу DNS домена yahoo.com.

Сервер DNS домена yahoo.com возвращает IP-адрес компьютера www — 64.58.76.222 или все адреса, которые сопоставлены этому имени (многие сетевые операционные системы, в том числе и Linux, позволяют одному имени сопоставлять несколько IP-адресов).

На самом деле, если выполнить разрешение имени

www.yahoo.com
, то сервер DNS возвратит следующие адреса:

64.58.76.222

64.58.76.228

64.58.76.223

64.58.76.176

64.58.76.224

64.58.76.177

64.58.76.227

64.58.76.179

А официальное, или каноническое, имя компьютера www.yahoo.com — www.yahoo.akadns.net.

13.2. Настройка клиента DNS

Разрешение имен на стороне DNS-клиента выполняет модуль распознавания (резолвер). В ОС Linux он представляет собой набор библиотечных функций. Конфигурационным файлом распознавателя служит

/etc/resolv.conf
, содержащий список DNS-серверов (от 1 до 3), которым можно посылать запросы:

search subdomain.domain.com domain.com

nameserver 127.0.0.1  ; сервер по умолчанию

                      ; на локальном компьютере

nameserver 81.3.165.35; запасной — у провайдера

Директива search используется для поиска компьютера в том случае, если указано только имя узла без домена. Например, если вы введете в окне броузера http://host, то сначала будет выполнена попытка обращения к узлу host.subdomatn.domain.com, а потом, если узел не будет найден, к узлу host.domain.com.

Комментариев в файле

resolv.conf
не полагается: произвольный текст можно вписывать только в строки с директивами nameserver после IP-адреса.

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

/etc/hosts
, СУБД NIS и т.п. Порядок просмотра определен в файле переключения служб
/etc/nsswitch.conf
:

hosts: files dns

13.3. Настройка сервера DNS

Локальная сеть с выходом в Интернет может пользоваться сервером имен, работающим на компьютере провайдера. Но, учитывая типичную для бывшего СССР скорость соединения, при которой на обращение к серверу DNS провайдера требуется от 10 до 30 секунд, имеет смысл установить собственный сервер DNS — обычно на шлюзе, который используется для выхода в Интернет.

Внутренняя сеть (intranet) может обойтись и файлами

/etc/hosts
, но при большом количестве узлов целесообразно завести DNS-сервер и для нее.

Самый известный сервер имен для Linux — это демон named из пакета BIND (Berkeley Internet Name Daemon). Вам понадобится установить еще пакет bind-libs с необходимыми библиотеками и bind-utils, содержащий утилиты командной строки (dig, host, nslookup).

Существуют три версии пакета BIND: 4, 8 и 9 (версий 5-7 никогда не было). Сейчас везде используется девятая версия, о которой я и буду рассказывать.

Для установки девятой версии BIND требуются:

♦ ядро 2.4 или выше;

♦ библиотека OpenSLL.

Для работы сервера должен быть активизирован сервис network.

Основным конфигурационным файлом named служит

named.conf
, который устанавливается по умолчанию в
/etc
для версии 9 или в
/etc/namedb
(версия 8). Синтаксис этого файла подобен языку С (листинг 13.1).

Листинг 13.1. Примерный файл named.conf

logging {

 category cname {null; };

};


options {

 directory "/var/named";

};


zone "." {

 type hint;

 file "named.ca";

};


zone "dhsilabs.com" {

 type master;

 file "dhsilabs.com";

 notify no;

};


zone "0.0.127.in-addr.arpa" {

 type master;

 file "named.local";

};


zone "1.168.192.in-addr.arpa" {

 type master;

 file "192.168.1";

 notify yes;

};

Рассмотрим этот пример подробнее. Обслуживаемая сервером зона (домен без поддоменов) —

dhsilabs.com
. Рабочий каталог сервера, от которого отсчитываются относительные пути файлов, —
/var/named
. Именно в этом каталоге сервер будет искать файлы
dhsilabs.com
,
named.local
,
192.168.1
,
named.ca
.

Блок logging определяет опции протоколирования. За ним следует задание параметров самого сервера — блок options. Параметр directory определяет рабочий каталог сервера. Этот параметр обязателен, но кроме него в блоке options могут присутствовать и другие (forwarders, forward и т.п.), о которых будет сказано несколько позже.

После блока параметров должны быть перечислены зоны, обслуживаемые сервером. Мы будем обслуживать зону dhsilabs.com. Информация об этой зоне хранится в файле

/var/named/dhsilabs.com
, с помощью которого наш сервер будет преобразовывать имена компьютеров в IP-адреса. Для обратного преобразования служит файл
/var/named/192.168.1
.

Зоны «.» и «0.0.127.in-addr.arpa» — особые. Я не буду их подробно описывать: их назначение вы поймете из дальнейшего текста главы. Файл

named.local
— это файл обратного соответствия, предназначенный для преобразования IP-адресов в имена, то есть, в частности, он используется для преобразования адреса 127.0.0.1 в имя
localhost
.

Файл

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

Файл

named.ca
необходимо регулярно обновлять, чтобы он всегда содержал свежие данные (первый раз его нужно обновить сразу же после установки сервера, несмотря на то, что этот файл будет только что создан). Если ваш DNS-сервер предназначен для обслуживания только внутренней сети без выхода в Интернет, то зону корневых серверов нужно удалить.

Файл данных сервера имен

dhsilabs.com
непосредственно служит для преобразования имен в IP-адреса (листинг 13.2).

Записи в этом файле называются записями ресурсов. Формат записи ресурса следующий:

[имя_домена] [TTL] <тип_сети><тип_записи><данные>

Где:

Имя_домена обязательно для первой записи в файле, оно всегда должно начинаться с первой колонки. Для следующих записей это поле можно опускать. Символ @ обозначает текущий домен.

Необязательное поле TTL (Time to Live) — это время в секундах, в течение которого данные в кэше считаются достоверными. Если значение не указано, то оно берется из записи SOA (см. ниже).

Тип_сети может содержать значение IN (Internet) или HS (информационная служба Hesiod).

Тип_записи: типы записи ресурсов приведены в таблице 13.1. Остальные поля данных зависят от типа записи ресурса.

Пустые строки и строки, начинающиеся с точки с запятой, считаются комментариями.

Листинг 13.2. Файл dhsilabs.com

@ IN SOA den.dhsilabs.com. host.master.dhsilabs.com. (

  93011120 ; серийный номер

  10800    ; обновление каждые 3 часа

  3600     ; повтор каждый час

  3600000  ; хранить информацию 1000 часов

  86400)   ; TTL записи - 24 часа

IN NS den.dhsilabs.com.

IN A  192.168.1.1

IN MX 150 den.dhsilabs.com.


den IN  A     192.168.1.1

IN   HINFO    INTEL CELERON (LINUX)

IN   MX 100   den

IK   MX 150   evg.dhsilabs.com.

ns   IN CNAME den.dhsilabs.com.

www  IN CNAME den.dhsilabs.com.

ftp  IN CNAME den.dhsilabs.com.

mail IN CNAME den.dhsilabs.com.


evg IN A   192.168.1.2

IN  MX 100 den.dhsilabs.com.


localhost IN A 127.0.0.1

Тип записи SOA (Start of Authority) означает начало зоны. Для каждой зоны такая запись единственна и должна стоять первой по порядку. Она содержит имя зоны, почтовый адрес ее администратора (где знак @ заменен на «.») и параметры обновления данных. Круглые скобки служат для разбиения одной записи на несколько строк.

Имя домена может быть сокращенным или полным. Полностью определенные имена заканчиваются символом точки. Если точки нет, то имя считается сокращенным и к нему автоматически добавляется имя текущего домена: так,

den.dhsilabs.com
без точки будет интерпретировано как
den.dhsilabs.com.dhsilabs.com
. He делайте этой распространенной ошибки, не забывайте ставить точку после имени домена.

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


Типы записи ресурсов Таблица 13.1

ЗаписьНазначение
SOAНачало полномочий: определение DNS-зоны
NSОпределение сервера имен
AIP-адрес (IPv4), соответствующий имени компьютера. Для IPv6-адресов используется тип A6
PTRОбратное преобразование: имя компьютера, соответствующее IP-адресу
MXMail exchange: почтовый сервер, обслуживающий домен. Можно перечислить несколько почтовых серверов, указав приоритет: чем меньше число, тем приоритет выше
CNAMEКаноническое имя узла, к которому преобразуются псевдонимы: так, по адресу http://www.dhsilabs.com обращение будет производиться к den.dhsilabs.com
HINFOИнформация об узле: операционной системе и аппаратном обеспечении. Рекомендую не заполнять эту запись или использовать заведомо неправильные данные. Чем меньше информации о вашей сети получит злоумышленник, тем сложнее ему будет атаковать ее
TXTПроизвольный текст — комментарии или нестандартная информация

Содержание файлов обратного преобразования, устанавливающих соответствие между IP-адресами и именами при помощи записей типа PTR, приведено в листингах 13.3 и 13.4. Внимание! IP-адреса указываются в обратном порядке: 2.1.168.192. Если указан неполный IP, например, 1, то к нему будет добавлен адрес подсети 1.168.192.

Листинг 13.3. Файл named.local

@ IN SOA dhsilabs.com. root. dhsilabs.com. (

     199609203 ;серийный номер

     28800     ;обновление каждые 8 часов

     7200      ;повтор каждые 2 часа

     604800    ;хранить информацию 168 часов (1 неделю)

     86400)    ;TTL записи - 24 часа

  NS  dhsilabs.com.

1 PTR localhost.

Листинг 13.4. Файл 192.168.1

@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (

     93011120 ; серийный номер

     10800    ; обновление каждые 3 часа

     3600     ; повтор каждый час

     3600000  ; хранить информацию 1000 часов

     86400 )  ; TTL записи - 24 часа

@           IN NS den.dhsilabs.com

1           IN PTR den.dhsilabs.com

2.1.168.192 IN PTR evg.dhsilabs.com

13.3.1. Обновление корневого кэша

Если вы настраиваете сервер DNS только для своей внутренней сети, которая не имеет выхода в Интернет, то не спешите обновлять файл кэша! Он вам вообще не нужен. Вы также должны удалить зону, описывающую корневой кэш в файле

named.conf
.

Обычно файл

named.ca
содержит примерно такую информацию:

Листинг 13.5. Файл корневых серверов

. 6D IN NS G.ROOT-SERVERS.NET.

. 6D IN NS J.ROOT-SERVERS-NET.

. 6D IN NS K.ROOT-SERVERS.NET.

. 6D IN NS L.ROOT-SERVERS.NET.

. 6D IN NS M.ROOT-SERVERS.NET.

. 6D IN NS A.ROOT-SERVERS.NET.

. 6D IN NS H.ROOT-SERVERS.NET.

. 6D IN NS B.ROOT-SERVERS.NET,

. 6D IN NS C.ROOT-SERVERS.NET.

. 6D IN NS D.ROOT-SERVERS.NET.

. 6D IN NS E.ROOT-SERVERS.NET.

. 6D IN NS I.ROOT-SERVERS.NET.

. 6D IN NS F.ROOT-SERVERS.NET.


;; ADDITIONAL SECTION:

G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4

J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10

K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129

L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12

M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33

A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4

H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53

B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107

C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12

D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90

E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.23 0.10

I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17

F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241

Для установки файла корневого кэша следует установить пакет caching-nameserver, но я рекомендую получить и установить самую новую версию. Для этого подключитесь к Интернету, запустите сервер DNS, а затем выполните команду

# nslookup | tee ns

В ответ на приглашение утилиты nslookup введите две команды:

> set q=ns (или set type=ns)

> .

На экране вы увидите список корневых серверов DNS, который будет помешен в файл ns. Для преобразования файла ns в формат

named.ca
воспользуйтесь следующим awk-сценарием (листинг 13.6), вызвав его так:

# reformat ns named.ca

Листинг 13.6. Сценарий reformat

#!/bin/awk awk ' BEGIN {

/root/ { print ". IN NS " $4"." }

/internet/ { print $1"." " 999999 IN A " $5 }

END '

Теперь осталось скопировать

named.ca
в каталог
/var/named
, и на этом — все.

Можно обновить корневой кэш и проще, воспользовавшись утилитой dig:

# dig @a.root-servers.net.ns > named.ca.new

или

# dig @198.41.0.4.ns > named.ca.new

После этого остается только заменить старый файл

named.ca
новым файлом
named.ca.new
.

13.4. Кэширующий сервер DNS