使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

这是续集。
您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

什么是PowerDNS? PowerDNS是一种开放源代码的权威名称服务器,可作为BIND DNS的替代方法。 PowerDNS以最小的内存使用量提供了更高的性能。与递归名称服务器不同,权威名称服务器直接从其自身提供记录,递归名称服务器向其他名称服务器查询所需的答案。本指南描述了如何使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS。

步骤1:准备服务器

首先,禁用CentOS SElinux,以免干扰您正在执行的安装。

$ sudo vim /etc/selinux/config

如图所示编辑该行以禁用SElinux。保存文件并重新启动服务器

# This file controls the state of SELinux on the system. 
# SELINUX= can take one of these three values: 
#     enforcing - SELinux security policy is enforced. 
#     permissive - SELinux prints warnings instead of enforcing. 
#     disabled - No SELinux policy is loaded. 
SELINUX=disabled
# SELINUXTYPE= can take one of these three values: 
#     targeted - Targeted processes are protected, 
#     minimum - Modification of targeted policy. Only selected processes are protected.  
#     mls - Multi Level Security protection. 
SELINUXTYPE=targeted

重新启动服务器

sudo reboot

步骤2:安装EPEL和Remi存储库。

您必须首先安装PowerDNS依赖项。在这种情况下,请安装EPEL存储库和REMI for PHP。执行以下命令。

sudo dnf -y install epel-release
sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

添加存储库后,以下命令将启用PHP 7.4 Remi存储库。

sudo dnf module enable php:remi-7.4

步骤3:安装和配置MariaDB

通过运行以下命令在服务器上安装MariaDB:

sudo dnf -y install mariadb mariadb-server

安装完成后,启动MariaDB服务,并使其在引导时启动。

sudo systemctl start mariadb
sudo systemctl enable mariadb

MariaDB服务正在运行。您需要保护它并设置root密码。使用下面显示的命令。

sudo mysql_secure_installation

回答提示如下:

Answer the prompts as shown:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB 
     SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY! 

In order to log into MariaDB to secure it, we'll need the current 
password for the root user.  If you've just installed MariaDB, and 
you haven't set the root password yet, the password will be blank, 
so you should just press enter here. 

Enter current password for root (enter for none):  Press Enter
OK, successfully used password, moving on... 

Setting the root password ensures that nobody can log into the MariaDB 
root user without the proper authorization. 

Set root password? [Y/n] y
New password:  Enter New Password
Re-enter new password:  Repeat New Password 
Password updated successfully! 
Reloading privilege tables.. 
... Success! 
By default, a MariaDB installation has an anonymous user, allowing anyone 
to log into MariaDB without having to have a user account created for 
them.  This is intended only for testing, and to make the installation 
go a bit smoother.  You should remove them before moving into a 
production environment. 

Remove anonymous users? [Y/n] Y 
... Success! 

Normally, root should only be allowed to connect from 'localhost'.  This 
ensures that someone cannot guess at the root password from the network. 

Disallow root login remotely? [Y/n] Y 
... Success! 

By default, MariaDB comes with a database named 'test' that anyone can 
access.  This is also intended only for testing, and should be removed 
before moving into a production environment. 

Remove test database and access to it? [Y/n] Y 
- Dropping test database... 
... Success! 
- Removing privileges on test database... 
... Success! 
Reloading the privilege tables will ensure that all changes made so far 
will take effect immediately. 

Reload privilege tables now? [Y/n] Y 
... Success! 

Cleaning up... 

All done!  If you've completed all of the above steps, your MariaDB

接下来,您需要为PowerDNS安装创建一个数据库,并添加一个用户来管理该数据库。首先,使用以下命令登录到MariaDB。

$ mysql -u root -p 

输入您在上方设置的密码以创建数据库和用户,并为用户授予数据库的所有特权。

Enter password:  Enter your DB root password
Welcome to the MariaDB monitor.  Commands end with ; or g. 
Your MariaDB connection id is 17 
Server version: 10.3.17-MariaDB MariaDB Server 

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. 

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. 

MariaDB [(none)]> create database powerdns; 
Query OK, 1 row affected (0.000 sec) 

