Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  frox
  SARG
  samba & ClamAV
  named
  proftpd
  cacti
  SAMBA+AD+NT ACL
  MySQL
  hylafax
  DDNS+DHCP
  cvsupd
  Samba как PDC
  Основы LDAP
  LDAP+SSL
  LDAP auth
  knockd
  rsync
  MRTG
  Rejik
  Jabber - OpenFire
  Samba(PDC) + Ldap
  squid+AD
  ATSlog
  vsftpd
  LDAP: samba, dns, dhcp
  Free-SA
  cups-samba на samba+AD
  irc + services
  Nagios - мониторинг сети
  TeamSpeak
  icecast2
  verlihub (p2p)
  Icecast2 + Darkice
  OOPS
  vsftpd + mysql
  Amanda
  HAVP
  Рыбалка на FreeBSD
  DNS сервер NSD
  DNS сервер Unbound
  mpd5, msmtp, dynamic ip
  ProFTPd + LDAP
  OpenVPN + LDAP
  Samba (PDC+BDC)
  BIND & AD
  POWERDNS
  3proxy
  eGroupWare
  GLPI
  SugarForge CRM
  Bacula
  Mysql - базовое описание
  Asterisk IP PBX
  Samba & CUPS & AD & ACL
  SMSTools 3
  Samba+ NT ACL
  phpmyadmin
  1С:Предприятие 8.1
  PurefFTPd
  qemu network
  AimSniff
  comms/scmxx
  Zoneminder
  Openfire Jabber Server
  Zoneminder 2
  Принт-Сервер Samba+LPD & AD
  Кластер OpenLDAP 2.4
  Lightsquid
  Установка Zabbix-1.6
  Установка net2ftp
  VSFTPD + AD && MySQL
  Network UPS Tools
  mpd5 L2TP client
  Apache 2.2 as a proxy
  ejabberd+mysql+icq
  HotSpot
  Установка и использование Zenoss на FreeBSD 7.2
  mysql-proxy
  DNS zones
  squid+sams+sqstat
  transmission-daemon
  Squid+AD (group access)
  SysAid Server
  MySQL Master+Master
  proftpd file auth&quota
  usb_modeswitch
  NSDadmin
  iperf Тест скорости между хостами
  Простой факс-сервер mgetty+sendfax
  SQUID-MultiCpuSystem
  vsftpd + system users
  Syslog server
  Температура в серверной
  Nagios+Digitemp
  Avast! FreeBSD
  Настройка git+gitosis
  Firefox SyncServer
  Scan+Print server FreeBSD 9
  proftpd,pgsql,web
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> программы —> NSDadmin

NSDadmin

Автор: terminus.


Описание работы с NSDadmin

Download:
nsdadmin-0.0.2
файл скачан размер размещён примечание
nsdadmin-0.0.2.tar.gz
752 84.8kb 2010-05-04 nsdadmin-0.0.2.tar.gz



По-русски:

NSDadmin - это веб интерфейс для администрирования DNS сервера NSD. Работать
он должен на той же машине где запущен сам NSD. NSDadmin позволяет сохранять
DNS зоны, TSIG ключи и другую информацию в базе данных MySQL, и переодически
производить одностороннюю синхронизацию этой информации с конфигурационными
файлами сервера NSD. NSDadmin держит свои рабочие файлы в отдельной
директории файловой системы (nsdadmin). Специальный скрипт nsdadmin_poller
переодически производит объединение изменений сделанных с помошью NSDadmin,
с основной конфигурацией сервера NSD.

Небольшая инструкция о том, как создать ваш первый домен сразу же после
успешной установки NSDadmin:

- Войдите в систему как пользователь root (пароль по-умолчанию: root).
- Создайте нового Клиента с именем FIRSTCLIENT.
- Создайте новый мастер Домен example.com для FIRSTCLIENT.
- Создайте нового пользователя в домене example.com с правами администратора.
- Создайте первую запись типа SOA в домене example.com.
- Создайте так же любые другие записи в этом домене.
- Нажмите кнопку "Applay". Если не будет никаких ошибок в данных, то появится
 баннер с текстом "Zones file created sucessfuly!".
