install djbdnsdnscache tinydns tinydns web manager debian lenny amd64
TRANSCRIPT
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Copyright © 2009 С.Н. Лазаренко
Установка djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 влокальной сети
Плюсы настойки днс в локальной сети:
Для примера - 500 или более пользователей в локальной сети настроены по IP, а не поимени. На сервер на который они ходят по айпи 192.168.1.15 имеет имя mail.example.comв ДНС. Если так получилось, что сломался винт (либо меняеться IP на другой потехническим причинам) - и есть работающий резервный сервер на другом IP, то:
1.
Если работаем только с IP, то меняем всем старый айпи на новый оббегая все кабинетыи перенастраивая существующие 500 машин.
2.
Если работаем с именами через DNS — мы на самом DNS меняем IP старый на новый, авсе 500 машин как ходили по имени так и ходят, и даже не догадываются о смене IPлибо сервера.
1 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Устанавливаем сам djbdns + A pache2 + php5 + mysql-server
Нужно добавить в:
vi /etc/apt/sources.list
строку:
deb http://mirror.yandex.ru/debian lenny main contrib non-free
сохранить и обновляем репозиторий:
aptitude update
2 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Устанавливаем нужное ПО:
aptitude install djbdns apache2 php5 php5-cli mysql-server-5.0
И далее переходим к настройке:
Создаём папку хранения djbdns:
mkdir /var/lib/djbdns
далее добавляем пользователей под которыми будет работать tinydns и dnscache:
adduser --no-create-home --disabled-login -c "DJBDNS dnscache user" --shell /bin/falsednscache
adduser --no-create-home --disabled-login -c "DJBDNS dnslog user" --shell /bin/false dnslog
3 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
adduser --no-create-home --disabled-login -c "DJBDNS tinydns user" --shell /bin/false tinydns
Чтобы обеспечить кэширующий DNS resolver для нашей локальной сети, мы запускаем dnscache на IP-адресе 192.168.1.27 eth0:
dnscache-conf dnscache dnslog /var/lib/djbdns/dnscache 192.168.1.27
Создаем файл по которому dnscache разрешит доступ всей сети 192.168.1.0/24:
touch /var/lib/djbdns/dnscache/root/ip/192.168.1
создаем ссылку рабочего каталога dnscache в /etc/service:
ln -s /var/lib/djbdns/dnscache /etc/service
Команды администрирования сервиса:
4 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Остановить сервис:
svc -d /etc/service/dnscache
Запустить сервис:
svc -u /etc/service/dnscache
Перегрузить сервис:
svc -t /etc/service/dnscache
Проверяем запущен ли сервис:
5 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
svstat /etc/service/dnscache
По ответу видим, что запущен и работает 7 секунд:
/etc/service/dnscache: up (pid 8453) 7 seconds
Настраиваем машину использовать наш dnscache:
Делаем бекап /etc/resolv.conf:
cp /etc/resolv.conf /etc/resolv.conf-original
Перезаписываем /etc/resolv.conf своим сервером:
6 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
echo "nameserver 192.168.1.27" > /etc/resolv.conf
Настойка "split horizon" в tinydns
Tinydns мы настроим на использование IP-адреса loopback-интерфейса 127.0.0.1:
tinydns-conf tinydns dnslog /var/lib/djbdns/tinydns 127.0.0.1
Создаем ссылку рабочего каталога tinydns в /etc/service:
ln -s /var/lib/djbdns/tinydns /etc/service
Проверяем запущен ли сервис:
svstat /etc/service/tinydns
7 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Теперь, мы должны настроить наш dnscache так, чтобы он посылал запросы клокальному
tinydns когда он хочет сделать запрос к внутренней версии зоны example.com (Незабудьте изменить example.com на имя Вашего домена). Это довольно легко:
echo 127.0.0.1 > /var/lib/djbdns/dnscache/root/servers/example.com
echo 127.0.0.1 > /var/lib/djbdns/dnscache/root/servers/192.168.1.in-addr.arpa
svc -d /etc/service/dnscache
svc -u /etc/service/dnscache
Вторая команда позволяет перенаправить обратные запросы (reverse lookups) вашемувнутреннему tinydns.
Установка TinyDNS Web Manager:
8 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Скачиваем TinyDNS Web Manager:
wget http://www.threadaweb.com/opensource/TinyDNSManager-0.70.tar
Распаковываем архив:
tar -xvf TinyDNSManager-0.70.tar
Переносим папку с переименовыванием в директорию web сервера:
mv TinyDNSManager /var/www/dns
Преходим в директорию web сервера и меняем имя файла с dns.php на index.php
cd /var/www/dns && mv dns.php index.php
9 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Настраиваем mysql:
Создаем бд, попросит ввести пароль root mysql-server:
mysqladmin -u root -p create tinydns
Создаём пользователя с паролем, даём ему права на бд что создали ранее попроситввести пароль root mysql-server:
mysql -p
GRANT SELECT, INSERT, UPDATE, DELETE ON tinydns.* TO 'tinydns'@'localhost'IDENTIFIED BY 'pass_tinydns';
Применим привилекии:
FLUSH PRIVILEGES;
10 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Перейдем в созданную бд:
USE tinydns;
Импортируем таблицы в бд:
mysql -uroot -p tinydns < /var/www/dns/structure.sql
Настраиваем сам TinyDNS Web Manager:
vi /var/www/dns/index.php
БЫЛО:
...
11 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
$local_file = "/web/sites/domain/temp/data";
$ns1 = "ns1.yourdomain.com";
$ns2 = "ns2.yourdomain.com";
$nsadmin = "support.yourdomain.com"; // This is the contact email address must have a periodinstead of a @ symbol
$site_name = "Your Company";
$admin_user = "admin";
$admin_pass = "pass";
$db_name = "dns_config";
$db_user = "dnsuser";
$db_pass = "dnspass";
$db_host = "localhost";
12 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
$page_name = "dns.php";
...
СТАЛО:
...
$local_file = "/var/www/dns/temp/data";
$ns1 = "ns1.example.com";
$ns2 = "ns2.example.com";
$nsadmin = "forum.example.com"; // This is the contact email address must have a periodinstead of a @ symbol
$site_name = "PFU";
$admin_user = "admin";
$admin_pass = "pass";
$db_name = "tinydns";
13 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
$db_user = "tinydns";
$db_pass = "pass_tinydns";
$db_host = "localhost";
$page_name = "index.php";
…
Логин admin и пароль pass меняем на свои
Создадим папку /var/www/dns/temp:mkdir -p /var/www/dns/temp/
Меняем права папки на права web сервера:
14 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
chown -R www-data:www-data /var/www/dns/
В баузере открываем http://192.168.1.27/dns
login admin
Pass pass
Нажимаем Add Domain вводим Domain Name: example.com, Domain IP: 192.168.1.119Нажимаем Add Domain
Получаем:
Records for example.com
Add New: A NS MX TXT Delete example.com
SOA Records:
SOA example.com ns1.example.com Edit
15 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
NS Records:
NS example.com ns1.example.com Edit Delete
NS example.com ns2.example.com Edit Delete
MX Records:
MX example.com mail.example.com Edit Delete
TXT Records:
TXT example.com v=spf1 ip4:72.3.157.0/24 -all Edit Delete
A Records: Order by Name IP
A+PTR mail.example.com 192.168.1.119 Edit Delete
A+PTR www.example.com 192.168.1.119 Edit Delete
A example.com 192.168.1.119 Edit Delete
16 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
A ftp.example.com 192.168.1.119 Edit Delete
C-Name Records:
меняем: A ftp.example.com 192.168.1.119 Edit Delete на: A ftp.example.com 192.168.1.110Edit Delete
меняем: A+PTR mail.example.com 192.168.1.119 Edit Delete на: A+PTR mail.example.com192.168.1.15 Edit Delete
Настраиваем скрипт — который будет загружаться при загрузке сервера и каждуюминуту проверять изменения в БД — и при изменениях будет автоматически менятьнастройки tinydns:
vi dns_update.php
БЫЛО:
#!/usr/local/bin/php -f
….
17 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
СТАЛО:
#!/usr/bin/php -f
…...
БЫЛО:
…...
// Database connection info
$db_host = "localhost";
$db_name = "dns_config";
$db_user = "dbuser";
$db_pass = "dbpass";
18 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
// Check for updates every x number of seconds
$delay = "60";
// Set this to "yes" if you are running 2 ns servers on the same machine, otherwise set it to "no"
$second_ns = "yes";
// The directory and data file for the first ns server
$NS1_data_file = "/etc/tinydns1/root/data";
$NS1_root_directory = "/etc/tinydns1/root";
// The directory and data file for the second ns server (ONLY FILL OUT IF $second_ns = "yes"!)
$NS2_data_file = "/etc/tinydns2/root/data";
$NS2_root_directory = "/etc/tinydns2/root";
…...
19 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
СТАЛО:
…...
// Database connection info
$db_host = "localhost";
$db_name = "tinydns";
$db_user = "tinydns";
$db_pass = "pass_tinydns";
// Check for updates every x number of seconds
$delay = "60";
// Set this to "yes" if you are running 2 ns servers on the same machine, otherwise set it to "no"
$second_ns = "no";
20 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
// The directory and data file for the first ns server
$NS1_data_file = "/var/lib/djbdns/tinydns/root/data";
$NS1_root_directory = "/var/lib/djbdns/tinydns/root";
// The directory and data file for the second ns server (ONLY FILL OUT IF $second_ns = "yes"!)
$NS2_data_file = "/etc/tinydns2/root/data";
$NS2_root_directory = "/etc/tinydns2/root";
…...
создаём папку где будет храниться скриптmkdir /etc/tinydns
21 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
Переносим сам скрипт и меняем права на root и даём права на исполнение:
mv dns_update.php /etc/tinydns/
chown root:root /etc/tinydns/dns_update.php
chmod +x /etc/tinydns/dns_update.php
добавляем скрипт в автозагрузку:
vi /etc/rc.local
.....
/etc/tinydns/dns_update.php > /dev/null &
exit 0
Настаиваем дополнительную защиту скрипта средствами Apache2:
vi /etc/apache2/apache2.conf
22 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
добавляем это:
<Directory "/var/www/dns/">
AllowOverride All
</Directory>
Перегружаем web сервер:/etc/init.d/apache2 restart
Создаём файл .htaccess:vi /var/www/dns/.htaccess
Вставляем в него:
23 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
AuthName "Password please!!!"
AuthType Basic
AuthUserFile /var/www/dns/.htpasswd
require valid-user
Создаем файл с добавлением в него пользователя admin, попросит ввести пароль 2раза:htpasswd -c /var/www/dns/.htpasswd admin
удаляем файл структуры таблиц:rm /var/www/dns/structure.sql
ВОТ и ВСЕ. Пользуйтесь на здоровье.
Используемые источники:
24 / 25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети
Автор: sergldom02.10.2009 14:57 - Обновлено 05.10.2009 07:45
http://lithium.opennet.ru/
http://www.threadaweb.com/tinydns.php
25 / 25