서버 설치 · 11 min read · Sep 08, 2025

Rocky Linux에 PowerDNS 및 PowerAdmin 설치하는 방법

PowerDNS는 무료 오픈 소스 DNS 서버 소프트웨어입니다. 권한 있는 네임서버 및 DNS 리커서로 사용할 수 있습니다. PowerDNS는 C++로 작성되었으며 BSD, Linux 및 macOS를 포함한 여러 운영 체제를 지원합니다.

PowerDNS는 BIND와 MySQL/MariaDB, PostgreSQL 및 Oracle 데이터베이스와 같은 RDBMS 백엔드를 포함한 여러 유형의 백엔드를 지원하는 고급 고성능 DNS 서버입니다.

PowerDNS 서버는 수만 개의 동시 요청을 처리할 수 있는 고성능 서버로 DNSSEC를 지원하며 Lua로 높은 스크립팅 가능성을 제공합니다.

이 가이드에서는 Rocky Linux 시스템에 PowerDNS 및 PowerDNS-Admin을 설치하는 방법을 보여줍니다. MySQL/MariaDB 데이터베이스 백엔드로 PowerDNS를 실행하고 PowerDNS 서버의 웹 기반 관리 도구로 사용될 PowerDNS-Admin을 설정합니다.

이 가이드는 또한 Flask 기반 프로젝트를 위한 Python 패키지 설치 및 PowerDNS-Admin 웹 애플리케이션의 리버스 프록시로 사용될 Nginx 및 Gunicorn의 구성도 보여줍니다.

전제 조건

이 가이드를 시작하려면 다음 요구 사항이 필요합니다:

  • Rocky Linux 서버 - Rocky Linux v8 또는 v9를 사용할 수 있습니다.
  • sudo/root 관리자 권한이 있는 비루트 사용자.

MariaDB 데이터베이스 서버 설치 및 구성

PowerDNS는 PostgreSQL, MariaDB/MySQL 및 SQLite와 같은 여러 백엔드를 지원하는 확장 가능한 DNS 서버 소프트웨어입니다. 대규모 배포의 경우 PostgreSQL 또는 MySQL/MariaDB를 데이터베이스 백엔드로 사용하는 것을 고려해야 합니다.

이제 Rocky Linux 서버에 MariaDB 데이터베이스를 설치하고 구성하는 것으로 시작합니다. MariaDB를 데이터베이스 백엔드로 사용하여 PowerDNS를 설정합니다.

기본 Rocky Linux 리포지토리는 여러 버전의 MariaDB 서버 패키지를 제공합니다. 아래의 dnf 명령을 실행하여 MariaDB 데이터베이스 서버를 설치합니다.

sudo dnf install mariadb-server

확인 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 진행합니다.

install mariadb

MariaDB 서버가 설치된 후 아래의 systemctl 명령을 실행하여 MariaDB 서비스를 시작하고 활성화합니다.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

이제 MariaDB 서버가 실행 중이어야 하며 활성화되어 있어야 합니다. 아래 명령을 실행하여 MariaDB 서비스를 확인하고 서비스가 실행 중인지 확인합니다.

sudo systemctl status mariadb

다음과 같은 출력을 보게 될 것입니다 - MariaDB 서비스가 실행 중이며 활성화되어 있다는 것은 부팅 시 자동으로 서비스가 실행된다는 것을 의미합니다.

start enable verify mariadb

이제 MariaDB 서버가 실행 중이므로 ‘mysql_secure_installation’ 명령줄 도구를 통해 MariaDB 설치를 설정하고 보안합니다.

다음 명령을 실행하여 MariaDB 서버 배포를 보안합니다.

sudo mysql_secure_installation

그런 다음 MariaDB 서버의 몇 가지 구성을 요청받게 됩니다.

  • MariaDB 루트 비밀번호를 설정하시겠습니까? y를 입력하여 확인하고 MariaDB 서버의 새 비밀번호를 입력한 다음 비밀번호를 반복합니다.
  • MariaDB 루트 사용자의 원격 로그인을 비활성화하시겠습니까? y를 입력하여 확인하고 비활성화합니다.
  • MariaDB에서 기본 익명 사용자를 제거하시겠습니까? y를 입력하여 확인합니다.
  • MariaDB에서 기본 데이터베이스 테스트를 제거하시겠습니까? y를 다시 입력하여 확인합니다.
  • 마지막으로 새 변경 사항을 적용하기 위해 테이블 권한을 다시 로드하시겠습니까? y를 입력하여 확인하면 MariaDB가 모든 권한을 다시 로드하고 새 설정을 적용합니다.

