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

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

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

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

291

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

Директивы строки options {} определяют основные настройки сервера. Строка:

directory "/var/named";

определяет путь к рабочему каталогу сервера. Строка:

allow-transfer { none; };

определяет хосты, c которых разрешен перенос файлов зоны с конфигурируемого сервера. Значение ISC BIND, используемое по умолчанию, разрешает перенос файлов зон с любых хостов. Эта опция используется при конфигурировании вторичных DNS-серверов и в случае кэширующего DNS-сервера должна быть отключена.

Строка:

allow-query { trusted; };

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

trusted.

Строка:

allow-recursion { trusted; };

разрешает обрабатывать рекурсивные запросы от хостов, включенных в список контроля доступа с именем trusted. Если вы используете настройку по умолчанию, которая разрешает обрабатывать рекурсивные запросы от всех хостов, ваш сервер, может быть подвергнут атаке типа «отравление кэша» (cache poisoning), при которой в кэш вашего сервера могут быть добавлены некорректные данные о соответствии имен IPадресам.

Строка:

blackhole { bogon; };

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

tcp-clients 32;

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

Строка:

forwarders { 213.24.76.2; 194.226.94.138; };

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

Строка:

version "Hangry Bambr DNS v. 0.01";

позволяет переопределить описание версии используемого вами DNS-сервера. Строки:

logging {

category lame-servers { null; };

};

запрещают вносить в файлы регистрации сообщения вида:

lame server on 'domen.ru' (in 'dome.ru'?) x.x.x.x

обычно генерируемые при обращении к DNS-серверу, сконфигурированному как авторитетный для некоторой зоны, но таковым не являющимся.

Строка:

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

определяет имя файла db.cache, содержащего IP-адреса серверов, обслуживающих корневую зону. Строки:

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;

}; localhost

определяют файл зоны db.localhost, с помощью которого IP-адрес 127.0.0.1 преобразуется в имя localhost, и файл обратной зоны 0.0.127.in-addr.arpa, с помощью которого имя localhost пре-

292

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

образуется в IP-адрес 127.0.0.1. При этом запрещается (notify no) перемещение файлов зоны и обратной зоны на другие (вторичные) DNS-сервера.

Шаг 2

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

[root@drwalbr /]# chmod 600 /etc/named.conf [root@drwalbr /]# chown named.named /etc/named.conf

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

Шаг 1

Для получения последней версии файла выполните на системе, где уже установлена служба DNS, команду:

[root@drwalbr /]# dig @a.root-servers.net.ns > db.cache

Скопируйте этот файл в каталог /var/named с помощью утилиты scp, использование которой описано в конце главы. Если в вашем распоряжении нет системы с установленной службой DNS, воспользуйтесь приведенным ниже примером:

; <<>> DiG 9.2.2 <<>> @a.root-servers.net.ns

;;global options: printcmd

;;Got answer:

;;->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61928

;;flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13

;;QUESTION SECTION:

;.

 

IN

NS

 

;; ANSWER SECTION:

 

 

.

518400

IN

NS

D.ROOT-SERVERS.NET.

.

518400

IN

NS

A.ROOT-SERVERS.NET.

.

518400

IN

NS

H.ROOT-SERVERS.NET.

.

518400

IN

NS

C.ROOT-SERVERS.NET.

.

518400

IN

NS

G.ROOT-SERVERS.NET.

.

518400

IN

NS

F.ROOT-SERVERS.NET.

.

518400

IN

NS

B.ROOT-SERVERS.NET.

.

518400

IN

NS

J.ROOT-SERVERS.NET.

.

518400

IN

NS

K.ROOT-SERVERS.NET.

.

518400

IN

NS

L.ROOT-SERVERS.NET.

.

518400

IN

NS

M.ROOT-SERVERS.NET.

.

518400

IN

NS

I.ROOT-SERVERS.NET.

.

518400

IN

NS

E.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:

D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90 A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53 C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12 G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4 F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241 B.ROOT-SERVERS.NET. 3600000 IN A 128.9.0.107 J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30 K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129 L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12 M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33 I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17 E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10

;;Query time: 143 msec

;;SERVER: 198.41.0.4#53(a.root-servers.net)

;;WHEN: Fri May 9 08:22:18 2003

;;MSG SIZE rcvd: 436

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

293

ЗАМЕЧАНИЕ Если вы воспользовались нашим примером конфигурационного файла, не забудьте обновить его сразу же после запуска DNS-сервера.

Шаг 2

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

[root@drwalbr /]# chmod 600 /etc/db.cache [root@drwalbr /]# chown named.named /etc/db.cache

