Причины, по которым вам может понадобиться сервер имён



Сервера имён обычно используются в двух видах: авторитетный сервер имён и кэширующий сервер имён.

Авторитетный сервер имён нужен, когда:

• нужно предоставлять информацию о DNS остальному миру, отвечая на запросы авторизированно.

• зарегистрирован домен, такой, как example.org и в этом домене требуется поставить имена машин в соответствие с их адресами IP.

• блоку адресов IP требуется обратные записи DNS (IP в имена хостов).

• резервный (slave) сервер имён должен отвечать на запросы.

Кэширующий сервер имён нужен, когда:

• локальный сервер DNS может кэшировать информацию и отвечать на запросы быстрее, чем это происходит при прямом опросе внешнего сервера имён.

Например, когда кто-нибудь запрашивает информацию о www.FreeBSD.org, то обычно резолвер обращается к серверу имён вашего провайдера, посылает запрос и ожидает ответа. С локальным кэширующим сервером DNS запрос во внешний мир будет делаться всего один раз. Каждый дополнительный запрос не будет посылаться за пределы локальной сети, потому что информация уже имеется в кэше.

Как это работает

Во FreeBSD даемон BIND, по очевидным причинам, называется named.

Файл Описание
named(8) Даемон BIND
rndc(8) Программа управления даемоном сервера имён
/etc/namedb Каталог, в котором располагается вся информация о зонах BIND
/etc/namedb/named.conf Конфигурационный файл для даемона

 

Файлы зон обычно располагаются в каталоге /etc/namedb и содержат информацию о зоне DNS, за которую отвечает сервер имён.

В зависимости от способа конфигурации зоны на сервере файлы зон могут располагаться в подкаталогах master, slave или dynamic иерархии /etc/namedb. Эти файлы содержат DNS информацию, которую и будет сообщать в ответ на запросы сервер имен.

Запуск BIND

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

Стандартная конфигурация named запускает простой кэширующий сервер в ограниченной среде chroot(8). Для одноразового запуска даемона в этой конфигурации используйте команду

# /etc/rc.d/named forcestart

Чтобы даемон named запускался во время загрузки, поместите в /etc/rc.conf следующую строку:

named_enable="YES"

Разумеется, существует множество различных конфигураций /etc/namedb/named.conf, лежащих за рамками данного документа. Разнообразные опции запуска named во FreeBSD описаны в переменных named_* файла /etc/defaults/rc.conf и странице справочника rc.conf(5). Кроме того, полезной может оказаться Разд. 11.7.

Конфигурационные файлы

Файлы конфигурации даемона named расположены в каталоге /etc/namedb и, за исключением случая, когда вам требуется просто резолвер, требуют модификации.

Использование make-localhost

Для создания основной зоны для локального хоста перейдите в каталог /etc/namedb и выполните команду

# sh make-localhost

В каталоге master должны появиться файлы localhost.rev для локальной адресной зоны и localhost-v6.rev для для конфигурации IPv6. Ссылки на эти файлы уже содержатся в файле конфигурации named.conf.

Etc/namedb/named.conf

// $FreeBSD$

//

// If you are going to set up an authoritative server, make sure you

// understand the hairy details of how DNS works. Even with

// simple mistakes, you can break connectivity for affected parties,

// or cause huge amounts of useless Internet traffic.

 

options {

   directory  "/etc/namedb";

   pid-file   "/var/run/named/pid";

   dump-file  "/var/dump/named_dump.db";

   statistics-file "/var/stats/named.stats";

 

// If named is being used only as a local resolver, this is a safe default.

// For named to be accessible to the network, comment this option, specify

// the proper IP address, or delete this option.

   listen-on  { 127.0.0.1; };

 

// If you have IPv6 enabled on this system, uncomment this option for

// use as a local resolver. To give access to the network, specify

// an IPv6 address, or the keyword "any".

// listen-on-v6 { ::1; };

 

// 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 you enable a local name server, don't forget to enter 127.0.0.1

// first in your /etc/resolv.conf so this server will be queried.

// 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 "master/localhost.rev";

};

 

// RFC 3152

