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

페도라 10에서 PowerDNS (MySQL 백엔드) 및 Poweradmin 설치하기

페도라 10에서 PowerDNS (MySQL 백엔드) 및 Poweradmin 설치하기

버전 1.0
저자: Falko Timme

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

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

1 사전 노트

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

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

2 MySQL 설치하기

MySQL을 설치하려면 다음과 같이 합니다:

yum install mysql mysql-server

그런 다음 MySQL의 시스템 시작 링크를 생성합니다 (시스템이 부팅될 때마다 MySQL이 자동으로 시작되도록) 및 MySQL 서버를 시작합니다:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

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

netstat -tap | grep mysql

다음과 같은 결과가 나타나야 합니다 ( *:mysql은 MySQL이 모든 인터페이스에서 수신 대기하고 있음을 의미하며, 이는 MySQL 복제에 중요합니다!):

[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 2407/mysqld
[root@server1 ~]#

만약 그렇지 않다면, /etc/my.cnf를 편집하고 skip-networking 옵션을 주석 처리합니다:

vi /etc/my.cnf

| [...] #skip-networking [...] |

그런 다음 MySQL 서버를 재시작합니다:

/etc/init.d/mysqld restart 

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

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

마지막 명령이 오류를 발생시키면…

[root@server1 named]# mysqladmin -h server1.example.com -u root password yourrootsqlpassword
mysqladmin: connect to server at ‘server1.example.com’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: NO)’
[root@server1 named]#

… 다음과 같이 비밀번호를 설정할 수 있습니다: MySQL에 연결합니다:

mysql -u root -p

MySQL root 사용자에 대한 비밀번호를 입력합니다. 그런 다음 MySQL 셸에서 다음을 수행합니다:

mysql> USE mysql;
mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = 'server1.example.com' AND User = 'root';
mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = '127.0.0.1' AND User = 'root';

다음 명령을 실행하여 모든 root 사용자 행에 비밀번호가 있는지 확인합니다:

mysql> SELECT * FROM user;

모든 것이 괜찮아 보이면 다음을 실행합니다:

mysql> FLUSH PRIVILEGES;

… 그리고 MySQL 셸을 종료합니다:

mysql> quit;

3 PowerDNS 설치하기

PowerDNS를 설치하려면 다음을 실행합니다:

yum install pdns pdns-backend-mysql

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

이제 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/pdns/pdns.conf

pdns.conf에 다음 줄을 추가합니다:

| [...] ################################# # launch Which backends to launch and order to query them in # # launch= launch=gmysql gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns [...] |

그런 다음 PowerDNS의 시스템 시작 링크를 생성하고 시작합니다:

chkconfig –levels 235 pdns on
/etc/init.d/pdns start

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

4 Poweradmin 설치하기

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

yum install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext 

Apache2의 시스템 시작 링크를 생성하고 시작합니다:

chkconfig –levels 235 httpd on
/etc/init.d/httpd start

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

yum install php-pear-DB php-pear-MDB2-Driver-mysql

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

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

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

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

tar xvfz poweradmin-2.1.2.tgz
mv poweradmin-2.1.2 /var/www/html/poweradmin
touch /var/www/html/poweradmin/inc/config.inc.php
chown -R apache:apache /var/www/html/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

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

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