Донецкий техникум промышленной автоматики

Керівництво FreeBSD

  1. Керівництво FreeBSD (FreeBSD Handbook)
  2. 23.6. Domain Name System (DNS)
  3. 23.6.2. використовувана термінологія
  4. 23.6.3. Причини, за якими вам може знадобитися сервер імен
  5. 23.6.4. Як це працює
  6. 23.6.5. запуск BIND
  7. 23.6.6. файли
  8. 23.6.6.2. /etc/namedb/named.conf
  9. 23.6.6.3. файли зон
  10. 23.6.7. Кешуючий сервер імен
  11. 23.6.8. Запуск в пісочниці
  12. 23.6.9. Безпека
Зробити безкоштовний сайт і Landing Page

Хостинг з DDoS захистом від 2.5 $ + Безкоштовний SSL і Домен

SSD VPS в Нідерландах під різні завдання від 2.6 $

VPS / VDS за 1 євро!

vCore x1, 1 GB RAM ECC, 15 GB SSD (RAID 10), Port 1 Gbps, Трафік ∞, віртуалізатор KVM.

Вибір країн: Нідерланди, Молдова і Росія!

Надшвидкий хостинг від 69 р. / Міс., VPS від 299 р. / Міс.

Безкоштовно: адміністрування + ISPmanager + DDoS захист + SSL + 7 днів тестовий період

Знижка 50% на перший місяць VPS і хостингу по промокодом CITFORUM

ГіперХост - хостинг сайтів який Ви шукали.

Віртуальний хостинг, Оренда VPS серверів, рація доменних імен, SSL сертифікати

2004 р

Керівництво FreeBSD
(FreeBSD Handbook)

Проект Російської Документації FreeBSD

зміст

23.6. Domain Name System (DNS)

Текст надав Chern Lee.

23.6.1. огляд

За замовчуванням у FreeBSD використовується одна з версій програми BIND (Berkeley Internet Name Domain), що є найпоширенішою реалізацією протоколу DNS. DNS - це протокол, за допомогою якого імена перетворюються в IP-адреси і навпаки. Наприклад, у відповідь на запит про www.FreeBSD.org буде отримано IP-адреса веб-сервера Проекту FreeBSD, а запит про ftp.FreeBSD.org поверне IP-адреса відповідної машини з FTP-сервером. Точно так само відбувається і зворотний процес. Запит, що містить IP-адресу машини, поверне ім'я хоста. Для виконання запитів до DNS зовсім не обов'язково мати в системі працює сервер імен.

В мережі Інтернет DNS управляється через досить складну систему авторизованих кореневих серверів імен, і інших менш великих серверів імен, які містять і кешують інформацію про конкретних доменах.

У цьому документа розглядається BIND 8.x, так як це стабільна версія, яка використовується під FreeBSD. BIND 9.x може бути встановлений як порт net / bind9 .

Протокол DNS стандартизований в RFC1034 і RFC1035.

На даний момент пакет BIND підтримується Internet Software Consortium http://www.isc.org/ .

23.6.2. використовувана термінологія

Для розуміння цього документа потрібно розуміти значення деяких термінів, пов'язаних з роботою DNS.

Приклади зон:

Як можна бачити, уточнююча частина імені хоста з'являється зліва. Наприклад, example.org. більш точний, ніж org., також, як org. більш точний, ніж коренева зона. Розташування кожної частини імені хоста сильно схоже на файлову систему: каталог / dev розташований в кореневій файловій системі, і так далі.

23.6.3. Причини, за якими вам може знадобитися сервер імен

Сервера імен зазвичай використовуються в двох видах: авторитетний сервер імен та кешуючий сервер імен.

Авторитетний сервер імен потрібен, коли:

Кешуючий сервер імен потрібен, коли:

Наприклад, коли хтось запитує інформацію про www.FreeBSD.org, то зазвичай ресолвер звертається до сервера імен вашого провайдера, надсилає запит і чекає на відповідь. З локальним кешуючого DNS запит до зовнішнього світу буде робитися все один раз. Кожен додатковий клопотання не буде надсилатися за межі локальної мережі, тому що інформація вже є в кеші.

23.6.4. Як це працює

Під FreeBSD даемон BIND, з очевидних причин, називається.

Файли зон зазвичай розташовуються в каталозі / etc / namedb і містять інформацію про зону DNS, за яку відповідає сервер імен.

23.6.5. запуск BIND