- Нажмите на кнопку "Show Current" и вы увидите содержимое текстового файла
 только что сгенерированного и сохраненного на диске из записей базы данных.
- Подождите 5 минут (или вручную запустите скрипт nsdadmin_poller).

После выполнения этих шагов, новые данные будут внесены в базу сервера NSD!
Проверить это можно будет с помошью выполнения команд nslookup или dig.


======================================================================

Для использования NSDadmin необходимо:

- Apache (или другой сервер с поддержкой PHP) запущенный на машине с NSD.
- PHP 5.2.x (или позний) + extensions (или по крайней мере плагин MySQL).
- MySQL сервер с поддержкой MyISAM (5.0.x). PostgreSQL не тестировался.
- sudo установленный на машине с NSD.
- уже настроенный и работающий сервер NSD ;)
- вся система работающая под FreeBSD или Linux ;)


Шаги для конфигурации:

1) Создайте новый виртуалхост в Apache (например такой):
<VirtualHost *:80>
   ServerAdmin root@nsd.host
   DocumentRoot "/usr/local/www/nsdadmin"
   ServerName nsdadmin.nsd.host
   ErrorLog "/var/log/apache/nsdadmin-error_log"
   CustomLog "/var/log/apache/nsdadmin-access_log" common

   <Directory "/usr/local/www/nsdadmin">
   Options Indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
   </Directory>

</VirtualHost>


2) Отредактируйте конфигурационный файл ./modules/globalconfig.inc.php
Впишите там правильные имя пользователя и пароль для доступа к базе данных,
а так же пути к системным утилитам и другую информацию.
Я использую FreeBSD, если у вас Linux, то надо будет поменять пути к тем
самым утилитам.

Не забудьте изменить $GLOBALCONFIG['configured'] на TRUE когда внесете
все необходимые изменения.


3) Установите новую MySQL базу данных для nsdadmin используя скрипт
./install/install_database_and_user.sql Не забудьте предварительно
отредактировать его - там надо будет вписать/поменять имя пользователя
и пароль для доступа к базе.

mysql -u root -p < ./install_database_and_user.sql


4) Установите и настройте sudo чтобы дать возможность пользователю www
(из-под которого работает Apache) иметь доступ к системным командам.
Используя visudo внесите в конфигурацию sudo следующие строки:

www ALL=NOPASSWD: /usr/local/etc/rc.d/nsd
www ALL=NOPASSWD: /usr/local/sbin/nsdc
www ALL=NOPASSWD: /usr/sbin/chroot
www ALL=NOPASSWD: /usr/sbin/chown
www ALL=NOPASSWD: /usr/sbin/kill


5) Создайте где-нибудь отдельную директорию под именем nsdadmin.
Эту директорию система будет использовать для дампа текстовых файлов с
информацией из базы. Логичным будет создать требуемую директорию внутри
директории настроенной в конфиге NSD как zonesdir. Например, если zonesdir
указана как /usr/local/etc/nsd/zones то создаем nsdadmin в ней:

mkdir /usr/local/etc/nsd/zones/nsdadmin
mkdir /usr/local/etc/nsd/zones/nsdadmin/master
mkdir /usr/local/etc/nsd/zones/nsdadmin/slave
chmod -R 755 /usr/local/etc/nsd/zones/nsdadmin
touch /usr/local/etc/nsd/zones/nsdadmin/includes.conf
chown -R www:bind /usr/local/etc/nsd/zones/nsdadmin


6) Отредактируйте nsd.conf.
Ниже приводится пример файла nsd.conf. Вам надо будет добавить в ваш файл
только одну новую директиву указывающую подключать внешний вайл с конфигурацией
(include: "/usr/local/etc/nsd/zones/nsdadmin/includes.conf")