zone "1.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.ARPA" {

   type master;

   file "master/localhost-v6.rev";

};

 

// NB: Do not use the IP addresses below, they are faked, and only

// serve demonstration/documentation purposes!

//

// Example slave zone config entries. It can be convenient to become

// a slave at least for the zone 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 named after the first bytes of the IP address, in reverse

// order, with ".IN-ADDR.ARPA" appended.)

//

// Before starting to set up a primary zone, make sure you fully

// understand how DNS and BIND works. There are sometimes

// non-obvious pitfalls. Setting up a slave zone is simpler.

//

// NB: Don't blindly enable the examples below. :-) Use actual names

// and addresses instead.

 

/* An example master zone

zone "example.net" {

   type master;

   file "master/example.net";

};

*/

 

/* An example dynamic zone

key "exampleorgkey" {

   algorithm hmac-md5;

   secret "sf87HJqjkqh8ac87a02lla==";

};

zone "example.org" {

   type master;

   allow-update {

           key "exampleorgkey";

   };

   file "dynamic/example.org";

};

*/

 

/* Examples of forward and reverse slave zones

zone "example.com" {

   type slave;

   file "slave/example.com";

   masters {

           192.168.1.1;

   };

};

zone "1.168.192.in-addr.arpa" {

   type slave;

   file "slave/1.168.192.in-addr.arpa";

   masters {

           192.168.1.1;

   };

};

*/

Это примеры описаний прямой и обратной зон из файла named.conf для вторичных серверов.

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

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

zone "example.org" {

   type master;

   file "master/example.org";

};

Зона является первичной, что отражается в поле type, и информация о зоне хранится в файле /etc/namedb/master/example.org, что указывается в поле file.

zone "example.org" {

   type slave;

   file "slave/example.org";

};

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

Файлы зон

Пример файла зоны example.org для основного сервера (располагающийся в файле /etc/namedb/master/example.org) имеет такой вид:

$TTL 3600   ; 1 hour

example.org. IN SOA ns1.example.org. admin.example.org. (

                           2006051501 ; Serial

                           10800      ; Refresh

                           3600       ; Retry

                           604800     ; Expire

                           86400      ; Minimum TTL

                   )

 

; DNS Servers

           IN NS ns1.example.org.

           IN NS ns2.example.org.

 

; MX Records

           IN MX 10 mx.example.org.

           IN MX 20 mail.example.org.

 

           IN A  192.168.1.1

 

; Machine Names

localhost  IN A  127.0.0.1

ns1        IN A  192.168.1.2

ns2        IN A  192.168.1.3

mx         IN A  192.168.1.4

mail       IN A  192.168.1.5

 

; Aliases

www        IN CNAME @