Так як сервер імен BIND встановлюється за умовчанням, його настройка порівняно проста.

Щоб даемон запускався під час завантаження, помістіть в /etc/rc.conf наступний рядок:

named_enable = "YES"

Для запуску даемона вручну (після його налаштування):

# Ndc start

23.6.6. файли

23.6.6.1. Використання make-localhost

Обов'язково виконайте наступні команди:

# Cd / etc / namedb # sh make-localhost

для того, щоб правильно створити файл /etc/namedb/localhost.rev локальної зворотного зони для loopback-інтерфейсу.

23.6.6.2. /etc/namedb/named.conf

// $ FreeBSD $ // // Refer to the named (8) manual page for details. If you are ever going // to setup a primary server, make sure you've understood the hairy // details of how DNS is working. Even with simple mistakes, you can // break connectivity for affected parties, or cause huge amount of // useless Internet traffic. options {directory "/ etc / namedb"; // In addition to the "forwarders" clause, you can force your name // server to never initiate queries of its own, but always ask its // forwarders only, by enabling the following line: // // forward only; // If you've got a DNS server around at your upstream provider, enter // its IP address here, and enable the line below. This will make you // benefit from its cache, thus reduce overall DNS traffic in the Internet. / * Forwarders {127.0.0.1; }; * /

Як і йдеться в коментарях, якщо ви хочете отримати ефект від використання кешу провайдера, то можна включити розділ forwarders. У звичайному випадку сервер імен буде рекурсивно опитувати певні сервери імен Інтернет до тих пір, поки не отримає відповідь на свій запит. При включенні цього розділу він буде автоматично опитувати сервер імен вашого провайдера (або той, який тут вказано), використовуючи переваги його кешу. наявності необхідної інформації. Якщо відповідний сервер імен провайдера працює швидко і має хороший канал зв'язку, то в результаті такого налаштування ви можете отримати хороший результат.

Увага: 127.0.0.1 тут працювати не буде. Змініть його на IP-адресу сервера імен провайдера.

/ * * If there is a firewall between you and name servers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. * / // query-source address * port 53; / * * If running in a sandbox, you may have to specify a different * location for the dumpfile. * / // dump-file "s / named_dump.db"; }; // Note: the following will be supported in a future release. / * Host {any; } {Topology {127.0.0.0/8; }; }; * / // Setting up secondaries is way easier and the rough picture for this // is explained below. // // If you enable a local name server, do not forget to enter 127.0.0.1 // into your /etc/resolv.conf so this server will be queried first. // Also, make sure to enable it in /etc/rc.conf. zone "." {Type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" {type master; file "localhost.rev"; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {type master; file "localhost.rev"; }; // NB: Do not use the IP addresses below, they are faked, and only // serve demonstration / documentation purposes! // // Example secondary config entries. It can be convenient to become // a secondary at least for the zone where your own domain is in. Ask // your network administrator for the IP address of the responsible // primary. // // Never forget to include the reverse lookup (IN-ADDR.ARPA) zone! // (This is the first bytes of the respective IP address, in reverse // order, with ".IN-ADDR.ARPA" appended.) // // Before starting to setup a primary zone, better make sure you fully / / understand how DNS and BIND works, however. There are sometimes // unobvious pitfalls. Setting up a secondary is comparably simpler. // // NB: Do not blindly enable the examples below. :-) Use actual names // and addresses instead. // // NOTE !!! FreeBSD runs BIND in a sandbox (see named_flags in rc.conf). // The directory containing the secondary zones must be write accessible // to BIND. The following sequence is suggested: // // mkdir / etc / namedb / s // chown bind: bind / etc / namedb / s // chmod 750 / etc / namedb / s

Додаткова інформація про запуск BIND в обмеженому оточенні знаходиться в відповідному розділі .

/ * Zone "example.com" {type slave; file "s / example.com.bak"; masters {192.168.1.1; }; }; zone "0.168.192.in-addr.arpa" {type slave; file "s / 0.168.192.in-addr.arpa.bak"; masters {192.168.1.1; }; }; * /

Це приклади описів прямого і зворотного зон з файлу named.conf для вторинних серверів.

Для кожного нової зони, яку буде обслуговувати сервер імен, в файл named.conf повинна бути додана запис.

Наприклад, найпростіша запис для домену example.org може виглядати ось так:

zone "example.org" {type master; file "example.org"; };

Зона є первинною, що відбивається в поле type, і інформація про зону зберігається в файлі /etc/namedb/example.org, що вказується в полі file.

