LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdfГлава 23. ISC BIND – программное обеспечение для организации службы DSN |
301 |
Установите права доступа к файлу и назначьте владельцем файла пользователя named из группы named:
[root@drwalbr /]# chmod 644 /var/named/76.24.213.in-addr.arpa [root@drwalbr /]# chown named.named /var/named/76.24.213.in-addr.arpa
Конфигурирование ISC BIND в режиме вторичного DNS-сервера
Вторичный DNS-сервер используется для повышения надежности службы DNS и снижения загрузки первичного DNS-сервера. Вторичный DNS-сервер периодически загружает файлы зон и обратных зон с первичного или других вторичных DNS-серверов. Этот процесс называют переносом. Настройку вторичного DNS-сервера рассмотрим на примере вторичного DNS сервера отвечающего за зону contora.ru.
Шаг 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 { none; }; 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";
302 |
Часть 5. Служба DSN |
notify no;
};
//We are the slave server for contora.ru zone "contora.ru" {
type slave;
file "db.contora"; masters { 213.24.76.2; }; allow-query { any; };
};
//Provide a reverse mapping for domains network 213.24.76.0/24 zone "76.24.213.in-addr.arpa" {
type slave;
file "76.24.213.in-addr.arpa"; masters { 213.24.76.2; }; allow-query { any; };
};
Предлагаемый пример конфигурационного файла аналогичен файлу, используемому при конфигурировании первичного DNS-сервера. Отличием является определение в строках:
type slave;
конфигурируемого сервера в качестве вторичного для зоны и обратной зоны; и в строках:
masters { 213.24.76.2; };
указывающих на IP-адрес первичного DNS-сервера.
Шаг 2
Установите права доступа к файлу и назначьте владельцем файла пользователя named из группы named:
[root@drwalbr /]# chmod 600 /etc/named.conf [root@drwalbr /]# chown named.named /etc/named.conf
Конфигурационные файлы /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-серверов.
Обеспечение безопасности транзакций для ISC BIND с использованием TSIG
Механизм подписи транзакций (Transaction Signature, TSIG), используемый в ISC BIND версии 9, позволяет проверять подлинность транзакций. Например, установить, что запрос на перенос зоны поступает действительно от вторичного сервера, а не злоумышленника, пытающегося путем переноса файла зоны DNS-сервера получить информацию, необходимую для подготовки атаки на вашу сеть. Если вы хотите повысить безопасность службы DNS с использованием механизма TSIG, установите на первичном и вторичном DNS-серверах поддержку механизма подписи транзакций.
Для включения поддержки TSIG необходимо выполнить следующие операции.
Шаг 1
На одном из серверов сгенерируйте ключ для первичного и вторичного DNS-серверов:
[root@drwalbr /]# dnssec-keygen -a hmac-md5 -b 128 -n HOST ns1-ns2
Kns1-ns2.+157+40221
В результате выполнения следующей команды будет сгенерирован и сохранен в файле Kns1ns2.+157+40221.private 128-битный HMAC-MD5 ключ:
[root@drwalbr /]# cat Kns1-ns2.+157+40221.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5) Key: 2rhwwM2En/n5KScRtssAbA==
Глава 23. ISC BIND – программное обеспечение для организации службы DSN |
303 |
Ключ, в рассматриваемом примере выделенный жирным шрифтом, впоследствии используется в конфигурационных файлах /etc/named.conf на первичном и вторичном DNS-серверах. На паре взаимодействующих серверов используется один и тот же ключ.
Шаг 2
Внесите изменения в файл /etc/named.conf в соответствии с вашими потребностями и приводимыми ниже рекомендациями.
Для первичного DNS-сервера:
//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;
};
key "ns1-ns2" {
algorithm hmac-md5;
secret "2rhwwM2En/n5KScRtssAbA==";
};
server 194.226.76.0 { keys {"ns1-ns2";}
};
options {
directory "/var/named"; allow-transfer { key ns1-ns2; }; 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" {
304 |
Часть 5. Служба DSN |
type master;
file "0.0.127.in-addr.arpa"; notify no;
};
//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; };
};
Для вторичного DNS-сервера:
// 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;
};
key "ns1-ns2" {
algorithm hmac-md5;
secret "2rhwwM2En/n5KScRtssAbA==";
};
server 213.24.76.2 {
keys {"ns1-ns2";}
};
options {
directory "/var/named"; allow-transfer { none; }; 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; };
};
Глава 23. ISC BIND – программное обеспечение для организации службы DSN |
305 |
|
// 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;
};
//We are the slave server for contora.ru zone "contora.ru" {
type slave;
file "db.contora"; masters { 213.24.76.2; }; allow-query { any; };
};
//Provide a reverse mapping for domains network 213.24.76.0/24 zone "76.24.213.in-addr.arpa" {
type slave;
file "76.24.213.in-addr.arpa"; masters { 213.24.76.2; }; allow-query { any; };
};
Шаг 3
Удалите файлы Kns1-ns2.+157+40221.key и Kns1-ns2.+157+40221.private, созданные при генерации ключа:
[root@drwalbr /]# rm -f Kns1-ns2.+157+40221.key [root@drwalbr /]# rm -f Kns1-ns2.+157+40221.private.private
Использование TSIG для безопасного администрирования ISC BIND с использованием утилиты rndc
Утилита rndc предназначена для управления сервером ISC BIND. Если вы хотите использовать эту утилиту для администрирования DNS-сервера с поддержкой TSIG, вам необходимо внести соответствующие изменения в конфигурационный файл утилиты rndc – /etc/rndc.conf и главный конфигурационный файл DNS-сервера – /etc/named.conf. Для этого необходимо выполнить следующие операции.
Шаг 1 Сгенерируйте ключ:
[root@drwalbr /]# dnssec-keygen -a hmac-md5 -b 128 -n user rndc
Krndc.+157+45611
В результате выполнения следующей команды будет сгенерирован и сохранен в файле
Krndc.+157+45611.private 128-битный HMAC-MD5 ключ: [root@drwalbr /]# cat Krndc.+157+45611.private Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5) Key: erNkIU6wLgAfd7XZdfKiO==
Ключ, в рассматриваемом примере выделенный жирным шрифтом, используется утилитой rndc и должен быть добавлен в конфигурационные файлы /etc/rndc.conf и /etc/named.conf.
Шаг 2
306 |
Часть 5. Служба DSN |
Вставьте в файл /etc/rndc.conf ключ, сгенерированный на предыдущем шаге:
options { |
|
|
default-server |
localhost; |
|
default-key |
"key"; |
|
}; |
|
|
server localhost { |
|
|
key |
"key"; |
|
}; |
|
|
key "key" { |
|
|
algorithm |
hmac-md5; |
|
secret "erNkIU6wLgAfd7XZdfKiO==";
};
Шаг 3
Отредактируйте файл /etc/named.conf в соответствии с вашими требованиями и ниже приведенными рекомендациями (в рассматриваемом примере в качестве исходного используется файл для первичного DNS-сервера):
//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;
};
key "key" { algorithm hmac-md5;
secret "erNkIU6wLgAfd7XZdfKiO=="; };
controls {
inet 127.0.0.1 allow { localhost; } keys { "key"; }; };
key "ns1-ns2" {
algorithm hmac-md5;
secret "2rhwwM2En/n5KScRtssAbA==";
};
server 194.226.76.0 { keys {"ns1-ns2";}
};
options {
directory "/var/named"; allow-transfer { key ns1-ns2; }; allow-query { trusted; }; allow-recursion { trusted; }; blackhole { bogon; }; tcp-clients 1024;
forwarders { none; };
Глава 23. ISC BIND – программное обеспечение для организации службы DSN |
307 |
|
|
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;
};
//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; };
};
Шаг 4
Удалите файлы Krndc.+157+45611.key и Krndc.+157+45611.private, созданные при ге-
нерации ключа:
[root@drwalbr /]# rm -f Krndc.+157+45611.key [root@drwalbr /]# rm -f Krndc.+157+45611.private
Тестирование и администрирование ISC BIND
Шаг 1
Запустите ISC BIND:
[root@drwalbr /]# /etc/init.d/named start
Запускается Named: [ОК]
Шаг 2
Проверьте работоспособность вашего DNS-сервера с использованием утилиты dig:
[root@drwalbr /]# dig @nsl.contora.ru
; <<>> DiG 9.2.2 <<>> @ns1.contora.ru
;;global options: printcmd
;;Got answer:
;;->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19554
;;flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;;QUESTION SECTION:
;. |
IN |
NS |
;; ANSWER SECTION:
308 |
|
|
|
Часть 5. Служба DSN |
. |
341774 |
IN |
NS |
G.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
H.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
I.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
J.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
K.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
L.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
M.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
A.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
B.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
C.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
D.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
E.ROOT-SERVERS.NET. |
. |
341774 |
IN |
NS |
F.ROOT-SERVERS.NET. |
;; ADDITIONAL SECTION: |
|
|
|
|
G.ROOT-SERVERS.NET. |
428174 |
IN |
A |
192.112.36.4 |
H.ROOT-SERVERS.NET. |
428174 |
IN |
A |
128.63.2.53 |
I.ROOT-SERVERS.NET. |
428174 |
IN |
A |
192.36.148.17 |
J.ROOT-SERVERS.NET. |
428174 |
IN |
A |
192.58.128.30 |
K.ROOT-SERVERS.NET. |
428174 |
IN |
A |
193.0.14.129 |
L.ROOT-SERVERS.NET. |
428174 |
IN |
A |
198.32.64.12 |
M.ROOT-SERVERS.NET. |
428174 |
IN |
A |
202.12.27.33 |
A.ROOT-SERVERS.NET. |
428174 |
IN |
A |
198.41.0.4 |
B.ROOT-SERVERS.NET. |
428174 |
IN |
A |
128.9.0.107 |
C.ROOT-SERVERS.NET. |
428174 |
IN |
A |
192.33.4.12 |
D.ROOT-SERVERS.NET. |
428174 |
IN |
A |
128.8.10.90 |
E.ROOT-SERVERS.NET. |
428174 |
IN |
A |
192.203.230.10 |
F.ROOT-SERVERS.NET. |
428174 |
IN |
A |
192.5.5.241 |
;;Query time: 15 msec
;;SERVER: 213.24.76.2#53(ns1.contora.ru)
;;WHEN: Thu May 22 15:04:36 2003
;;MSG SIZE rcvd: 436
Шаг 3
Проверьте наличие возможности администрирования DNS-сервера с использованием утилиты rndc. Для получения информации о возможностях утилиты используйте команду:
[root@drwalbr /]# rndc
command is one of the following:
reload |
Reload configuration file and zones. |
reload zone [class [view]] |
|
|
Reload a single zone. |
refresh zone [class [view]] |
|
|
Schedule immediate maintenance for a zone. |
reconfig |
Reload configuration file and new zones only. |
stats |
Write server statistics to the statistics file. |
querylog |
Toggle query logging. |
dumpdb |
Dump cache(s) to the dump file (named_dump.db). |
stop |
Save pending updates to master files and stop the server. |
halt |
Stop the server without saving pending updates. |
trace |
Increment debugging level by one. |
trace level |
Change the debugging level. |
notrace |
Set debugging level to 0. |
flush |
Flushes all of the server's caches. |
flush [view] |
Flushes the server's cache for a view. |
status |
Display status of the server. |
*restart |
Restart the server. |
* == not yet implemented Version: 9.2.2
Шаг 4
Попробуйте узнать IP-адреса хостов, находящиеся в зоне ответственности вашего DNS-сервера:
Глава 23. ISC BIND – программное обеспечение для организации службы DSN |
309 |
[root@drwalbr /]# nslookup -sil www.contora.ru
Server: 213.24.76.2 Address: 213.24.76.2#53
www.contora.ru
Name: www.contora.ru
Address: 212.111.78.9
и за её пределами:
[root@drwalbr /]# nslookup -sil www.bruy.info
Server: 213.24.76.2 Address: 213.24.76.2#53
Non-authoritative answer:
Name: www.bruy.info
Address: 212.24.38.75
Шаг 5 Попробуйте получить информацию о записях, соответствующих почтовым серверам в файлах зоны
вашего DNS-сервера с использованием утилиты host:
[host@drwalbr /]# host -t MX contora.ru contora.ru mail is handled by 1 mail1.contora.ru.
Для получения информации о возможностях утилиты используйте команду:
[root@drwalbr /]# host
Usage: host [-aCdlrTwv] [-c class] [-n] [-N ndots] [-t type] [-W time] [-R number] hostname [server]
-a is equivalent to -v -t *
-c specifies query class for non-IN data
-C compares SOA records on authoritative nameservers -d is equivalent to -v
-l lists all hosts in a domain, using AXFR
-n Use the nibble form of IPv6 reverse lookup
-N changes the number of dots allowed before root lookup is done -r disables recursive processing
-R specifies number of retries for UDP packets -t specifies the query type
-T enables TCP/IP mode
-v enables verbose output
-w specifies to wait forever for a reply -W specifies how long to wait for a reply
Выполнение ISC BIND в среде chroot-jail
Потенциальные уязвимости ISC BIND, как и любого другого программного обеспечения, могут использоваться для реализации атак на вашу систему. Поэтому для повышения безопасности системы рекомендуется выполнять ISC BIND в окружении chroot-jail. Для этого необходимо выполнить следующие операции.
Шаг 1
Создайте каталоги, необходимые для размещения файлов ISC BIND в окружении chroot-jail:
[root@drwalbr /]# mkdir -p /chroot/named/etc [root@drwalbr /]# mkdir -p /chroot/named/dev [root@drwalbr /]# mkdir -p /chroot/named/var/run/named [root@drwalbr /]# mkdir -p /chroot/named/var/named [root@drwalbr /]# chown -R named.named /chroot/named/etc [root@drwalbr /]# chown -R named.named /chroot/named/dev
[root@drwalbr /]# chown -R named.named /chroot/named/var/run/named [root@drwalbr /]# chown -R named.named /chroot/named/var/named
ЗАМЕЧАНИЕ Для повышения безопасности вашей системы каталог /chroot/named/ рекомендуется размещать на отдельном разделе диска.
Шаг 2
310 |
Часть 5. Служба DSN |
Переместите конфигурационные файлы ISC BIND в соответствующие подкаталоги окружения chrootjail, создайте файл устройства random, установите права доступа к файлам и назначьте владельцем файла пользователя named из группы named:
[root@drwalbr /]# mv /etc/named.conf /chroot/named/etc [root@drwalbr /]# mv /var/named/* /chroot/named/var/named [root@drwalbr /]# mknod /chroot/named/dev/random c 1 8 [root@drwalbr /]# chmod 644 /chroot/named/dev/random [root@drwalbr /]# chown named.named /chroot/named/etc/named.conf [root@drwalbr /]# chown -R named.named /chroot/named/var/named/*
Шаг 3
В качестве дополнительной меры безопасности сделайте файл /chroot/named/etc/named.conf защищенным от изменений:
[root@drwalbr /]# chattr +i /chroot/named/etc/named.conf
ЗАМЕЧАНИЕ Если потребуется внести изменения в файл /chroot/named/etc/named.conf не забудьте удалить атрибут immutable для этого файла, используя команду:
[root@drwalbr /]# chattr -i /chroot/named/etc/named.conf
Шаг 4
Удалите ненужные каталоги /var/named и /var/run/named, ранее используемые ISC BIND при инсталляции в обычном окружении:
[root@drwalbr /]# rm -rf /var/named/
[root@drwalbr /]# rm -rf /var/run/named/
Шаг 5
В файле /etc/sysconfig/named раскомментируйте или добавьте строку:
ROOTDIR="/chroot/named/"
Шаг 6
Запустите ISC BIND в окружении chroot-jail:
[root@drwalbr /]# /etc/init.d/named start
Запускается Named: [ОК]
Шаг 7
Проверьте, запущен ли ISC BIND, и определите соответствующий номер процесса:
[root@drwalbr /]# ps ax | grep named
17450 ? S 0:00 /usr/sbin/named -u named -t /chroot/named/
Шаг 8
Проверьте, запущен ли ISC BIND в окружении chroot-jail:
[root@drwalbr /]# ls -la /proc/17450/root/
Если вы получите вывод вида, отображающий содержимое корневого каталога среды chroot-jail:
итого 5
drwxr-xr-x |
5 |
root |
root |
1024 |
Май 18 21:01 . |
|||
drwxr-xr-x |
9 |
root |
root |
1024 |
Май 18 |
21:01 .. |
||
drwxr-xr-x |
2 |
named |
named |
1024 |
Май 18 |
21:10 dev |
||
drwxr-xr-x |
2 |
named |
named |
1024 |
Май |
18 |
21:09 |
etc |
drwxr-xr-x |
4 |
root |
root |
1024 |
Май |
18 |
21:05 |
var |
то ISC BIND корректно работает в окружении chroot-jail.
Демон lwresd
В состав версии 9 ISC BIND входит демон lwresd, установка которого рекомендуется на всех Linuxсистемах вашей сети, за исключением DNS-серверов и шлюза. lwresd является «облегченной» версией демона named и позволяет реализовывать функции кэширующего DNS-сервера с меньшими затратами ресурсов системы. Для установки lwresd в окружении chroot-jail необходимо выполнить следующие операции.
Шаг 1
Добавьте в файл /etc/resolv.сonf строку с указанием на IP-адрес вашего внешнего интерфейса: lwserver 192.168.1.112
