Wstęp

Power DNS na bazie MySQL + panel do zarządzania DNS'ami na serwerze poprzez panel PDNS-Admin na demonie httpd: Apache2. PDNS-Admin umożliwia zarządzanie serwerem Power DNS oraz tworzenie użytkowników, którzy mogą trzymać swoje strefy na naszym DNSie. Takie rozwiązanie może być zastosowane, gdy chcemy się podzielić swoim serwerem DNS ze znajomymi. Kilku znajomych z takim rozwiązaniem i mamy w miarę stabilne DNS'y naszych domen.

Instalacja

poldek:/all-avail> install mysql mysql-client mysql-libs pdns pdns-backend-gmysql bind-utils apache apache-mod_dir apache-mod_php php-mysql php-xml php-xmlreader php-xmlwriter php-dom php-gd php-gettext php-iconv php-mbstring php-mcrypt php-openssl php-readline php-session php-spl

Log instalacji dostępny tutaj dla porównania w razie błędów link.

Konfiguracja MySQL

Init bazy danych:

$ /etc/init.d/mysql init
Initializing cluster /var/lib/mysql................................
Installing MySQL system tables for /var/lib/mysql/mysqldb/db.......[ ZROBIONE ]
...
Filling help tables................................................[ ZROBIONE ]
$ /etc/init.d/mysql start
Uruchamianie usługi MySQL /var/lib/mysql...........................[  ZAJĘTY  ]
Waiting for MySQL to start.........................................[ ZROBIONE ]
$ echo "update mysql.user set password=password('naszehaslo_mysql') where user='mysql'; FLUSH PRIVILEGES;" | mysql -u mysql -S /var/lib/mysql/mysqldb/mysql.sock
$ echo "update mysql.user set password=password('naszetajnehaslo_mysqladmin') where user='mysql_sysadmin'; FLUSH PRIVILEGES;" | mysql -p -u mysql -S /var/lib/mysql/mysqldb/mysql.sock

Przy resetowaniu hasła dla mysql_sysadmin poprosi nas o hasło. Podajemy hasło: naszehaslo_mysql - czyli te, które podaliśmy dla użytkownika mysql.

Podstawowa konfiguracja bazy:

Zatrzymujemy bazę:

$ /etc/init.d/mysql stop
Zatrzymywanie usługi MySQL /var/lib/mysql..........................[ ZROBIONE ]

Ulubionym edytorem edytujemy plik: /var/lib/mysql/mysqld.conf - zmieniamy w konfigu:

character-set-server=utf8
collation-server=utf8_general_ci

;skip-networking

bind-address=127.0.0.1

language   = polish

[mysqladmin]
user        = mysql_sysadmin
password    = naszetajnehaslo_mysqladmin

Uruchamiamy bazę:

$ /etc/init.d/mysql start
Uruchamianie usługi MySQL /var/lib/mysql...........................[ ZROBIONE ]

Dodajemy bazę danych dla Power DNS'a:

$ mysql -p -u mysql
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.45-log PLD Linux Distribution MySQL RPM

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE USER 'pdns'@'localhost' IDENTIFIED BY 'haslo_do_bazy';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE DATABASE pdns;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON pdns.* TO pdns@localhost;
Query OK, 0 rows affected (0.00 sec)

Konfiguracja Power DNS

Zapisujemy do pliku /root/pdns.sql:

create table domains (
id		 SERIAL PRIMARY KEY,
name		 VARCHAR(255) NOT NULL,
master		 VARCHAR(20) DEFAULT NULL,
last_check	 INT DEFAULT NULL,
type		 VARCHAR(6) NOT NULL,
notified_serial	INT DEFAULT NULL, 
account         VARCHAR(40) DEFAULT NULL
);
CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (
id              SERIAL PRIMARY KEY,
domain_id       INT DEFAULT NULL,
name            VARCHAR(255) DEFAULT NULL,
type            VARCHAR(6) DEFAULT NULL,
content         VARCHAR(255) DEFAULT NULL,
ttl             INT DEFAULT NULL,
prio            INT DEFAULT NULL,
change_date	INT DEFAULT NULL, 
CONSTRAINT	domain_exists 
FOREIGN		KEY(domain_id) REFERENCES domains(id)
ON DELETE CASCADE
);

CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);

create table supermasters (
ip VARCHAR(25) NOT NULL, 
nameserver VARCHAR(255) NOT NULL, 
account VARCHAR(40) DEFAULT NULL
);

GRANT ALL ON domains TO pdns;
GRANT ALL ON domains_id_seq TO pdns;
GRANT ALL ON records TO pdns;
GRANT ALL ON records_id_seq TO pdns;

Tworzymy strukturę bazy:

$ mysql -p -u pdns pdns < /root/pdns.sql
Enter password:

Konfigurujemy Power DNS'a:

Edytujemy ulubionym edytorem plik: /etc/pdns/pdns.conf - upewniamy się, aby te opcje były ustawione:

launch=gmysql
#bind-example-zones
slave=yes

log-dns-details=yes
log-failed-updates=yes
logging-facility=0
loglevel=4
query-logging=no
use-logfile=yes

Logi Power DNS'a:

$ mkdir /var/log/pdns
$ chmod 750 /var/log/pdns
$ chown root:logs /var/log/pdns

Konfigurujemy Syslog-ng pod DNS'a:

Edytujemy ulubionym edytorem plik: /etc/syslog-ng/syslog-ng.conf - na końcu dopisujemy:

filter proc_pdns { program("^pdns$"); };

destination d_pdns_info { file("/var/log/pdns/pdns.info"); };
destination d_pdns_warn { file("/var/log/pdns/pdns.warn"); };
destination d_pdns_err  { file("/var/log/pdns/pdns.err"); };

log { source(s_sys); filter(proc_pdns); filter(p_info); destination(d_pdns_info); };
log { source(s_sys); filter(proc_pdns); filter(p_err); destination(d_pdns_err); };
log { source(s_sys); filter(proc_pdns); filter(p_warn); destination(d_pdns_warn); };

Przeładowanie konfiguracji Syslog'a:

$ /etc/init.d/syslog-ng reload
Przeładowanie usługi syslog-ng.....................................[ ZROBIONE ]

Uruchomienie Power DNS'a:

/etc/init.d/pdns start
Uruchamianie usługi PowerDNS (Powered DNS server)..................[ ZROBIONE ]

Instalacja PDNS-Admin

Ściągamy PDNS-Admin'a i rozpakowujemy go do katalogu demona httpd:

$ wget "http://pdnsadmin.iguanadons.net/index.php?a=files&s=download&cid=2&fid=18"
$ mv ./index.php?a=files\&s=download\&cid=2\&fid=18 pdnsadmin1.1.9.tgz
$ tar xzvf ./pdnsadmin1.1.9.tgz
$ mv ./pdnsadmin1.1.9 ./pdnsadmin
$ mv ./pdnsadmin /home/services/httpd/html/
$ chown -R http:http /home/services/httpd/html/pdnsadmin/
$ chmod -R o-rwx /home/services/httpd/html/pdnsadmin/

Uruchamiamy demona httpd:

$ /etc/init.d/httpd start
Uruchamianie usługi Apache 2.2 Web Server (prefork)................[ ZROBIONE ]

Konfiguracja PDNS-Admin

Wchodzimy na stronę: http://10.100.5.68/pdnsadmin/ - gdzie 10.100.5.68 to nasze IP serwera, Twoje będzie zapewne inne:)

Wybieramy: New … i klikamy na Continue

Wpisujemy ustawienia bazy oraz dane administratora, jakie będą obowiązywać w panelu i klikamy Continue

Teraz należy usunąć folder instalacji PDNS-Admin:

$ rm -fr /home/services/httpd/html/pdnsadmin/install

W panelu dodajmy domenę i sprawdźmy czy działa serwer DNS:

$ host domena.com.pl. localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:

domena.com.pl has address 194.145.96.21
domena.com.pl mail is handled by 10 mail.domena.com.pl.

Pliki

/var/lib/mysql/mysqld.conf /etc/pdns/pdns.conf /root/pdns.sql /etc/syslog-ng/syslog-ng.conf

Wszelkie uwagi i ew zapytania słać na: kamil|at|kamilm.net ;)

pl/przewodniki/powerdns-pdns-admin.txt · ostatnio zmienione: 2012/10/15 12:35 przez nospe
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 Powered by Lighttpd - fly light