zone "example.org" {type slave; file "example.org"; };

Що стосується вторинної зони інформація про неї передається з основного сервера імен для заданої зони і зберігається в зазначеному файлі. Якщо і коли основний сервер імен виходить і ладу або недосяжний, то скачана інформація про зону буде перебувати на вторинних серверах і вони зможуть обслуговувати цю зону.

23.6.6.3. файли зон

Приклад файлу зони example.org для основного сервера (розташований в файлі /etc/namedb/example.org) має такий вигляд:

$ TTL 3600 example.org. IN SOA ns1.example.org. admin.example.org. (5; Serial 10800; Refresh 3600; Retry 604800; Expire 86400); Minimum TTL; DNS Servers @ IN NS ns1.example.org. @ IN NS ns2.example.org. ; Machine Names localhost IN A 127.0.0.1 ns1 IN A 3.2.1.2 ns2 IN A 3.2.1.3 mail IN A 3.2.1.10 @ IN A 3.2.1.30; Aliases www IN CNAME @; MX Record @ IN MX 10 mail.example.org.

Зауважте, що всі імена хостів, що закінчуються на ``. '', Задають повне ім'я, тоді як всі імена без символу ``. '' На кінці вважаються заданими щодо origin. Наприклад, www перетворюється в www.origin. У нашому уявному файлі Оріджін є example.org., Так що www перетворюється в www.example.org.

Файл зони мають такий вигляд:

recordname IN recordtype value

Найбільш часто використовувані записи DNS:

SOA

початок зони відповідальності

NS

авторитативні сервер імен

A

адреса хоста

CNAME

канонічне ім'я для аліаса

MX

обмін поштою

PTR

покажчик на доменне ім'я (використовується в зворотних зонах DNS)

example.org. IN SOA ns1.example.org. admin.example.org. (5; Serial 10800; Refresh after 3 hours 3600; Retry after 1 hour 604800; Expire after 1 week 86400); Minimum TTL of 1 day example.org.

ім'я домену, а також оріджін для цього файлу зони.

ns1.example.org.

основний / авторитативні сервер імен для цієї зони.

admin.example.org.

людина, яка відповідає за цю зону, адреса електронної пошти з підмінений символом `` @ ''. (< [email protected] > Стає admin.example.org)

5

послідовний номер файлу. При кожній зміні файлу зони це число повинне збільшуватися. В даний час для нумерації багато адміністраторів вважають за краще формат ггггммддвв. 2001041002 означатиме, що файл останній раз змінювався 10.04.2001, а останнє число 02 означає, що це була друга модифікація файлу за день. Послідовний номер важливий, так як він служить для того, щоб вторинні сервери дізнавалися про оновлення зони.

@ IN NS ns1.example.org.

Це NS-запис. Такі записи повинні бути для всіх серверів імен, які будуть відповідати за зону. Символ @, який використовується тут, перетворюється в example.org. Цей символ @ відповідає Оріджін.

localhost IN A 127.0.0.1 ns1 IN A 3.2.1.2 ns2 IN A 3.2.1.3 mail IN A 3.2.1.10 @ IN A 3.2.1.30

Записи типу A служать для позначення імен машин. Як це видно вище, ім'я ns1.example.org буде перетворено в 3.2.1.2. І знову тут використовується символ Оріджін @, позначаючи, що example.org буде перетворено в 3.2.1.30.

www IN CNAME @

Записи з канонічними іменами зазвичай використовуються для присвоєння машинам псевдонімів. У цьому прикладі www є псевдонімом для машини, що відповідає Оріджін, тобто example.org (3.2.1.30). Записи CNAME можуть використовуватися для присвоєння псевдонімів іменах хостів або для використання одного імені декількома машинами по черзі.

@ IN MX 10 mail.example.org.

MX-запис вказує, які поштові сервери відповідають за обробку вхідних повідомлень електронної пошти для зони. mail.example.org є ім'ям поштового сервера, а 10 позначає пріоритет цього поштового сервера.

Можна мати кілька поштових серверів з пріоритетами 3, 2 і 1. Поштовий сервер, який намагається доставити пошту для example.org, спочатку спробує зв'язатися з машиною, що має MX-запис з найбільшим пріоритетом, потім з пріоритетом поменше і так далі, до тих пір , поки пошта не буде відправлена.