이제 MariaDB 배포를 보안했으므로 PowerDNS를 위한 새 MariaDB 데이터베이스와 사용자를 설정합니다.

먼저 아래의 mysql 명령을 실행하여 MariaDB 루트 사용자로 MariaDB 셸에 로그인합니다.

sudo mysql -u root -p

비밀번호를 요청받으면 MariaDB 루트 사용자의 비밀번호를 입력합니다.

다음으로 아래 쿼리를 실행하여 새 MariaDB 데이터베이스와 사용자를 생성합니다. 이 예제에서는 사용자 pdnsadmin와 비밀번호 ‘ password ‘로 새 데이터베이스 pdns를 생성합니다.

CREATE DATABASE pdns;  
GRANT ALL ON pdns.* TO pdnsadmin@localhost IDENTIFIED BY 'password';  
FLUSH PRIVILEGES;

create database and user

이제 아래 쿼리를 실행하여 MariaDB 사용자 pdnsadmin@localhost의 권한을 확인합니다. 이는 MariaDB 사용자 pdnsadmin@localhost의 권한 목록을 보여줍니다.

SHOW GRANTS FOR pdnsadmin@localhost;

다음과 같은 출력을 보게 될 것입니다 - MariaDB 사용자 pdnsadmin@localhost가 PowerDNS 데이터베이스 pdns에 대한 권한을 가지고 있습니다.

show suer privileges

이제 ‘ quit ‘를 입력하여 MariaDB 셸에서 나갑니다.

MariaDB 서버가 실행 중이므로 이제 MariaDB 데이터베이스 백엔드로 PowerDNS 서버를 설치하고 구성합니다.

PowerDNS 설치 및 구성

MariaDB 데이터베이스 서버를 설치한 후 이제 PowerDNS 서버를 설치하고 MariaDB 데이터베이스 백엔드로 PowerDNS를 설정합니다.

RHEL 기반 운영 체제의 경우 PowerDNS는 EPEL 리포지토리에서 사용할 수 있습니다. 따라서 PowerDNS를 설치하기 전에 EPEL 리포지토리를 시스템에 추가해야 합니다.

다음 dnf 명령을 실행하여 EPEL 리포지토리를 설치합니다.

sudo dnf install epel-release -y

EPEL 리포지토리가 추가된 후 다음 dnf 명령을 실행하여 PowerDNS 및 PowerDNS MySQL 백엔드를 설치합니다.

sudo dnf install pdns pdns-backend-mysql

확인 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 진행합니다.

install powerdns

PowerDNS 설치가 완료되면 다음 mysql 명령을 실행하여 PowerDNS의 데이터베이스 스키마를 가져옵니다. 다음 명령은 MariaDB 사용자 pdnsadmin을 통해 pdns 데이터베이스로 데이터베이스 스키마를 가져옵니다.

sudo mysql -u pdnsadmin -p pdns < /usr/share/doc/pdns/schema.mysql.sql

pdnsadmin 사용자 비밀번호를 입력하고 ENTER를 눌러 확인하고 진행합니다.

다음으로 아래의 nano 편집기 명령을 사용하여 PowerDNS 구성 ‘/etc/pdns/pdns.conf’를 편집합니다.

sudo nano /etc/pdns/pdns.conf

MariaDB 백엔드 구성을 주석 해제하고 데이터베이스 이름, 사용자 및 비밀번호 세부정보를 변경합니다. 생성한 올바른 MariaDB 데이터베이스 세부정보를 사용해야 합니다.

#################################  
# launch        Which backends to launch and order to query them in  
#  
launch=gmysql  
  
gmysql-host=localhost   
gmysql-user=pdnsadmin   
gmysql-password=password   
gmysql-dbname=pdns