ЗАМЕЧАНИЕ В последующем, примерно два раза в год, обновляйте файл /etc/db.cache на всех DNS-серверах.

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

Шаг 1

Создайте файл db.localhost, содержащий следующие строки:

$TTL 86400

 

 

 

 

 

@

IN

SOA

localhost. root.localhost. (

 

 

 

00

;

Serial

 

 

 

10800

;

Refresh after 3 hours

 

 

 

3600

;

Retry after 1 hour

 

 

 

604800

;

Expire after 1 week

 

 

 

86400 ) ;

Minimum

 

IN

NS

localhost.

 

localhost

IN

A

127.0.0.1

 

Шаг 2

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

[root@drwalbr /]# chmod 644 /var/named/db.localhost [root@drwalbr /]# chown named.named /var/named/db.localhost

Конфигурационный файл обратной зоны /var/named/0.0.127.in-addr.arpa

Шаг 1

Создайте файл 0.0.127.in-addr.arpa, содержащий следующие строки:

$TTL 86400

 

 

 

@

IN

SOA

localhost. root.localhost. (

 

 

 

00

; Serial

 

 

 

10800

; Refresh after 3 hours

 

 

 

3600

; Retry after 1 hour

 

 

 

604800 ; Expire after 1 week

 

 

 

86400 ) ; Minimum

IN NS localhost.

1IN PTR localhost.

Шаг 2

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

[root@drwalbr /]# chmod 644 /var/named/0.0.127.in-addr.arpa [root@drwalbr /]# chown named.named /var/named/0.0.127.in-addr.arpa

Системный конфигурационный файл /etc/sysconfig/named

Шаг 1

Если вы собираетесь запускать ISC BIND в окружении chroot-jail, создайте файл /etc/sysconfig/named, содержащий следующие строки:

294

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

#This option will run named in a chroot environment. #ROOTDIR="/chroot/named/"

#These additional options will be passed to named at startup.

#Don't add -t here, use ROOTDIR instead.

#OPTIONS=""

Шаг 2

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

[root@drwalbr /]# chmod /etc/sysconfig/named [root@drwalbr /]# chown named.named /etc/sysconfig/named

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

Шаг 1

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

#!/bin/bash

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

#chkconfig: 2345 55 45

#description: Named (BIND) is a Domain Name Server (DNS) that is used \

#

to resolve host names to IP addresses.

#

 

#processname: named

#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/named ] ; then

. /etc/sysconfig/named

fi

#Check that networking is up.

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

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

[ -f "${ROOTDIR}"/etc/named.conf ] || exit 0

#Path to the Named binary. named=/usr/sbin/named

RETVAL=0

prog="Named"

start() {

echo -n $"Starting $prog: "

if [ -n "${ROOTDIR}" -a "x${ROOTDIR}" != "x/" ]; then OPTIONS="${OPTIONS} -t ${ROOTDIR}"

fi

daemon $named -u named ${OPTIONS} RETVAL=$?

echo

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

}

stop() {

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

295

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

RETVAL=$? echo

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

}

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

start)

start

;;

stop)

stop

;;

status)

status $named RETVAL=$?

;;

restart) stop start

RETVAL=$?

;;

condrestart)

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

start RETVAL=$?

fi

;;

reload)

/usr/sbin/rndc reload >/dev/null 2>&1 || /usr/bin/killall -HUP

$named

return $RETVAL

;;

probe)

/usr/sbin/rndc reload >/dev/null 2>&1 || echo start return $RETVAL

;;

*)

echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|probe}"

exit 1

esac

exit $RETVAL

Шаг 2

Сделайте файл исполняемым и определите его владельцем пользователя root:

[root@drwalbr /]# chmod 700 /etc/init.d/named [root@drwalbr /]# chown 0.0 /etc/init.d/named

Для автоматического запуска ISC BIND при загрузке системы создайте необходимые ссылки:

[root@drwalbr /]# chkconfig --add named [root@drwalbr /]# chkconfig --level 2345 named on

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

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

296

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

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

Конфигурация файлов /var/named/db.cache, /var/named/db.localhost,

/var/named/0.0.127.in-addr.arpa, /etc/sysconfig/named и /etc/init.d/named идентич-

на описанной выше конфигурации файлов для кэширующего DNS-сервера.

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

Шаг 1

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

//Authorized source addresses. acl "trusted" {

localhost;

192.168.1.0/24; 213.24.76.0/24;

};

//Known fake source addresses shouldn't be replied to. 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;

