서버 설치 · 4 min read · Oct 01, 2025

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

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

버전 1.0
저자: Falko Timme
Twitter에서 나를 팔로우하세요

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

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

1 사전 참고

이 예제에서는 호스트 이름이 server1.example.com이고 IP 주소가 192.168.0.100인 Debian Squeeze 호스트를 사용하고 있으며, 이 튜토리얼의 처음 6개 장에 따라 설정되었습니다: 완벽한 서버 - Debian Squeeze (Debian 6.0) [ISPConfig 2].

이 예제에서는 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 루트 사용자에 대한 비밀번호를 제공하라는 메시지가 표시됩니다 - 이 비밀번호는 root@localhost 사용자와 [email protected]에 유효하므로 나중에 MySQL 루트 비밀번호를 수동으로 지정할 필요가 없습니다:

MySQL “root” 사용자에 대한 새 비밀번호: <– yourrootsqlpassword
MySQL “root” 사용자에 대한 비밀번호 반복: <– yourrootsqlpassword

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 2453/mysqld
server1:~#

3 PowerDNS 설치하기

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

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

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

이제 MySQL에 연결합니다:

mysql -u root -p

MySQL 루트 비밀번호를 입력하면 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    

| # 여기에는 사용자가 만든 로컬 변경 사항이 포함됩니다, 여러 백엔드의 구성과 같은. 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-ming php5-mysql php5-xmlrpc gettext php-db php-mdb2 php-mdb2-driver-mysql

그 후 Apache를 재시작합니다:

/etc/init.d/apache2 restart 

이제 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.5.tgz

그런 다음 /var/www/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/

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

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

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

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

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

다음 화면에서 설치 프로그램은 MySQL 쿼리를 실행하라고 요청합니다. 우리는 이미 3장에서 유사한 작업을 수행했기 때문에 (두 개의 GRANT 문) 우리는 설정이 완료되었습니다. Go to step 6을 클릭합니다:

Share: X/Twitter LinkedIn

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

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