다음으로 ‘api’의 주석을 해제하고 값을 ‘ yes ‘로 변경합니다. 그런 다음 ‘ api-key ‘ 옵션의 주석을 해제하고 기본 키를 변경합니다. 다음 PowerDNS API는 PowerDNS-Admin 웹 애플리케이션을 통해 PowerDNS 서버를 관리하는 데 사용됩니다.

#################################  
# api   Enable/disable the REST API (including HTTP listener)  
#  
api=yes  
  
#################################  
# api-key       Static pre-shared authentication key for access to the REST API  
#  
api-key=CHANGEME

파일을 저장하고 편집기를 종료합니다.

PowerDNS 서버 구성을 완료한 후 다음 명령을 실행하여 PowerDNS 구성을 확인합니다.

pdns_server --daemon=no --guardian=no --loglevel=9

다음과 같은 출력을 보게 될 것입니다 - PowerDNS가 MariaDB 데이터베이스 백엔드에 성공적으로 연결되었으며 이제 ‘Ctrl+c’를 눌러 프로세스를 종료할 수 있습니다.

verify database connection

이제 다음 systemctl 명령을 실행하여 PowerDNS 서비스를 시작하고 활성화합니다.

sudo systemctl start pdns  
sudo systemctl enable pdns

마지막으로 PowerDNS 서비스가 실행 중이고 활성화되어 있는지 확인하기 위해 PowerDNS 서비스를 확인합니다.

sudo systemctl status pdns

아래 출력에서 현재 PowerDNS 서비스가 실행 중이며 활성화되어 있다는 것을 확인할 수 있습니다. 이는 부팅 프로세스에서 자동으로 실행된다는 것을 의미합니다.

verify pdns service

이 시점에서 PowerDNS 서버 설치가 완료되었습니다. 다음으로 PowerDNS 서버의 웹 프론트 엔드 관리로 사용될 PowerDNS-Admin 설치를 시작합니다.

PowerDNS-Admin 설치

PowerDNS가 실행 중인 상태에서 이제 Rocky Linux 서버에 PowerDNS-Admin을 설치하고 구성합니다. PowerDNS-Admin은 Python Flask 기반 웹 애플리케이션이므로 PowerDNS-Admin 설치는 Flask 웹 프레임워크 설치와 거의 동일합니다.

아래는 Rocky Linux에 PowerDNS-Admin을 설치하기 위해 수행해야 할 몇 가지 단계입니다.

  • 패키지 종속성 설치
  • Python 가상 환경 설정
  • Python 종속성 설치
  • MariaDB 데이터베이스로 PowerDNS-Admin 구성
  • 데이터베이스 스키마 생성 및 정적 파일 빌드

이제 PowerDNS-Admin 설치를 시작해 보겠습니다.

패키지 종속성 설치

PowerDNS-Admin을 설치하기 위한 첫 번째 단계는 Python3, Pip, Node.js 및 Yarn과 같은 패키지 종속성을 설치하는 것입니다.

시작하기 전에 아래의 dnf 명령을 실행하여 Rocky Linux 시스템에서 ‘ powertools ‘ 리포지토리를 활성화합니다.

sudo dnf config-manager --set-enabled powertools

‘powertools’ 리포지토리를 활성화한 후 아래의 dnf 명령을 통해 Python 패키지를 설치합니다.

sudo dnf install python3 python3-devel python3-pip python3-xmlsec gcc git mariadb-devel openldap-devel xmlsec1-devel xmlsec1-openssl libtool-ltdl-devel

확인 메시지가 표시되면 y를 입력하고 ENTER를 눌러 진행합니다.

install python dependnecies

다음으로 아래 명령을 통해 Node.js 및 Yarn 리포지토리를 시스템에 추가합니다. Node.js 및 Yarn 패키지는 PowerAdmin 웹 애플리케이션을 위한 정적 파일을 생성하는 데 사용됩니다. 이 예제에서는 Node.js v16을 사용합니다.

curl -sL https://rpm.nodesource.com/setup_16.x | bash -  
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo -o /etc/yum.repos.d/yarn.repo

setup repository