server:
       chroot: "/usr/local/etc/nsd"
       ip-address: 0.0.0.0
       port: 53
       ip4-only: yes
       identity: "DNS"
       hide-version: yes
       database: "/usr/local/etc/nsd/data/nsd.database"
       logfile: "/var/log/nsd.log"
       server-count: 2
       pidfile: "/usr/local/etc/nsd/run/nsd.pid"
       zonesdir: "/usr/local/etc/nsd/zones"
       difffile: "/usr/local/etc/nsd/data/ixfr.db"
       xfrdfile: "/usr/local/etc/nsd/data/xfrd.state"

       include: "/usr/local/etc/nsd/zones/nsdadmin/includes.conf"


7) Настройте cron на переодическое выполнение nsdadmin_poller. Сохраните
этот скрипт где-нибудь (например в /root/bin). Предварительно отредактируйте
nsdadmin_poller и укажите там корректный путь к nsdc (если это необходимо).
Отредактируйте crontab рута:

*/5 * * * * root /root/bin/nsdadmin_poller


8) Теперь вы можете удалить директорию install и начинать использовать систему.



Тестировалось в FreeBSD 7.3-STABLE и FreeBSD 9.0-CURRENT используя:
nsd-3.2.4_1
apache-2.2.11_7
php5-5.2.10
php5-extensions-1.3
sudo-1.7.2.2
mysql-server-5.0.83


======================================================================
======================================================================

English:

NSDadmin is a web based administration interface that should be run on
the same server there NSD is running. NSDadmin allows you to store DNS
zones, TSIG keys and other info in MySQL database and periodicaly
merge it from there into NSD config files. NSDadmin stores it's files
and subdirectories in separate directory in filesystem (nsdadmin).
Separate shell script named nsdadmin_poller is responsable for merging
changes made by NSDadmin into main NSD database.

Quick instructions about HowTo create you first domain after sucessful
NSDadmin setup:

- Login as root user (default password: root)
- Create new Client FIRSTCLIENT
- Create new Domain (type master) example.com for FIRSTCLIENT
- Create new User with admin rights in example.com
- Create SOA record for example.com
- Create other DNS records as you like
- Click "Applay" button. If there is no errors in you domain then you
 will se banner "Zones file created sucessfuly!"
- Click "Show Current" button and you will see content of zonefile
 stored on disk, that have been just created from database records.
- Wait about 5 minutes (or run nsdadmin_poller by hands).

Now data from zones txt files should be megred into NSD!
Check it using nslookup or dig.


======================================================================

To start using NSDadmin you need:

- Apache (or other web server with PHP support) running on NSD host.
- PHP 5.2.x (or later) + extensions (or at least MySQL plug-in).
- MySQL server with MyISAM (5.0.x or later). PostgreSQL is untested.
- sudo installed on NSD server.
- already configured and running NSD ;)
- FreeBSD or Linux box ;)


Configuration steps:

1) Create new virtualhost in Apache as you like (for example):
<VirtualHost *:80>
   ServerAdmin root@nsd.host
   DocumentRoot "/usr/local/www/nsdadmin"
   ServerName nsdadmin.nsd.host
   ErrorLog "/var/log/apache/nsdadmin-error_log"
   CustomLog "/var/log/apache/nsdadmin-access_log" common

   <Directory "/usr/local/www/nsdadmin">
   Options Indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
   </Directory>

</VirtualHost>


2) Edit ./nsdadmin/modules/globalconfig.inc.php and type there correct
MySQL database password, system paths and other related info.
I'm using FreeBSD 7.3 and 9.0 on my testing NSD servers. If you are
using Linux you will need to change paths for system tools.

Do not forget to change $GLOBALCONFIG['configured'] to TRUE then
you are done.


3) Applay MySQL database from ./install/install_database_and_user.sql
Do not forget to edit it first and type correct username and password
for nsdadmin database user.