//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 { 194.226.76.138 ; }; allow-query { trusted; }; allow-recursion { trusted; }; blackhole { bogon; };

tcp-clients 1024; forwarders { none; };

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;

};

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

297

//We are the master server for contora.ru zone "contora.ru" {

type master;

file "db.contora"; allow-query { any; };

};

//Provide a reverse mapping for domains network 213.24.76.0/24 zone "76.24.213.in-addr.arpa" {

type master;

file "76.24.213.in-addr.arpa"; allow-query { any; };

};

где строки:

acl "trusted" { localhost; 192.168.1.0/24; 213.24.76.0/24;

};

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

Строка:

allow-transfer { 194.226.76.138 ; };

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

ЗАМЕЧАНИЕ Это очень важная настройка, т. к. затрудняет получение информации об IP-адресах и

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

Строка: tcp-clients 1024;

определяет максимально возможное число клиентских TCP-соединений, которое может быть одновременно установлено с DNS-сервером.

Строка:

forwarders { none; };

запрещает перенаправление запросов, касающихся зоны contora.ru на другие сервера. Конфигурируемый сервер является наиболее авторитетным источником информации о зоне contora.ru и нет никакой необходимости в переадресации запросов об этой зоне к другим серверам.

Строки:

zone "contora.ru" { type master;

file "db.contora"; allow-query { any; };

};

конфигурируют сервер в качестве первичного DNS-сервера для зоны contora.ru. В рассматриваемом примере строка:

zone "contora.ru" {

определяет зону, в которой сервер является авторитетным. Строка:

type master;

определяет сервер в качестве первичного. Строка:

file "db.contora";

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

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

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

Строка:

allow-query { any; };

разрешает отвечать на запросы клиентов о соответствии IP-адресов именам систем в зоне contora.ru для клиентов с любых IP-адресов.

Строки:

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

file "76.24.213.in-addr.arpa"; allow-query { any; };

};

определяют конфигурируемый сервер в качестве первичного для обратной зоны. В рассматриваемом примере строка:

zone "76.24.213.in-addr.arpa" {

определяет обратную зону, в которой сервер является авторитетным. Строка:

type master;

определяет сервер в качестве первичного. Строка:

file "76.24.213.in-addr.arpa";

указывает, что файл обратной зоны, содержащей таблицу соответствия, используемую для преобразования имен систем в IP-адреса, находится в файле 76.24.213.in-addr.arpa;

Строка:

allow-query { any; };

разрешает отвечать на запросы клиентов о соответствии имен систем IP-адресам в зоне contora.ru для клиентов с любых IP-адресов.

Шаг 2

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

[root@drwalbr /]# chmod 600 /etc/named.conf [root@drwalbr /]# chown named.named /etc/named.conf

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

Шаг 1

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

;Configuration for primary nameserver

;$ORIGIN

contora.ru

$TTL 172800

 

@IN SOA ns1.contora.ru. admin.contora.ru. (

 

 

2003051801

; Serial

 

 

10800

 

; Refresh after 3 hours

 

 

3600

 

; Retry after 1 hour

 

 

604800

 

; Expire after 1 week

 

 

172800

)

; Minimum TTL of 2 days

; Name Servers (NS) records.

 

 

;

 

 

 

 

IN

NS

ns1.contora.ru.

 

 

IN

NS

ns2.contora.ru.

 

 

; Mail Exchange (MX) records.

 

 

;

 

 

 

 

MX

0

mail1.contora.ru.

 

; Addresses for the canonical names (A) records.

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

299

;

 

 

 

 

localhost

IN

A

127.0.0.1

 

gateway

IN

A

213.24.76.1

 

www

IN

A

213.24.76.9

 

beta

IN

CNAME

www

 

db

IN

A

213.24.76.3

 

mail1

IN

A

213.24.76.5

 

Все записи в файле имеют формат вида:

[domain] [opt_ttl] [opt_class] [type] [data]

где:

[domain] – имена домена или системы, текущий домен обозначается символом "@", если имя не указано, то оно берется из предыдущей строки;

[opt_ttl] – время жизни записи в секундах;

[opt_class] – тип адреса, в настоящее время используется только один тип – IN; [type] – тип записи;

[data] – данные соответствующего типа.

Файл зоны должен начинаться с описания зоны ответственности – записи типа SOA (Start Of Authorizing), в рассматриваемом примере:

@IN SOA ns1.contora.ru. admin.contora.ru. (

2003051801

; Serial

 

 

10800

 

; Refresh after

3 hours

3600

 

; Retry after

1

hour

604800

 

;

Expire after 1

week

172800

)

;

Minimum TTL

of

2 days

В этой записи для текущего домена @ – т. е. contora.ru – определяются:

ns1.contora.ru. – имя первичного DNS-сервера. Символ точка на конце является обязательным и означает, что к описанию домена не следует добавлять ничего, например, имя текущего домена;

admin.contora.ru. – адрес электронной почты администратора DNS-сервера, в котором символ "@" заменен на ".";

2003051801 ; Serial – серийный номер, с помощью которого вторичные DNS-сервера получают информацию об изменении файла зоны;

10800 ; Refresh after 3 hours – длительность интервала времени, измеряемого в секундах, по истечении которого вторичный сервер должен обновлять файл зоны;

3600 ; Retry after 1 hour – длительность интервала времени, измеряемого в секундах, по истечении которого в случае неудачной попытки обновления файла зоны осуществляется его повторное обновление;

604800 ; Expire after 1 week – длительность интервала времени отсутствия связи с первичным сервером, измеряемого в секундах, по истечении которого вторичный сервер уничтожает файл зоны;

172800 )