리포지토리가 추가된 후 아래의 dnf 명령을 실행하여 Node.js 및 Yarn 패키지 관리자를 설치합니다.

sudo dnf install nodejs yarn

설치 시 y를 입력하고 ENTER를 눌러 진행합니다.

install nodejs

또한 GPG 키 확인을 요청받으면 y를 입력하고 ENTER를 눌러 진행합니다.

import gpg key

다음으로 아래의 pip3 명령을 실행하여 Python pip 패키지를 업데이트하고 시스템에 virtualenv를 설치합니다.

pip3 install -U pip  
pip3 install -U virtualenv

이제 Python pip와 virtualenv가 ‘ /usr/local/bin ‘ 디렉토리에 설치됩니다. 아래 명령을 통해 디렉토리 ‘ /usr/local/bin ‘을 시스템 $PATH 환경 변수에 추가합니다.

echo "export PATH="/usr/local/bin:$PATH"" >> ~/.bashrc

이제 아래 명령을 사용하여 ‘ ~/.bashrc’ 파일의 새 변경 사항을 적용합니다. 이제 ‘ pip ‘ 및 ‘ virtualenv ‘ 명령을 실행할 수 있습니다.

source ~/.bashrc

Python 가상 환경 설정

패키지 종속성이 설치되었으므로 이제 PowerDNS-Admin 소스 코드를 다운로드하고 PowerDNS-Admin을 위한 Python 가상 환경을 설정합니다.

아래의 git 명령을 사용하여 PowerDNS-Admin 소스 코드를 ‘/opt/powerdns-admin’ 디렉토리에 클론합니다.

git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /opt/powerdns-admin

소스 코드가 다운로드된 후 작업 디렉토리를 ‘ /opt/powerdns-admin ‘로 이동하고 새 Python 가상 환경 ‘ flask ‘를 생성합니다.

cd /opt/powerdns-admin  
virtualenv -p python3 flask

이제 아래 명령을 통해 ‘ flask ‘ Python 가상 환경을 활성화합니다.

source flask/bin/activate

활성화되면 프롬프트가 ‘ (flask) [user@hostname /directory/path]# ‘와 같이 변경되어야 합니다.

create virtualenv

여기서부터는 작업 환경이 항상 Python 가상 환경 ‘ flask ‘에 있어야 합니다.

Python 종속성 설치

Python 가상 환경을 설정하고 활성화한 후, 이제 pip 명령을 통해 PowerDNS-Admin을 위한 Python 종속성을 설치합니다.

다음 pip 명령을 실행하여 PowerDNS-Admin에 필요한 Python 종속성을 설치합니다.

pip install python-dotenv  
pip install -r requirements.txt

이제 설치가 시작됩니다 - 이는 PowerDNS-Admin에 필요한 Python 종속성을 설치하며, 이들은 ‘ requirements.txt ‘ 파일에 저장되어 있습니다.

install python dependencies

이제 Python 종속성이 설치되었으므로 MariaDB 데이터베이스로 PowerDNS-Admin을 설정하고 구성할 준비가 되었습니다.

MariaDB 데이터베이스로 PowerDNS-Admin 구성

Python 종속성이 설치되었으므로 이제 MariaDB 데이터베이스로 PowerDNS-Admin을 설정합니다. PowerDNS-Admin의 데이터베이스 세부정보는 PowerDNS 서버와 동일한 데이터베이스가 됩니다.

이제 아래의 nano 편집기 명령을 사용하여 ‘ /opt/powerdns-admin/powerdnsadmin/default_config.py ‘ 파일을 편집합니다.

nano /opt/powerdns-admin/powerdnsadmin/default_config.py

구성을 아래와 같이 변경합니다.

SALT = 'RANDOM-GENERATED'  
SECRET_KEY = 'RANDOM-GENERATED'  
BIND_ADDRESS = '0.0.0.0'  
PORT = 9191  
HSTS_ENABLED = False  
OFFLINE_MODE = False  
  
SQLA_DB_USER = 'pdnsadmin'  
SQLA_DB_PASSWORD = 'password'  
SQLA_DB_HOST = '127.0.0.1'  
SQLA_DB_NAME = 'pdns'  
SQLALCHEMY_TRACK_MODIFICATIONS = True