mysql -u root -p < ./install_database_and_user.sql


4) Setup sudo to allow you www user (Apache user) run system commands.
Use visudo to put in sudo configuration following this strings:

www ALL=NOPASSWD: /usr/local/etc/rc.d/nsd
www ALL=NOPASSWD: /usr/local/sbin/nsdc
www ALL=NOPASSWD: /usr/sbin/chroot
www ALL=NOPASSWD: /usr/sbin/chown
www ALL=NOPASSWD: /usr/sbin/kill


5) Create some there in the filesystem nsdadmin directory.
I like it to be placed as subdirectory under NSD zones directory.
If we have NSD configured to use /usr/local/etc/nsd/zones as zonesdir
then it would be good idea to place nsdadmin as subdir there:

mkdir /usr/local/etc/nsd/zones/nsdadmin
mkdir /usr/local/etc/nsd/zones/nsdadmin/master
mkdir /usr/local/etc/nsd/zones/nsdadmin/slave
chmod -R 755 /usr/local/etc/nsd/zones/nsdadmin
touch /usr/local/etc/nsd/zones/nsdadmin/includes.conf
chown -R www:bind /usr/local/etc/nsd/zones/nsdadmin


6) Edit nsd.conf.
There is a example of nsd.conf. You should put in you nsd.conf a new
directive (include: "/usr/local/etc/nsd/zones/nsdadmin/includes.conf")

server:
       chroot: "/usr/local/etc/nsd"
       ip-address: 0.0.0.0
       port: 53
       ip4-only: yes
       identity: "DNS"
       hide-version: yes
       database: "/usr/local/etc/nsd/data/nsd.database"
       logfile: "/var/log/nsd.log"
       server-count: 2
       pidfile: "/usr/local/etc/nsd/run/nsd.pid"
       zonesdir: "/usr/local/etc/nsd/zones"
       difffile: "/usr/local/etc/nsd/data/ixfr.db"
       xfrdfile: "/usr/local/etc/nsd/data/xfrd.state"

       include: "/usr/local/etc/nsd/zones/nsdadmin/includes.conf"


7) Setup cron to run nsdadmin_poller. Put this script somethere in
filesystem (I assube /root/bin is good place). Edit nsdadmin_poller
and type correct path to nsdc. Edit crontab:

*/5 * * * * root /root/bin/nsdadmin_poller


8) Now you can delete install folder and start using nsdadmin web.



Tested in FreeBSD 7.3-STABLE and FreeBSD 9.0-CURRENT using:
nsd-3.2.4_1
apache-2.2.11_7
php5-5.2.10
php5-extensions-1.3
sudo-1.7.2.2
mysql-server-5.0.83

======================================================================
======================================================================

Описание шагов для работы с интерфейсом будет добавлено позже. Пока программа
активно разрабатывается нет смысла описывать - все может еще поменяться.
Да и к тому же там все совсем не сложно...

Скриншоты:




































BD structure:



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=17&t=26139.

размещено: 2010-05-04,
последнее обновление: 2010-05-16,
автор: terminus

оценить статью:

drurus, 2010-06-13 в 2:37:02

Возможно окажется даже полезной штукой, нужно опробовать :)
Но вот все в базы пихать зачем, хотя бы sqlite или bdb вместо мускула?

terminus, 2010-06-13 в 11:12:33

Этот проект выполнялся как контрольная работа в универе. Были определенные требования. Одно из требований - база MySQL.
Преимущество такого решения в том, что сервер базы данных может находиться на другой машине.

Еще один момент - PHP код для работы с базами "выдернут" из Postfixadmin. Там были реализованы только MySQL и Postgresql.


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 12 чел.
За последние 30 мин было: 68 человек
За сегодня было
1607 показов,
435 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.045 секунд
Из них PHP: 22%; SQL: 78%; Число SQL-запросов: 111 шт.
Исходный размер: 232722; Сжатая: 27837