Для файлів зон in-addr.arpa (зворотні записи DNS) використовується той же самий формат, що відрізняється тільки використанням записів PTR замість A або CNAME.

$ TTL 3600 1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (5; Serial 10800; Refresh 3600; Retry 604800; Expire 3600); Minimum @ IN NS ns1.example.org. @ IN NS ns2.example.org. 2 IN PTR ns1.example.org. 3 IN PTR ns2.example.org. 10 IN PTR mail.example.org. 30 IN PTR example.org.

У цьому файлі дається повна відповідність імен хостів IP-адресами в нашому описаному раніше вигаданому домені.

23.6.7. Кешуючий сервер імен

Кешуючий сервер імен - це сервер імен, що не відповідає ні за яку зону. Він просто виконує запити від свого імені і зберігає результати для подальшого використання. Для настройки такого сервера досить виключити всі описи зон зі стандартної конфігурації сервера імен.

23.6.8. Запуск в пісочниці

Для додаткової безпеки вам може знадобитися запускати named (8) з правами непривилегированного користувача і налаштувати його на виконання chroot (8) в каталог-пісочницю. Це дозволить зробити недоступним для даемона все, що розташоване поза пісочниці. Якщо буде зламаний, то це допоможе зменшити можливі збитки. За замовчуванням у FreeBSD є користувач і група з іменами bind, які призначені саме для такого використання.

Зауваження: Багато рекомендують замість налаштування на використання chroot, вмикайте інструмент у jail (8) . В цьому розділі такий підхід не розглядається.

Так як не зможе звернутися ні до чого поза пісочниці (наприклад, спільно використовуваних бібліотек, сокета протоколів і так далі), то потрібно виконати кілька кроків, щоб зміг працювати нормально. У наступному списку передбачається, що каталогом пісочниці є / etc / namedb і що ви не робили ніяких змін у вмісті цього каталогу. Виконайте наступні кроки, працюючи як користувач root:

Наступним кроком є ​​редагування файлу /etc/namedb/etc/named.conf так, щоб знав, яку зону завантажувати і де знайти їх на диску. Далі слід прокоментований приклад (все, що навмисно не прокоментовано, нічим не відрізняється від настройки сервера DNS, що працює не в пісочниці):

options {directory "/"; options {directory /;    named-xfer / bin / named-xfer;    version ;  // Чи не видавайте версію BIND query-source address * port 53;  };  // керуючий сокет ndc controls {unix / var / run / ndc perm 0600 owner 0 group 0;  };  // Далі йдуть зони: zone localhost IN {type master;  file master / named named-xfer "/ bin / named-xfer"; version ""; // Чи не видавайте версію BIND query-source address * port 53; }; // керуючий сокет ndc controls {unix "/ var / run / ndc" perm 0600 owner 0 group 0; }; // Далі йдуть зони: zone "localhost" IN {type master; file "master / named.localhost"; allow-transfer {localhost; }; notify no; }; zone "0.0.127.in-addr.arpa" IN {type master; file "master / localhost.rev"; allow-transfer {localhost; }; notify no; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" {type master; file "master / localhost-v6.rev"; allow-transfer {localhost; }; notify no; }; zone "." IN {type hint; file "master / named.root"; }; zone "private.example.net" in {type master; file "master / private.example.net.db"; allow-transfer {192.168.10.0/24; }; }; zone "10.168.192.in-addr.arpa" in {type slave; masters {192.168.10.2; }; file "slave / 192.168.10.db"; };

Після виконання кроків вище або перезавантажте ваш сервер, або перезапустіть syslogd (8) і запустіть named (8) , Не забувши використовувати нові опції, задані в syslogd_flags і named_flags. Тепер має запрацювати в пісочниці!

23.6.9. Безпека

Хоча BIND є найпоширенішою реалізацією DNS, завжди стоїть питання про забезпечення безпеки. Час від часу виявляються можливі і реальні проломи в безпеці.

Дуже корисно прочитати повідомлення безпеки CERT і підписатися на Список розсилки FreeBSD, присвячений терміновим повідомленням, пов'язаних з безпекою для того, щоб бути в курсі поточних проблем із забезпеченням безпеки Internet і FreeBSD.

Підказка: Якщо виникають проблеми, то наявність останніх вихідних текстів і свежеоткомпілірованного не завадить.

Увага!

Будь-який з матеріалів, опублікованих на цьому сервері, не може бути відтворений в якій би то не було формі і якими б то не було засобами без письмового дозволу власників авторських прав. Детальніше...