파일을 저장하고 편집기를 종료합니다.

데이터베이스 스키마 생성 및 정적 파일 빌드

PowerDNS-Admin에서 MariaDB 데이터베이스를 구성한 후, 이제 데이터베이스를 마이그레이션하고 PowerDNS-Admin을 위한 정적 파일을 생성합니다.

먼저 아래 명령을 실행하여 PowerDNS-Admin의 데이터베이스를 마이그레이션합니다. 이는 PowerDNS-Admin에 사용될 새로운 데이터베이스 스키마를 데이터베이스에 삽입합니다.

export FLASK_APP=powerdnsadmin/__init__.py  
flask db upgrade

데이터베이스 마이그레이션이 완료되면 다음과 같은 출력을 보게 될 것입니다.

migrate database

데이터베이스 마이그레이션이 완료된 후, 다음 명령을 실행하여 PowerDNS-Admin을 위한 정적 파일을 생성합니다.

yarn install --pure-lockfile  
flask assets build

아래에서 yarn 패키지 관리자를 통해 일부 JavaScript 종속성이 설치되고 PowerDNS-Admin을 위한 정적 파일 생성 과정이 진행되는 것을 볼 수 있습니다.

genrate static files

정적 파일이 생성되면 아래 명령을 실행하여 Python 가상 환경을 비활성화합니다.

deactivate

이 시점에서 MariaDB 데이터베이스 서버와 함께 PowerDNS-Admin의 기본 설치가 완료되었습니다. 이제 명령줄을 통해 PowerDNS-Admin 애플리케이션을 시작할 수 있지만, systemd 서비스로 PowerDNS-Admin을 실행할 수도 있습니다.

PowerDNS-Admin을 위한 Systemd 서비스 설정

이 단계에서는 PowerDNS-Admin 애플리케이션을 위한 새로운 systemd 서비스 파일을 설정합니다. 이를 통해 systemd 명령을 통해 PowerDNS-Admin을 쉽게 관리하고 유지할 수 있습니다. 또한 PowerDNS-Admin의 구성을 단순화합니다.

시작하려면 아래의 nano 편집기 명령을 사용하여 새로운 systemd 서비스 파일 ‘/etc/systemd/system/powerdns-admin.service’를 생성합니다.

sudo nano /etc/systemd/system/powerdns-admin.service

파일에 아래 구성을 추가합니다. 이 구성을 통해 PowerDNS-Admin 애플리케이션을 gunicorn을 통해 실행하고 사용자 및 그룹 ‘ pdns ‘로 실행합니다. 또한 PowerDNS-Admin은 UNIX 소켓 파일 ‘ /run/powerdns-admin/socket ‘로 실행됩니다.

[Unit]  
Description=PowerDNS-Admin  
Requires=powerdns-admin.socket  
After=network.target  
  
[Service]  
PIDFile=/run/powerdns-admin/pid  
User=pdns  
Group=pdns  
WorkingDirectory=/opt/powerdns-admin  
ExecStartPre=+mkdir -p /run/powerdns-admin/  
ExecStartPre=+chown pdns:pdns -R /run/powerdns-admin/  
ExecStart=/usr/local/bin/gunicorn --pid /run/powerdns-admin/pid --bind unix:/run/powerdns-admin/socket 'powerdnsadmin:create_app()'  
ExecReload=/bin/kill -s HUP $MAINPID  
ExecStop=/bin/kill -s TERM $MAINPID  
PrivateTmp=true  
  
[Install]  
WantedBy=multi-user.target

파일을 저장하고 편집기를 종료합니다.

다음으로 PowerDNS-Admin을 위한 새로운 systemd 소켓 파일 ‘ /etc/systemd/system/powerdns-admin.socket ‘을 아래의 nano 편집기를 사용하여 생성합니다.

sudo nano /etc/systemd/system/powerdns-admin.socket

파일에 다음 구성을 추가합니다.

[Unit]  
Description=PowerDNS-Admin socket  
  
[Socket]  
ListenStream=/run/powerdns-admin/socket  
  
[Install]  
WantedBy=sockets.target