MariaDB [(none)]> create user 'pdns' identified by 'mypassword' ;
Query OK, 0 rows affected (0.000 sec) 

MariaDB [(none)]>  grant all privileges on powerdns.* to 'pdns'@'localhost' identified by 'mypassword';          
Query OK, 0 rows affected (0.000 sec) 

MariaDB [(none)]> flush privileges; 
Query OK, 0 rows affected (0.001 sec) 

创建数据库和用户后,执行以下所示的MySQL命令来创建已创建数据库的表结构。

use powerdns;

运行以下MySQL命令

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)
 ) Engine=InnoDB;
 
 CREATE UNIQUE INDEX name_index ON domains(name);
 
 
 CREATE TABLE records (
   id                    BIGINT AUTO_INCREMENT,
   domain_id             INT DEFAULT NULL,
   name                  VARCHAR(255) DEFAULT NULL,
   type                  VARCHAR(10) DEFAULT NULL,
   content               VARCHAR(64000) DEFAULT NULL,
  ttl                   INT DEFAULT NULL,
   prio                  INT DEFAULT NULL,
   change_date           INT DEFAULT NULL,
   disabled              TINYINT(1) DEFAULT 0,
   ordername             VARCHAR(255) BINARY DEFAULT NULL,
   auth                  TINYINT(1) DEFAULT 1,
   PRIMARY KEY (id)
 ) Engine=InnoDB;
 
 CREATE INDEX nametype_index ON records(name,type);
 CREATE INDEX domain_id ON records(domain_id);
 CREATE INDEX recordorder ON records (domain_id, ordername);
 
 
 CREATE TABLE supermasters (
   ip                    VARCHAR(64) NOT NULL,
   nameserver            VARCHAR(255) NOT NULL,
   account               VARCHAR(40) NOT NULL,
   PRIMARY KEY (ip, nameserver)
 ) Engine=InnoDB;
 
 
 CREATE TABLE comments (
   id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
   name                  VARCHAR(255) NOT NULL,
   type                  VARCHAR(10) NOT NULL,
   modified_at           INT NOT NULL,
   account               VARCHAR(40) NOT NULL,
   comment               VARCHAR(64000) NOT NULL,
   PRIMARY KEY (id)
 ) Engine=InnoDB;
CREATE INDEX comments_domain_id_idx ON comments (domain_id);
 CREATE INDEX comments_name_type_idx ON comments (name, type);
 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 
 
 CREATE TABLE domainmetadata (
   id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
   kind                  VARCHAR(32),
   content               TEXT,
   PRIMARY KEY (id)
 ) Engine=InnoDB;
 
 CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
 
 
 CREATE TABLE cryptokeys (
 id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
   flags                 INT NOT NULL,
   active                BOOL,
   content               TEXT,
   PRIMARY KEY(id)
 ) Engine=InnoDB;
 
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
 CREATE TABLE tsigkeys (
   id                    INT AUTO_INCREMENT,
   name                  VARCHAR(255),
   algorithm             VARCHAR(50),
   secret                VARCHAR(255),
   PRIMARY KEY (id)
 ) Engine=InnoDB;
 
 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
 
 quit;

您可以查看该表是否如下创建。

MariaDB [powerdns]> show tables; 
+--------------------+ 
| Tables_in_powerdns | 
+--------------------+ 
| comments           | 
| cryptokeys         | 
| domainmetadata     | 
| domains            | 
| records            | 
| supermasters       | 
| tsigkeys           | 
+--------------------+ 
7 rows in set (0.000 sec)

步骤4:在CentOS 8上安装PowerDNS

首先,您需要默认禁用CentOS随附的systemd-resolve。这是为了防止端口冲突,因为它也使用PowerDNS。 港口53

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

另外,删除符号链接的resolve.conf并创建一个新的。

$ ls -lh /etc/resolv.conf
$ echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

然后安装PowerDNS。使用以下命令。

sudo dnf -y install pdns pdns-backend-mysql bind-utils

默认的PowerDNS配置文件是/etc/pdns/pdns.conf。在您喜欢的编辑器中打开文件。默认情况下,PowerDNS使用bind作为后端。您需要注释掉该行以禁用此功能 发射=绑定 允许MySQL后端配置。如下编辑文件。

