sobota, 16 lutego 2013

PowerDNS, MySQL, PowerAdmin - Debian Squeeze

Power DNS  jest zaawansowanym i bardzo efektywnym serwerem nazw. Jego możliwości współpracy z LDAP lub bazami SQL (Mysql i Postgresql) dają szerokie możliwości tworzenia skryptów lub interface zarządzających. Sam PDNS jest uważany za zdecydowanie bezpieczniejszy niż Bind, a także od niego szybszy - zwłaszcza przy większej ilości obsługiwanych domen. PowerAdmin natomiast jest graficznym narzędziem do zarządzania, np. strefami w PowerDNS.

Do przeprowadzania tej konfiguracji będziemy potrzebować maszyny z systemem Debian Squeeze oraz skonfigurowanym interfejsem sieciowym z IP: 192.168.0.100 oraz wpisem w /etc/hosts:               192.168.0.100 server1.example.com



1) Instalacja MySQL:   

apt-get install mysql-server mysql-client

Oczywiście w trakcie instalacji musimy podać hasło do roota dla bazy, oraz musimy uruchomić dostęp do bazy na wszystkie nasze adresy IP, a nie tylko na localhost:

nano /etc/mysql/my.cnf

Odnajdujemy bind-address = 127.0.0.1, przy którym usuwamy komentarz (#).

Następnie robimy restart bazy:

/etc/init.d/mysql restart

Sprawdzimy czy baza działa tak jak trzeba:


netstat -tap | grep mysql

Powinniśmy otrzymać podobną do poniższego odpowiedź:

tcp 0 0 *:mysql *:* LISTEN  2453/mysqld







2) Zainstalujemy PowerDNS:


apt-get install pdns-server pdns-backend-mysql

Logujemy się na konto root'a bazy:

mysql -u root -p

Teraz utworzymy bazę danych dla PowerDNS:

CREATE DATABASE powerdns;

Utworzymy użytkownika dla PowerDNS'u (oczywiście zmieniamy power_admin_password na nasze hasło):


GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password';
FLUSH PRIVILEGES;

Teraz utworzymy tabelkę w tej bazie:

USE powerdns;

CREATE TABLE domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
primary key (id)
);

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (
id INT auto_increment,
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,
primary key(id)
);

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
);

na koniec wychodzimy:

quit;

Konfigurujemy PowerDNS:

nano /etc/powerdns/pdns.conf

Dodajemy w nim:

launch=gmysql

Następnie:

nano /etc/powerdns/pdns.d/pdns.local

Dodajemy:


gmysql-host=127.0.0.1
gmysql-user=power_admin
gmysql-password=podajemy_haslo_do_power_admina
gmysql-dbname=powerdns

I restart:

/etc/init.d/pdns restart






3) Instalujemy PowerAdmin:


apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-ming php5-mysql php5-xmlrpc gettext php-db php-mdb2 php-mdb2-driver-mysql

/etc/init.d/apache2 restart


cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.5.tgz

Instalujemy PowerAdmin:

tar xvfz poweradmin-2.1.5.tgz
mv poweradmin-2.1.5 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/poweradmin/

Możemy wejść przez przeglądarkę do PowerAdmina: 

http://server1.example.com/poweradmin/install/index.php 

lub

http://192.168.0.100/poweradmin/install/index.php

Wybieramy jako język domyślny Angielski:






Następnie klikamy na przycisk Go to step 3:





Podajemy dane do bazy (login oraz hasło roota, zostawiamy localhost, port bazy jako bazę wybieramy oczywiście MySQL):





Dodajemy dane wpisane pod koniec pkt. 2 do bazy oraz dane związane z DNS otrzymanym od dostawcy :



Przechodzimy do kroku 6:



Następnie przechodzimy do kroku 7. Tutaj kończymy instalacje musimy jeszcze usunąć pliki instalacyjne:

rm -fr /var/www/poweradmin/install/

Wchodzimy teraz do panelu PowerAmin:

http://server1.example.com/poweradmin 

lub

http://192.168.0.100/poweradmin




Widzimy wszystkie opcje, jakie daje nam PowerAdmin:


Dodamy teraz główną strefę (Add Master Zone):



Nowa strefa powinna się pokazać na liście:


Dodamy rekord NS, poprzez Add record:



Dodamy rekord mail:




Rekord wyszukiwania wstecznego (z IP na nazwę), wybierając Add master zone:





Możemy sprawdzić utworzone rekordy za pomocą polecenia dig:

Możemy sprawdzić wszystko co związane jest z rekordem poczty (mail, mx itd.)

dig @localhost mx example.com



2 komentarze:

  1. Wszystkie rysunki występujące w tekście są niewidoczne :(

    OdpowiedzUsuń