파일을 저장하고 편집기를 종료합니다.

이제 아래의 nano 편집기 명령을 사용하여 새로운 구성 파일 ‘/etc/tmpfiles.d/powerdns-admin.conf’를 생성합니다.

sudo nano /etc/tmpfiles.d/powerdns-admin.conf

파일에 다음 구성을 추가합니다.

d /run/powerdns-admin 0755 pdns pdns -

파일을 저장하고 편집기를 종료합니다.

새 systemd 서비스 파일과 새로운 구성을 추가한 후, 아래 명령을 실행하여 systemd 관리자를 다시 로드하고 새로운 서비스 파일을 적용합니다.

sudo systemctl daemon-reload

이제 아래의 systemctl 명령을 통해 PowerDNS-Admin 서비스를 시작하고 활성화합니다. PowerDNS-Admin은 이제 gunicorn으로 실행되며 ‘ /run/powerdns-admin/ ‘ 디렉토리에 있는 소켓 파일을 엽니다.

sudo systemctl start powerdns-admin.socket powerdns-admin.service  
sudo systemctl enable powerdns-admin.socket powerdns-admin.service

setup powerdns-admin as service

마지막으로 아래 명령을 실행하여 PowerDNS-Admin 서비스를 확인하고 서비스가 실행 중인지 확인합니다.

sudo systemctl status powerdns-admin.service powerdns-admin.socket

아래 출력에서 powerdns-admin.service와 powerdns-admin.socket이 실행 중이며 둘 다 활성화되어 있는 것을 확인할 수 있습니다. 두 서비스는 시스템 시작 시 자동으로 실행됩니다.

verify pdns services

PowerDNS-Admin을 위한 리버스 프록시로 Nginx 설치

이 단계에서는 PowerDNS-Admin을 위한 리버스 프록시로 Nginx를 설정합니다.

아래의 dnf 명령을 실행하여 Rocky Linux 서버에 Nginx를 설치합니다. 확인 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 진행합니다.

sudo dnf install nginx

다음으로 아래의 nano 편집기를 사용하여 새로운 Nginx 서버 블록 ‘/ etc/nginx/conf.d/pdns.conf ‘를 생성합니다.

sudo nano /etc/nginx/conf.d/pdns.conf

파일에 다음 구성을 추가하고 도메인 이름을 변경해야 합니다. 이 예제에서는 PowerDNS-Admin을 위해 도메인 ‘pdns.howtoforge.local’을 사용합니다.

server {  
        listen                  80;  
        server_name             pdns.howtoforge.local;  
        return 301 https://$http_host$request_uri;  
}  
  
server {  
        listen                  443 ssl http2;  
        server_name             pdns.howtoforge.local;  
        index                   index.html index.htm;  
        error_log               /var/log/nginx/error_powerdnsadmin.log error;  
        access_log              off;  
  
        ssl_certificate                 /etc/letsencrypt/live/pdns.howtoforge.local/fullchain.pem;  
        ssl_certificate_key             /etc/letsencrypt/live/pdns.howtoforge.local/privkey.pem;  
        #ssl_dhparam                     path_to_your_dhparam.pem;  
        ssl_prefer_server_ciphers       on;  
        ssl_ciphers                     'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';  
        ssl_session_cache               shared:SSL:10m;  
  
        client_max_body_size            10m;  
        client_body_buffer_size         128k;  
        proxy_redirect                  off;  
        proxy_connect_timeout           90;  
        proxy_send_timeout              90;  
        proxy_read_timeout              90;  
        proxy_buffers                   32 4k;  
        proxy_buffer_size               8k;  
        proxy_set_header                Host $http_host;  
        proxy_set_header                X-Scheme $scheme;  
        proxy_set_header                X-Real-IP $remote_addr;  
        proxy_set_header                X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_set_header                X-Forwarded-Proto $scheme;  
        proxy_headers_hash_bucket_size  64;  
  
        location ~ ^/static/  {  
                include         mime.types;  
                root            /opt/powerdns-admin/powerdnsadmin;  
                location        ~* \\.jpg|jpeg|png|gif$ { expires 365d; }  
                location        ~* ^.+\.(css|js)$ { expires 7d; }  
        }  
  
        location ~ ^/upload/  {  
                include         mime.types;  
                root            /opt/powerdns-admin;  
                location        ~* \\.jpg|jpeg|png|gif$ { expires 365d; }  
                location        ~* ^.+\.(css|js)$ { expires 7d; }  
        }  
  
        location / {  
                proxy_pass              http://unix:/run/powerdns-admin/socket;  
                proxy_read_timeout      120;  
                proxy_connect_timeout   120;  
                proxy_redirect          http:// $scheme://;  
        }  
}