; Minimum TTL of 2 days – минимальное время жизни записей в файле зоны,

измеряемого в секундах.

 

ЗАМЕЧАНИЕ В каждой последующей редакции файла серийный номер должен быть больше преды-

дущего.

 

 

Строки:

 

ns1.contora.ru.

IN

NS

IN

NS

ns2.contora.ru.

определяют имена первичного и вторичного DNS-серверов;

Строка:

 

 

MX

0

mail.contora.ru.

определяет сервер, на который пересылается почта, адресованная на почтовые адреса данного домена. Значение 0 определяет приоритет сервера. В принципе, для получения почты домена может использоваться несколько серверов. В этом случае при выходе из строя основного сервера, имеющего более высокий приоритет, почта будет пересылаться на резервный сервер и при первой возможности – на основной. Подобная конфигурация может быть реализована с помощью записей вида:

MX

10

mail1.contora.ru.

MX

50

smtp.drygayacontora.ru.

300

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

Значение приоритета варьируется в диапазоне от 0 до 32767, причем значение 0 соответствует самому высокому приоритету. Поэтому в рассматриваемом примере сначала будет осуществляется попытка достав-

ки почты на mail.contora.ru, а в случае невозможности – на smtp.drygayacontora.gov.

В строках:

localhost

IN

A

127.0.0.1

gateway

IN

A

213.24.76.1

www

IN

A

213.24.76.9

beta

IN

CNAME

www

db

IN

A

213.24.76.3

mail1

IN

A

213.24.76.5

записи типа A устанавливают соответствия между именами систем и IP-адресами в зоне contora.ru. Так,

например, строка:

 

 

 

www

IN

A

213.24.76.9

ставит в соответствие имени www.contora.ru IP-адрес 213.24.76.9.

Записи типа CNAME предназначены для присвоения дополнительных имен (алиасов). Например,

строка:

 

 

 

dymatel

IN

CNAME

www

ставит в соответствие имени dymatel.contora.ru IP-адрес 213.24.76.9, соответствующий также имени www.contora.ru.

Шаг 2

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

[root@drwalbr /]# chmod 644 /var/named/db.contora [root@drwalbr /]# chown named.named /var/named/db.contora

Конфигурационный файл обратной зоны /var/named/76.24.213.in-addr.arpa

Шаг 1

Создайте файл зоны /var/named/76.24.213.in-addr.arpa, руководствуясь приведенным ниже рекомендациями и вашими потребностями:

;Configuration for primary nameserver ;$ORIGIN 76.24.213.in-addr.arpa.

$TTL 172800

@IN SOA ns1.contora.ru. admin.contora.ru. (

2003051801

; Serial

 

 

10800

 

; Refresh after

3 hours

3600

 

; Retry after

1

hour

604800

 

;

Expire after 1

week

172800

)

;

Minimum TTL

of

2 days

;

Name Servers (NS) records.

 

;

 

 

 

 

IN

NS

ns1.contora.ru.

 

IN

NS

ns2.contora.ru.

; Addresses Point to Canonical Names (PTR) for Reverse lookups

;

 

 

 

1

IN

PTR

gateway.contora.ru.

9

IN

PTR

www.contora.ru.

3

IN

PTR

db.contora.ru.

5

IN

PTR

mail1.contora.ru.

Записи типа PTR устанавливают соответствие между IP-адресами и именами систем. При этом в начале записи находится последнее число в IP-адресе, например, для IP-адреса 213.24.76.9, соответствующего имени www.contora.ru, в начале записи указывается "9".

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

Шаг 2

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