Я так думаю, что Вы, мои предыдущие статьи про домашний сервер прочитали.
Поэтому, я не буду расписывать, как его устанавливать.
Просто, дам ссылки на эти первые статьи о домашнем сервере:
http://www.ubuntu.liski.su/index.php?page=77
http://www.ubuntu.liski.su/index.php?page=81
В данной конфигурации, использовались материалы следующей статьи:
За что ее авторам огромная благодарность!
Если, не активирован ROOT:
sudo su sudo passwd root
Сделаем ссылочку на bash на sh:
ln -sf /bin/bash /bin/sh
Уберем apparmor (чего то, с ним пока не все ладится!)
/etc/init.d/apparmor stop update-rc.d -f apparmor remove
Устанавливаем основные пакеты:
apt-get install ssh openssh-server
sudo apt-get install bind9
Что бы была возможность протестировать наш DNS сервер установим пакет:
sudo apt-get install dnsutils
Редактируем файл /etc/network/interfaces, в моем примере, я буду использовать IP адрес 192.168.0.100:
gedit /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Перезапустим сеть:
/etc/init.d/networking restart
Теперь отредактируем файл /etc/hosts. Правим и проверяем (для примера используется домен- example.com имя сервера mailserver, т.е. полное имя носта, будет mailserver.example.com):
gedit /etc/hosts
127.0.0.1 example.com localhost.localdomain localhost 192.168.0.100 example.com mailserver # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Выполним команду:
echo example.com > /etc/hostname /etc/init.d/hostname.sh start
Проверим, запустив:
hostname hostname -f
Ответ должен быть: example.com
Если ваш сервер доменных имен будет работать в сети Интернет, то рекомендуется произвести следующие подготовительные шаги, чтобы сделать его работу безопасной.
Остановим сервер:
/etc/init.d/bind9 stop
Теперь отредактируем файл /etc/default/bind9 , чтобы корневой директорией (chrooted) для сервера была папка: /var/lib/named. Заменим строку: OPTIONS=«-u bind» строкой со следующим содержанием: OPTIONS=«-u bind -t /var/lib/named»:
gedit (vi,nano) /etc/default/bind9
После редактирования и сохранения, файл должен выглядеть так:
OPTIONS="-u bind -t /var/lib/named" # Set RESOLVCONF=no to not run resolvconf RESOLVCONF=yes
В папке /var/lib создаем следующие директории:
mkdir -p /var/lib/named/etc mkdir /var/lib/named/dev mkdir -p /var/lib/named/var/cache/bind mkdir -p /var/lib/named/var/run/bind/run
Переносим папку с конфигурационными файлами сервера из папки /etc в папку: /var/lib/named/etc:
mv /etc/bind /var/lib/named/etc
Создаем ссылку на эту папку в разделе /etc, чтобы в будущем не было проблем с обновлениями:
ln -s /var/lib/named/etc/bind /etc/bind
Создаем null b random устройства, и присваиваем нужные права:
mknod /var/lib/named/dev/null c 1 3 mknod /var/lib/named/dev/random c 1 8 chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random chown -R bind:bind /var/lib/named/var/* chown -R bind:bind /var/lib/named/etc/bind
Для правильной работы системных сообщений о работе сервера подправим строчку в файле: /etc/default/syslogd
gedit (vi,nano) /etc/default/syslogd
заменим строчку SYSLOGD=«» на: SYSLOGD=«-a /var/lib/named/dev/log»:
Содержание файла syslogd должно выглятеть так:
# # Top configuration file for syslogd # # # Full documentation of possible arguments are found in the manpage # syslogd(8). # # # For remote UDP logging use SYSLOGD="-r" # SYSLOGD="-a /var/lib/named/dev/log"
Перестартуем logging демона:
/etc/init.d/sysklogd restart
Запустим сервер BIND, и проверим файл /var/log/syslog на возможные ошибкиs:
/etc/init.d/bind9 start
gedit /var/log/syslog
Если все нормально приступаем к конфигурированию самого сервера DNS/
Немного пояснений:
Файлы конфигурации DNS сервера хранятся в каталоге: /etc/bind.
Основной конфигурационный файл /etc/bind/named.conf.
Строки этого файла сообщают DNS серверу, где искать файлы настроек.
Опции для правильной работы сервера находятся в файле: /etc/bind/named.conf.options.
При загрузке сервер обязательно, просматривает эти опции.
В файле /etc/bind/db.root находится описание имен корневых серверов DNS в сети Интернет.
Имена серверов могут менятся с течением времени, поэтому файл может менятся при обновлении пакета bind9.
На данный момент времени сохраняем его, как есть.
Для своей локальной сети вы можете настроить один и тот же сервер в качестве сервера кэширования имен (caching name server), первичного сервера имен (primary master) , и вторичного сервера имен
(secondary master). Или отдельно, как первичный или вторичный, в любом случае он может быть использован вами, как сервер кэширования имен для ваших хостов в локальной сети.
Настраиваем сервер кэширование имен.
По умолчанию, в файле конфигурации строки настроек сервера DNS, как кэширующего- закомментированы.
Все, что требуется, это просто добавить IP-адреса DNS-серверов вашего провайдера.
Просто раскомментируйте и отредактируйте следующие строки в файле: /etc/bind/named.conf.options:
gedit /etc/bind/named.conf.options
В качестве примера я приведу содержание моего файла, где записаны ближайшие DNS сервера моего провайдера:
forwarders { 80.82.32.9; 80.82.33.65; };
замените IP адреса серверов DNS на свои и перезапустите свой сервер:
sudo /etc/init.d/bind9 restart
Здесь, я буду использовать в качестве примера доменное имя example.com.
Вы можете заменить его на своё. Например, для домашней сети: home.net.
= Создаем Forward Zone File. =
Редактируем файл /etc/bind/named.conf.local
gedit /etc/bind/named.conf.local
добавляем туда строки:
zone "example.com" { type master; file "/etc/bind/db.example.com"; };
Создадим файл: /etc/bind/db.example.com, используя в качестве шаблона, уже имеющийся файл: /etc/bind/db.local:
sudo cp /etc/bind/db.local /etc/bind/db.example.com
Теперь подредактируем новый файл нашей зоны:
Заменим слово localhost на свое доменное имя, в нашем случае: example.com. Незабываем в конце поставить знак «.» (точка)
Затем электронный адрес root@localhost на свой реальный, я напишу root@example.com и опять точку в конце «.».
Затем IP адрес 127.0.0.1 на свой, в моем случае 192.168.0.100.
вместо обычных имен символ «@», опять же оставляя «.» в конце
А так же создаем A запись для ns.example.com.
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns.example.com. root.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.example.com. @ IN A 127.0.0.1 @ IN AAAA ::1 ns IN A 192.168.0.100