25
Install djbdns(dnscache, tinydns) + TinyDNS Web Manager на debian lenny amd64 в локальной сети Автор: sergldom 02.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 Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

Embed Size (px)

Citation preview

Page 1: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 2: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 3: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 4: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 5: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 6: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 7: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 8: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 9: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 10: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 11: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 12: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 13: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 14: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 15: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 16: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 17: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 18: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 19: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 20: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 21: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 22: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 23: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 24: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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

Page 25: Install Djbdnsdnscache Tinydns Tinydns Web Manager Debian Lenny Amd64

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