bind + Web-морда к нему (smbind)

Понадобилась web-панель для DNS сервера долго рыл инет и нашел очень хорошее решение установку которого я и опишу.
качаем smbind и распаковываем

1
2
3
#cd /usr/src
#wget http://downloads.sourceforge.net/project/smbind/smbind/0.4.8/smbind-0.4.8.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fsmbind%2F&ts=1295950146&use_mirror=sunet
#unzip -l smbind-0.4.8.zip

копируем и ставим права

1
2
3
4
#cp /usr/src/smbind-0.4.8/php /var/www/dns
#chown apache.apache -R /var/www/dns
#chmod 640 /var/www/dns/config.php
#chmod 775 /var/www/dns/templates_c

создадим базу mysql под названием «dns» и одноименного пользователя

1
2
#mysql -h localhost -u root -p
mysql> CREATE USER 'dns'@'localhost' IDENTIFIED BY  'pass'; GRANT USAGE ON * . * TO  'dns'@'localhost' IDENTIFIED BY  'pass'; CREATE DATABASE IF NOT EXISTS  `dns` ; GRANT ALL PRIVILEGES ON  `dns` . * TO  'dns'@'localhost';

импортируем таблицы в нашу базу

1
# mysql -u root -h localhost -p -D bind < /usr/src/smbind-0.4.8/smbind-mysql.sql

сконфигурируем /var/www/dns/config.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Include paths.
$_CONF['smarty_path']   = "/usr/share/smarty";
$_CONF['peardb_path']   = "/usr/share/pear";

// Database DSN.
$_CONF['db_type']   = "mysql"; // mysql for MySQL, pgsql for PostgreSQL
$_CONF['db_user']   = "dns";
$_CONF['db_pass']   = "pass";
$_CONF['db_host']   = "localhost";
$_CONF['db_db']     = "dns";

// Zone data paths (normal).
$_CONF['path']          = "/var/named/"; #сюда кидать зоны не забываем дать права юзеру apache на запись в этот каталог
$_CONF['conf']      = "/etc/smbind.conf"; # Include this file in named.conf.

// Zone data paths (chroot).
#$_CONF['path']     = "/var/named/chroot/var/named/";
#$_CONF['conf']     = "/var/named/chroot/etc/smbind/smbind.conf"; # Include this file in named.conf.
                                                                                                               
// BIND utilities.
$_CONF['namedcheckconf'] = "/usr/sbin/named-checkconf";
$_CONF['namedcheckzone'] = "/usr/sbin/named-checkzone";
$_CONF['rndc']       = "/usr/sbin/rndc";
?>

создадим файл, изменим юзера и зададим права

1
#touch /etc/smbind.conf && chown apache.named /etc/smbind.conf && chmod 640 /etc/smbind.conf

скачаем и установим Smarty

1
#mkdir /usr/share/smarty && cd /usr/share/smarty && wget http://www.smarty.net/files/Smarty-2.6.26.tar.gz && tar zxvf Smarty-2.6.26.tar.gz && cp -R ./Smarty-2.6.26/libs/* /usr/share/smarty

в /etc/php.ini должно быть

1
extension=posix.so

конфигурируем webserver я юзаю nginx добавляем хост

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
server {
        listen       35063; # не рекомендую вешать на 80 порт эту фигню
        server_name  bind;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /var/www/dns;
            allow  192.168.0.0/24;
            allow  127.0.0.1;
            deny   all;
            index  index.php;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /var/www/dns;
            fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/dns$fastcgi_script_name;
            include        fastcgi_params;
        }
     }

и в /etc/named.conf делаем

1
2
directory "/var/named"; #то что в файле /var/www/dns/config.php переменная $_CONF['path']
include "/etc/smbind.conf";

заходим на

если видим такое:

smbind configtest

This script will try to check some aspects of your smbind configuration and point you to errors where ever it can find them. You need to edit config.php and read the INSTALL file first before you run this script.

Testing config.php…OK
Testing PEAR DB…OK
Testing Smarty…OK
Testing templates_c…OK
Testing path…OK
Testing conf directory…OK
Testing conf file…OK
Testing named-checkconf…OK
Testing named-checkzone…OK
Testing rndc…OK
Testing (guess) /etc/rndc.conf…not found.
Testing (guess) /etc/rndc.key…OK
Testing (guess) connection to localhost:953…OK
Testing rndc execution…OK
server is up and running
Testing database connection…OK
Testing database SELECT from zones table…OK Testing database SELECT from users table…OK Testing database SELECT from records table…OK
Testing database INSERT into zones table…OK Testing database INSERT into users table…OK Testing database INSERT into records table…OK
Testing database UPDATE zones table…OK Testing database UPDATE users table…OK Testing database UPDATE records table…OK
Testing database DELETE FROM zones table…OK Testing database DELETE FROM users table…OK Testing database DELETE FROM records table…OK

Congratulations, your setup looks good. Please remember to add the following line to your named.conf:
include «/etc/smbind.conf»;

значит всё ок!
заходим на
логин admin пароль admin
и радуемся!

При копировании ссылка на оригинал обязательна


А вот и я цветов не надо-)


Наконец-то…

Слава богу основное на блоге довёл до ума…. посмотрим как будет работать связка ngnix+fastcgi-php. Если тест прокатит выложу конфиги…


Здравствуйте сограждане!

Это мой блог, который теперь будет отображать моё житеЁ! В основном тут будут писаться памятки для меня.  Но если вам они пригодятся я буду только рад!


Copyright © 2010 Дедкина избушка. Копирование запрещено
Thanx: Alltimber