PowerDNS 설치 · 4 min read · Oct 01, 2025

Debian Etch에서 PowerDNS (MySQL 백엔드) 및 Poweradmin 설치하기

Debian Etch에서 PowerDNS (MySQL 백엔드) 및 Poweradmin 설치하기

버전 1.0
저자: Falko Timme

이 문서에서는 Debian Etch 시스템에서 PowerDNS 이름 서버 (MySQL 백엔드 포함) 및 PowerDNS용 Poweradmin 제어판을 설치하는 방법을 보여줍니다. PowerDNS는 고성능의 권위 있는 이름 서버로, 여기서 설명하는 설정에서는 MySQL 데이터베이스에서 DNS 레코드를 읽습니다 (MyDNS와 유사하게), PostgreSQL과 같은 다른 백엔드도 지원됩니다. Poweradmin은 PowerDNS를 위한 웹 기반 제어판입니다.

이것이 귀하에게 작동할 것이라는 보장은 하지 않습니다!

1 사전 참고

이 예제에서는 hostname이 server1.example.com이고 IP 주소가 192.168.0.100인 Debian Etch 호스트를 사용하고 있으며, 이 튜토리얼의 처음 5장에 따라 설정되었습니다: 완벽한 설정 - Debian Etch (Debian 4.0).

이 예제에서는 PowerDNS 서버를 하나만 설정할 것입니다 (마스터); PowerDNS 슬레이브를 추가하는 것은 마스터에서 슬레이브로 MySQL 데이터베이스 복제를 사용하여 쉽게 수행할 수 있으므로 존 전송이 필요하지 않습니다 (이것은 다시 MyDNS와 유사합니다). MySQL 데이터베이스 복제는 이 튜토리얼에 따라 설정할 수 있습니다: MySQL에서 데이터베이스 복제 설정하는 방법 (PowerDNS는 또한 MySQL 복제를 사용할 수 없는 시나리오를 위한 기본 존 전송을 지원합니다 - http://downloads.powerdns.com/documentation/html/replication.html 참조).

2 MySQL 설치하기

MySQL을 설치하기 위해 다음을 실행합니다.

apt-get install mysql-server mysql-client

MySQL이 모든 인터페이스에서 수신 대기하도록 하려면 (이것은 MySQL 데이터베이스 복제에 중요합니다!), localhost뿐만 아니라 /etc/mysql/my.cnf를 편집하고 bind-address = 127.0.0.1 줄의 주석을 제거합니다:

vi /etc/mysql/my.cnf

| [...] #bind-address = 127.0.0.1 [...] |

그런 다음 MySQL을 재시작합니다:

/etc/init.d/mysql restart

이제 네트워킹이 활성화되었는지 확인합니다. 다음을 실행합니다:

netstat -tap | grep mysql

출력은 다음과 같아야 합니다:

server1:~# netstat -tap | grep mysql
tcp        0      0 :mysql                 :*                     LISTEN     3031/mysqld
server1:~#

다음 명령을 실행하여 root 사용자에 대한 비밀번호를 설정합니다 (그렇지 않으면 누구나 귀하의 MySQL 데이터베이스에 접근할 수 있습니다!) (yourrootsqlpassword를 원하는 비밀번호로 교체하십시오).

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

3 PowerDNS 설치하기

PowerDNS를 설치하기 위해 다음을 실행합니다:

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

PowerDNS 구성은 /etc/powerdns 디렉토리에 위치해 있습니다 - 잠시 후에 이에 대해 설명하겠습니다.

이제 MySQL에 연결합니다:

mysql -u root -p

MySQL root 비밀번호를 입력하면 MySQL 셸에 들어가게 됩니다. MySQL 셸에서 PowerDNS용 데이터베이스를 생성합니다:

CREATE DATABASE powerdns;

다음으로 PowerDNS를 위한 데이터베이스 사용자 (powerdns)를 생성합니다:

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;

( power_admin_password를 원하는 비밀번호로 교체하십시오.)

이제 PowerDNS에 필요한 테이블을 생성합니다…

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

… 그리고 마지막으로 MySQL 셸을 종료합니다:

quit;

이제 PowerDNS가 MySQL 백엔드를 사용하도록 구성해야 합니다:

vi /etc/powerdns/pdns.conf

pdns.conf에 launch=gmysql 줄을 추가합니다:

| [...] ################################# # launch Which backends to launch and order to query them in # # launch= launch=gmysql [...] |

그런 다음 /etc/powerdns/pdns.d/pdns.local을 열고 다음과 같이 설정합니다:

vi /etc/powerdns/pdns.d/pdns.local    

| # Here comes the local changes the user made, like configuration of # the several backends that exists. gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns |

그런 다음 pdns를 재시작합니다:

/etc/init.d/pdns restart

그게 다입니다. 이제 PowerDNS를 사용할 준비가 되었습니다. 더 많은 정보를 원하시면 문서를 참조하십시오: http://downloads.powerdns.com/documentation/html/index.html

4 Poweradmin 설치하기

이제 PowerDNS를 위한 웹 기반 제어판인 Poweradmin을 설치해 보겠습니다. Poweradmin은 PHP로 작성되었으므로 웹 서버 (이 예제에서는 Apache2를 사용합니다)와 PHP를 설치해야 합니다:

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

Maildir 지원 없이 libc-client를 계속 설치하시겠습니까? <– 예

Poweradmin은 또한 다음 두 개의 PEAR 패키지를 필요로 합니다:

pear install DB
pear install pear/MDB2#mysql

이제 Poweradmin에 필요한 모든 전제 조건이 설치되었으며, Poweradmin 설치를 시작할 수 있습니다 (저는 /var/www의 하위 디렉토리에 설치할 것입니다 - /var/www는 Debian의 Apache 기본 웹 사이트의 문서 루트입니다; 다른 문서 루트로 vhost를 생성한 경우 경로를 조정하십시오).

https://www.poweradmin.org/trac/wiki/GettingPoweradmin로 이동하여 최신 Poweradmin 패키지를 다운로드합니다, 예를 들어 다음과 같이:

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

그런 다음 /var/www/poweradmin 디렉토리에 다음과 같이 설치합니다:

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

이제 브라우저를 열고 웹 기반 Poweradmin 설치 프로그램을 시작합니다 (http://server1.example.com/poweradmin/install 또는 http://192.168.0.100/poweradmin/install).

언어를 선택합니다 (영어 또는 네덜란드어):

계속하려면 Go to step 3 버튼을 클릭합니다:

이제 데이터베이스 세부 정보를 입력합니다. MySQL root 사용자에 대한 세부 정보를 입력하는 것이 중요합니다, 이전에 생성한 powerdns MySQL 사용자가 아닙니다! 또한 Poweradmin 웹 인터페이스에 대한 관리자 사용자 비밀번호를 제공하십시오 (이 비밀번호는 나중에 사용자가 Poweradmin에 로그인하는 데 사용됩니다):

다음 페이지에서 3장에서 생성한 power_admin MySQL 사용자에 대한 세부 정보를 입력합니다. 또한 존을 생성할 때 다른 이름 서버를 제공하지 않는 한 귀하의 존에서 사용될 두 개의 기본 이름 서버를 입력합니다 (일반적으로 이는 현재 시스템의 이름과 슬레이브 서버의 이름입니다 (여기서 MySQL 복제를 설정할 수 있습니다, 1장에서의 사전 참고를 참조하십시오)):

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.