Чтобы построить сервер, мы используем последнюю стабильную версию Debian и конфигурируем ее с минимальным количеством пакетов.
Если у вас еще нет установочного диска, описанного в главе 2, скачайте его с сайта http://www.us.debian.org/CD/netinst. Выполните сетевую установку и убедитесь в наличии пригодного доменного имени. Затем конфигурируйте Debian, как описано в этой книге.
Если вы приобрели действующую версию Debian GNU/Linux, то можете обнаружить различия между ней и той версией, которую мы использовали для написания этих инструкций. Разработчики Linux часто обновляют версии своих продуктов, и в результате обновления изза заплаток и новых версий ядра Linux изменяются процедуры установки. Если вы столкнетесь с различиями между шагами, описываемыми нами, и этапами, которые вам приходится выполнять, просмотрите лишь основные пункты из того, что мы объясняли. Таким образом, у вас будет меньше проблем при работе с более новой версией.
После начальных стадий установки Debian вы увидите окно с предложением выбрать тип установки. Это будет выглядеть примерно так:
( ) Desktop Environment
( ) Web Server
( ) Print Server
( ) DNS Server
( ) File Server
( ) Mail Server
( ) SQL database
( ) manual package selection
He выбирайте ни один из пунктов, а просто нажмите клавишу Tab. Нажмите подсвеченную кнопку ОК, и программа установки Debian начнет загрузку и установку пакетов.
Во время установки вы увидите еще одно окно с запросом. Программа установки попросит вас указать, хотите ли вы конфигурировать Exim (Eximconfig). Выберите No configuration (Не конфигурировать). После этого появится сообщение Really leave the mail system unconfigured? (Действительно оставить систему неконфигурированной?). Ответьте yes.
Когда вы закончите минимальную установку Debian, необходимо будет удалить некоторые ненужные программы, которые могут использоваться в LAN, но не в почтовом интернетсервере. Вы можете удалить их, используя команду aptget:
pppoeconf ppp pppconfig
Если вы решили использовать SUSE или Fedora вместо Debian, то можете удалить эти пакеты удобным для вас способом.
Теперь вырежем некоторые служебные сценарии и перезапустим inetd:
Чтобы установить BIND на свой сервер Debian, выполните команду:
# aptget install bind9Debian загрузит файл и сконфигурирует его как вебслужбу. В своей консоли вы увидите следующие сообщения:
Setting up bind9 (9.2.41) Adding group "bind1 (104) Done.
Adding system user 'bind'
Adding new user "bind' (104) with group "bind1.
Not creating home directory.
Starting domain name service: named.
Использование среды chroot в целях безопасности. Многие администраторы, отвечающие за безопасность, рекомендуют использование BIND в качестве неrootпользователя в изолированной директории среды chroot. Это защищает от существенного риска, что прореха в безопасности будет найдена в вашей версии BIND потенциально возможными хакерами, которые могут атаковать систему с помощью namedдемона для получения доступа к ней. Даже если named используется, среда chroot ограничивает любой ущерб, который может быть причинен службам имен.
Для того чтобы поместить BIND в среду chroot, вы должны создать каталог, где сервер сможет работать независимо от других процессов. Помимо этого, вы будете управлять им как непривилегированный пользователь, но лишь rootпользователь будет иметь возможность доступа к этому каталогу. Данный каталог будет содержать все файлы, которые необходимы BIND, и вам будет казаться, что вся файловая система BIND по вашему указанию выполняет команду chroot.
Сначала остановите службу, выполнив следующую команду:
Далее отредактируйте файл /etc/default/bi nd9 так, чтобы демон работал как непривилегированный пользователь bind, переведенный chroot в папку /var/lib/ named. Измените строку
0PTS="u bind"
так:
0PTI0NS="u bind t /var/lib/named"
Чтобы обеспечить цельную среду для работы BIND, создайте необходимые каталоги в папке /var/1 ib:
Потом переместите директорию config из папки /etc в /var/1 ib/named/etc:
# mv /etc/bind /var/1ib/named/etcТеперь создайте символьную ссылку к новой директории config со старого места, чтобы избежать проблем, если BIND будет изменен:
# In s /var/1ib/named/etc/bind /etc/bindУстановите для использования BIND нулевые и случайные устройства и зафиксируйте доступ к каталогу:
# mknod /var/1ib/named/dev/null с 1 3 # mknod /var/1ib/named/dev/random с 1 8Затем измените права доступа и собственности для файлов:
# chmod 666 /var/1ib/named/dev/null /var/1ib/named/dev/random # chown R bind:bind /var/1ib/named/var/* # chown R bind:bind /var/1ib/named/etc/bindВы также должны будете изменить стартовый сценарий /etc/init.d/sysklogd, чтобы он попрежнему мог «видеть» сообщения системных журналов. Измените строку
SYSL0GD=""
так:
SYSL0GD="a /var/1ib/named/dev/1og"
Теперь перезапустите процесс входа командой
Вы увидите следующее сообщение: Restarting system log daemon: syslogd. Наконец, запустите BIND:
# /etc/init.d/bind9 startПроверьте файл /var/log/syslog на наличие ошибок. Вы можете просмотреть файл, используя такую команду:
# less /var/log/syslogЕсли вы увидите следующее сообщение, то BIND стартовал успешно:
Starting domain name service: named.
К сожалению, named может стартовать с неудавшейся загрузкой начальных файлов данных, что оставит его нерабочим. Итак, проверьте, функционирует ли named, введя такую команду:
number of zones: 6 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF server is up and running serverl:/home/admi n#
Если DNS работает неправильно, то вместо приведенного выше кода вы увидите чтото подобное:
rndc: neither /etc/bind/rndc.conf nor /etc/bind/rndc.key was found
Если появилась такая ошибка, прочтите подраздел «Невозможность связи при использовании rndc» раздела «Устранение ошибок BIND» далее в этой главе.