Заметьте, что все имена хостов, оканчивающиеся на ''.'', задают полное имя, тогда как все имена без символа ''.'' на конце считаются заданными относительно 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. (

                   2006051501 ; 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.

   человек, отвечающий за эту зону, адрес электронной почты с символом ''@'' замененным на точку. (<admin@example.org> становится admin.example.org)

2006051501

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

           IN NS   ns1.example.org.

Это NS-запись. Такие записи должны иметься для всех серверов имён, которые будут отвечать за зону.

localhost  IN A  127.0.0.1

ns1        IN A  192.168.1.2

ns2        IN A  192.168.1.3

mx         IN A  192.168.1.4

mail       IN A  192.168.1.5

Записи типа A служат для обозначения имён машин. Как это видно выше, имя ns1.example.org будет преобразовано в 192.168.1.2.

           IN A  192.168.1.1

Эта строка присваивает IP адрес 192.168.1.1 текущему ориджину, в данном случае домену example.org.

www  IN CNAME @

Записи с каноническими именами обычно используются для присвоения машинам псевдонимов. В этом примере www является псевдонимом для ''главной'' машины, соответствующей ориджину, то есть example.org (192.168.1.1). Записи CNAME могут использоваться для присвоения псевдонимов именам хостов или для использования одного имени несколькими машинами по очереди.

       IN MX 10 mail.example.org.

MX-запись указывает, какие почтовые серверы отвечают за обработку входящей электронной почты для зоны. mail.example.org является именем почтового сервера, а 10 обозначает приоритет этого почтового сервера.

Можно иметь несколько почтовых серверов с приоритетами, например, 10, 20 и так далее. Почтовый сервер, пытающийся доставить почту для example.org, сначала попробует связаться с машиной, имеющий MX-запись с самым большим приоритетом (наименьшим числовым значением в поле MX), затем с приоритетом поменьше и так далее, до тех пор, пока почта не будет отправлена.

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

$TTL 3600

 

1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (

                   2006051501 ; Serial

                   10800      ; Refresh

                   3600       ; Retry

                   604800     ; Expire

                   3600 )     ; Minimum

 

   IN NS ns1.example.org.

   IN NS ns2.example.org.

 

1  IN PTR example.org.

2  IN PTR ns1.example.org.

3  IN PTR ns2.example.org.

4  IN PTR mx.example.org.

5  IN PTR mail.example.org.

В этом файле дается полное соответствие имён хостов IP-адресам в нашем описанном ранее вымышленном домене.

Кэширующий сервер имён

Кэширующий сервер имён - это сервер имён, не отвечающий ни за какую зону. Он просто выполняет запросы от своего имени и сохраняет результаты для последующего использования. Для настройки такого сервера достаточно исключить все описания зон из стандартной конфигурации сервера имён.

Безопасность

Хотя BIND является самой распространенной реализацией DNS, всегда стоит вопрос об обеспечении безопасности. Время от времени обнаруживаются возможные и реальные бреши в безопасности.

FreeBSD автоматически запускает named в ограниченном окружении (chroot(8)); помимо этого, есть еще несколько механизмов, помогающих защититься от возможных атак на сервис DNS.

Весьма полезно прочесть сообщения безопасности CERT (http://www.cert.org/) и подписаться на Список рассылки FreeBSD, посвящённый срочным сообщениям, связанным с безопасностью (http://lists.FreeBSD.org/mailman/listinfo/freebsd-security-notifications) для того, чтобы быть в курсе текущих проблем с обеспечением безопасности Internet и FreeBSD.

Подсказка: Если возникают проблемы, то наличие последних исходных текстов и свежеоткомпилированного named не помешает.

Дополнительная литература

Справочная информация по BIND/named: rndc(8), named(8) и named.conf(5)

• Официальная страница ISC BIND (http://www.isc.org/products/BIND/)

• Официальный форум ISC BIND (http://www.isc.org/sw/guild/bf/)

• FAQ по BIND (http://www.nominum.com/getOpenSourceResource.php?id=6)

• Книга издательства O'Reilly DNS and BIND 5th Edition (http://www.oreilly.com/catalog/dns5/)

• RFC1034 - Domain Names - Concepts and Facilities (ftp://ftp.isi.edu/in-notes/rfc1034.txt)

• RFC1035 - Domain Names - Implementation and Specification (ftp://ftp.isi.edu/in-notes/rfc1035.txt)

Apache HTTP сервер

Обзор

FreeBSD используется в качестве платформы для многих из самых нагруженных серверов в мире. Большинство серверов в интернет используют Apache HTTP сервер. Пакеты Apache должны быть включены в поставку FreeBSD. Если вы не установили их во вместе с системой, воспользуйтесь портами www/apache13 или www/apache20.

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

Замечание: В этом разделе рассказывается о версии 1.3.X Apache HTTP сервера, поскольку эта версия наиболее широко используется в FreeBSD. Apache 2.X содержит много новых технологий, но здесь они не обсуждаются. За дополнительной информацией о Apache 2.X, обращайтесь к http://httpd.apache.org/.

Настройка

В FreeBSD основной файл настройки Apache HTTP сервера устанавливается в /usr/local/etc/apache/httpd.conf. Это обычный текстовый UNIX файл настройки с строками комментариев, начинающимися с символа #. Исчерпывающее описание всех возможных параметров настройки находится за пределом рассмотрения этой книги, поэтому здесь будут описаны только наиболее часто модифицируемые директивы.

ServerRoot "/usr/local"

   Указывает верхний каталог установки Apache по умолчанию. Бинарные файлы находятся в bin и sbin, подкаталоги расположены относительно корневого каталога сервера, файлы настройки находятся в etc/apache.

ServerAdmin you@your.address

   Адрес, на который должны будут отправляться сообщения о проблемах с сервером. Этот адрес выводится на некоторые генерируемые сервером страницы, например с сообщениями об ошибках.

ServerName www.example.com

   ServerName позволяет вам устанавливать имя хоста, которое отправляется обратно клиентам, если оно отличается от того, с которым настроен хост (например, использование www вместо реального имени хоста).

DocumentRoot "/usr/local/www/data"

   DocumentRoot: Каталог, внутри которого будут храниться документы. По умолчанию, все запросы обрабатываются внутри этого каталога, но символические ссылки и синонимы могут использоваться для указания на другие каталоги.

Хорошей идеей будет сделать резервные копии настроек Apache перед внесением изменений. Как только вы будете удовлетворены первоначальной настройкой, можно запускать Apache.

Запуск Apache

Apache не запускается из inetd, как это делают многие другие сетевые серверы. Он настроен для автономного запуска, чтобы обеспечивать большую производительность при обработке HTTP запросов от браузеров клиентов. Для упрощения запуска, остановки и перезапуска сервера существует shell скрипт. Для запуска Apache в первый раз просто выполните:

# /usr/local/sbin/apachectl start

Вы можете остановить сервер в любой момент, выполнив:

# /usr/local/sbin/apachectl stop

После внесения любых изменений в файл настроек, вам потребуется перезапустить сервер:

# /usr/local/sbin/apachectl restart

Для перезапуска Apache без прерывания имеющихся соединений, выполните:

# /usr/local/sbin/apachectl graceful

Дополнительная информация находится на странице справочного руководства apachectl(8).

Для запуска Apache при старте системы, добавьте в /etc/rc.conf следующую строку:

apache_enable="YES"

Если вы хотите передать программе Apache httpd дополнительные параметры командной при загрузке системы, они могут быть помещены в дополнительную строку rc.conf:

apache_flags=""

Теперь, когда веб сервер запущен, вы можете просмотреть свой веб сайт, задав в строке браузера адрес http://localhost/. По умолчанию отображается веб страница /usr/local/www/data/index.html.

Виртуальный хостинг

Apache поддерживает два различных типа виртуального хостинга (Virtual Hosting). Первый метод основан на именах (Name-based Virtual Hosting). Он использует полученные от клиента заголовки HTTP/1.1 для определения имени хоста. Это позволяет многим различным доменам использовать один и тот же IP адрес.

Для настройки Apache на использование этого типа хостинга добавьте в httpd.conf запись подобную следующей:

NameVirtualHost *

Если веб сервер назывался www.domain.tld и вы хотите настроить виртуальный домен для www.someotherdomain.tld, необходимо добавить в httpd.conf следующие записи:

<VirtualHost *>

ServerName www.domain.tld

DocumentRoot /www/domain.tld

</VirtualHost>

 

<VirtualHost *>

ServerName www.someotherdomain.tld

DocumentRoot /www/someotherdomain.tld

</VirtualHost>

Замените адреса и пути к документам на те, что вы будете использовать.

За дополнительной информацией по настройке виртуальных хостов обращайтесь к официальной документации Apache: http://httpd.apache.org/docs/vhosts/.

Модули Apache

Существуют множество различных модулей Apache, которые добавляют функциональность к основному серверу. Коллекция портов FreeBSD предоставляет простой способ установки Apache с некоторыми наиболее популярными дополнительными модулями.

Mod_ssl

Модуль mod_ssl использует библиотеку OpenSSL для сильной криптографии через протоколы Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1). Этот модуль содержит все необходимое для запроса подписанного сертификата из центра сертификации для защищенного веб сервера на FreeBSD.

Если вы еще не установили Apache, версия Apache 1.3.X с mod_ssl может быть установлена через порт www/apache13-modssl. Поддержка SSL также доступна для Apache 2.X через порт www/apache20, где она включена по умолчанию.


Дата добавления: 2018-10-26; просмотров: 324; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!