Cnetos7实现WEB管理的PowerDNS

PowerDNS 是一个跨平台的开源DNS服务组件,它是高性能的域名服务器,除了支持普通的BIND配置文件,PowerDNS还可从MySQL,Oracle,PostgreSQL等的数据库读取数据。

PowerDNS安装了Poweradmin(基于php实现),能实现Web管理DNS记录,非常方便

1.安装包:基于EPEL源
	yum install -y pdns pdns-backend-mysql
	安装httpd和php相关包
	yum -y install httpd php php-devel php-gd php-mcrypt php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext
	systemctl start httpd pdns.service
	
	
2.准备mariadb中的数据库,表和用户
	CREATE DATABASE powerdns;
	GRANT ALL ON powerdns.* TO 'powerdns'@'192.168.80.%' IDENTIFIED BY '123456';
	
3.创建powerdns数据库中的表,参看下面文档实现:https://doc.powerdns.com/md/authoritative/backend-generic-mysql/
 登录数据库操作如下:
 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)
) 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);

4.配置PowerDNS使用mariadb作为后台数据存储 vim /etc/pdns/pdns.conf,查找到包含launch= 的行,修改并添加下面的内容
	launch=gmysql
	gmysql-host=192.168.80.120
	gmysql-port=3306
	gmysql-dbname=powerdns
	gmysql-user=powerdns
	gmysql-password=123456

	
5.下载pwoeradmin管理软件
   wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
   tar xvf poweradmin-2.1.7.tgz  
   mv poweradmin-2.1.7 poweradmin
   systemctl start httpd pdns.service
	
6.访问下面地址,启动PowerAdmin的网页安装向导:http://IP/poweradmin/install/
	A.12步骤点一下步。
	B.3步骤:提供先前配置的数据库详情. 说明:poweradmin administartor password: zzhzzjol  是页面登录账号密码。账号为admin. 
		username:powerdns
		passwod:123456
		database types:mysql
		hostname:192.168.80.120
		DB port: 3306
		Database: powerdns
		poweradmin administartor password: zzhzzjol
	C.4步骤:同时为"Poweradmin项目"设置管理员密码,说明:Username:PowerAdmin  Password:zzhzzjol是6步骤创建config.in.php文件配置信息,连接php.
		Username:PowerAdmin
		Password:zzhzzjol
		Hostmaster:dnsserver   #当创建SOA记录指定默认主机管理员,6步骤中的$dns_hostmaster
		Primary nameserver:    #主域名服务器
		Secondary namesever:    #辅域名服务器
	D.5步骤:在数据库中创建用户并授权
		GRANT SELECT, INSERT, UPDATE, DELETE ON powerdns.* TO 'poweradmin'@'192.168.80.%' IDENTIFIED BY 'zzhzzjol';
	E.6步骤:创建/poweradmin/inc/config.in.php文件内容
		<?php
		$db_host		= '192.168.80.120';
		$db_user		= 'poweradmin';
		$db_pass		= 'zzhzzjol';
		$db_name		= 'powerdns';
		$db_type		= 'mysql';
		$db_layer		= 'PDO';
		$session_key	= '^(vK5=P{SRdjnkF=mU7dr}i80Ca6kJ2VasXORa}GA4srAX';
		$iface_lang		= 'en_EN';
		$dns_hostmaster	= 'dnsserver';
		$dns_ns1		= '192.168.80.110';
		$dns_ns2		= '';
	F.安装完毕后,删除install目录(一定要删除)
		rm -rf /var/www/html/poweradmin/install/
		
7.登录http://powerdns服务器IP/poweradmin/   ,账号和密码:admin  zzhzzjol

 

 

 

 

 

 

 

 

posted @ 2022-08-20 11:52  yuanbangchen  阅读(149)  评论(0编辑  收藏  举报