파일을 저장하고 편집기를 종료합니다.

다음으로 아래 명령을 실행하여 Nginx 구성을 확인하고 구성이 올바른지 확인합니다. ‘ syntax ok - test is successful ‘와 같은 출력 메시지를 볼 수 있어야 합니다.

sudo nginx -t

이제 아래의 systemctl 명령을 실행하여 Nginx 서비스를 시작하고 활성화합니다.

sudo systemctl start nginx  
sudo systemctl enable nginx

setup nginx

마지막으로 아래 명령을 실행하여 Nginx 서비스를 확인하고 서비스가 실행 중인지 확인합니다.

sudo systemctl status nginx

Nginx 서비스가 실행 중이며 활성화되어 있다는 출력 결과를 볼 수 있어야 합니다. 이를 통해 Nginx 서비스는 시스템 시작 시 자동으로 실행됩니다.

check nginx

PowerDNS-Admin 설치 접근

웹 브라우저를 열고 PowerDNS-Admin 설치의 도메인 이름(예: https://pdns.howtoforge.local)을 방문하면 PowerDNS-Admin 로그인 페이지가 표시됩니다.

Create an account ‘ 링크를 클릭하여 PowerDNS-Admin의 새 관리자 사용자를 설정합니다.

pdns create account

이제 새 사용자, 이메일 및 비밀번호를 입력합니다. 그런 다음 ‘ Register ‘를 클릭하여 확인합니다.

setup admin user

관리자 사용자가 생성된 후, 다시 PowerDNS-Admin 로그인 페이지로 리디렉션됩니다. 새 사용자 관리자와 비밀번호로 로그인한 후 ‘ Sign In ‘을 클릭합니다.

pdns admin login

이제 PowerDNS-Admin 대시보드가 표시됩니다. PowerDNS-Admin이 실행 중이지만 아직 PowerDNS 서버에 연결되어 있지 않습니다.

PowerDNS-Admin과 PowerDNS 서버를 설정하려면 PowerDNS 서버를 통해 구성한 API 키를 PowerDNS-Admin에 추가해야 합니다.

PowerDNS 서버의 API 세부정보를 ‘ PDNS Settings ‘ 섹션에 입력하고 ‘ Update ‘를 클릭합니다.

setup api

PowerDNS-Admin과 PowerDNS 서버가 API를 통해 연결되면 대시보드는 다음 스크린샷과 같아야 합니다.

pdnsadmin dashboard

이제 PowerDNS-Admin 대시보드를 통해 새로운 DNS 레코드를 쉽게 추가하거나 기존 DNS 레코드를 수정할 수 있습니다.

결론

이 가이드에서는 Rocky Linux 서버에 MySQL/MariaDB 데이터베이스와 함께 PowerDNS 서버를 설치하는 방법을 배웠습니다. 또한 Rocky Linux에서 MariaDB 데이터베이스의 기본 배포를 배웠습니다. 마지막으로 PowerDNS 서버의 웹 기반 관리 도구로 사용될 PowerDNS-Admin을 설치하고 구성하는 방법을 배웠습니다. PowerDNS-Admin은 Nginx를 리버스 프록시로 사용하고 MariaDB 데이터베이스 백엔드를 사용하여 실행됩니다.

PowerDNS 서버와 PowerDNS-Admin이 실행 중이므로 이제 웹 관리 대시보드를 통해 DNS 서버를 관리할 수 있습니다. PowerDNS-Admin 관리 대시보드를 통해 DNS 레코드를 추가, 편집 또는 삭제할 수 있습니다.

Share: X/Twitter LinkedIn

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

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