#launch=bind
launch=gmysql 
gmysql-host=localhost 
gmysql-user=pdns 
gmysql-password=mypassword 
gmysql-dbname=powerdns

保存您的更改并关闭文件。启动PowerDNS服务,并使其在启动时启动。

sudo systemctl start pdns.
sudo systemctl enable pdns

允许通过防火墙的DNS服务

sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd –reload

此时,PowerDNS已安装并正在运行。您可以使用以下命令检查状态。

$ systemctl status pdns

输出

步骤5:在CentOS 8上安装PowerAdmin

PowerAdmin是基于Web的应用程序,用于基于PHP管理PowerDNS。要安装它,必须首先安装PHP,这样您的应用程序才能运行。

sudo dnf -y 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

还要安装附加的php pear软件包,如下所示:

sudo dnf -y install php-pear-DB

启动httpd服务并允许其在系统启动时启动

sudo systemctl start httpd
sudo systemctl enable httpd

使用以下命令检查httpd服务

systemctl status httpd

输出

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

接下来,您需要下载PowerDNS代码。更改为/ var / www / html并运行sown命令

wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz

提取存档文件并为其重新命名

tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7/ cd /var/www/html/poweradmin/

允许HTTP和HTTPS协议通过防火墙。

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd –reload

此时,您可以进行PowerAdmin联机配置。打开浏览器并输入 http:/// poweradmin /安装..您会看到这样的页面

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

选择并单击您的语言 前往步骤2 在下一页上 转到步骤3。

进入配置数据库页面。现在,使用您在创建PowerDNS数据库时使用的详细信息。

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

接下来,创建一个具有有限权限的用户。

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

点击 转到步骤5。 显示添加的用户的详细信息。此时,返回到终端并运行以下MySQL命令以授予新用户名为特权。

GRANT SELECT, INSERT, UPDATE, DELETE  ON powerdns.* TO 'lorna'@'localhost' IDENTIFIED BY 'mypassword'

然后返回到您的Web浏览器,然后单击继续执行第6步。显示类似于以下内容的页面,要求您手动创建“ ../inc/config.inc.php”文件。

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

在终端中,运行以下命令。

cd /var/www/html/poweradmin
sudo vim inc/config.inc.php

粘贴网页内容并保存文件。

在浏览器中单击返回 转到步骤7。..您将看到配置已完成。

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

要支持其他动态提供程序使用的URL,请运行以下命令。

cd /var/www/html/poweradmin
sudo cp install/htaccess.dist .htaccess

必须 去掉 '安装’转到目录。

sudo rm -rf /var/www/html/poweradmin/install

返回浏览器并输入: http:/// poweradmin..

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

使用为用户“ admin”和管理员用户设置的密码登录, ..显示类似于以下内容的页面。

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNS

安装完成!现在,您可以添加主区域。

这是有关如何使用MariaDB和PowerAdmin在CentOS 8上安装PowerDNS的分步指南。请查看下面的有趣指南!

  • 在CentOS 8 / RHEL 8上配置主/从BIND DNS服务器
  • 如何在Windows Server 2019中安装和配置DNS服务器
  • 绑定vs dnsmasq vs PowerDNS vs解除绑定
  • 在具有MariaDB后端的Ubuntu 18.04 / Debian 9上安装PowerDNS和PowerDNS-Admin

Linux学习课程:


Linux精通:11.5小时内掌握Linux命令行

Linux精通:11.5小时内掌握Linux命令行

★★★★★
(8905)

$ 16.25

$ 174.11

有现货

立即购买

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNSUdemy.com


Linux管理员新手训练营:从入门到高级

Linux管理员新手训练营:从入门到高级

★★★★☆
(13333)

$ 13.93

$ 150.89

有现货

立即购买

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNSUdemy.com


完成Linux培训课程以赢得Dream IT Job 2020

完成Linux培训课程以赢得Dream IT Job 2020

★★★★★
(6607)

$ 15.09

$ 162.50

有现货

立即购买

使用MariaDB和PowerDNS-Admin在CentOS 8上安装PowerDNSUdemy.com

您可以通过以下链接以PDF格式下载本文,以为我们提供支持。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

Sidebar