В этом уроке я покажу вам, как установить PowerDNS и PDNSManager на CentOS 7 VPS с Nginx, MariaDB и PHP-FPM. PowerDNS — это высокопроизводительный и надежный DNS-сервер, написанный на C ++ и используемый в качестве альтернативы BIND. Это руководство должно работать и на других системах Linux VPS, но было протестировано и написано для CentOS 7 VPS
Подключаю Epel и провожу обновление системы
1 2 | yum install epel-release yum -y update |
Установка MariaDB
1 | yum install mariadb-server mariadb |
Запуск и установка Mariadb в автозагрузку
1 2 | systemctl start mariadb.service systemctl enable mariadb.service |
Очень важно защитить ваш сервер MariaDB, запустить следующий скрипт перед созданием и заполнением баз данных.
1 | mysql_secure_installation |
После того, как вы закончите с вышеприведенным шагом, войдите в систему в качестве root MariaDB и создайте новую базу данных и таблицы:
1 | mysql -uroot -p |
и создайте базу, и пользователя нашей базы
1 2 | CREATE DATABASE powerdns; GRANT ALL PRIVILEGES ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'powerdnsPassword'; |
Перейдем к установке и настройке последней версии PowerDNS
1 | yum install pdns-backend-mysql pdns |
Ниже приведен мой конфиг pdns.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | setuid=pdns setgid=pdns launch=bind allow-axfr-ips=1.1.1.1 #IP Slave сервера config-dir=/etc/pdns daemon=yes disable-axfr=no guardian=yes local-address=0.0.0.0 local-port=53 master=yes module-dir=/lib64/pdns socket-dir=/var/run version-string=IT-SVCDNS launch=gmysql gmysql-host=localhost gmysql-port=3306 gmysql-dbname=powerBD gmysql-user=powerUSER gmysql-password=powerPASS gmysql-dnssec=no |
Далее есть 2 варианта использования
1. Установить web panel на подобии PManager, Power Admin ип.
Устанавливаются в основном панели через инсталяторы, поэтому все необходимые таблицы будут экспортированы в mysql
2. Управлять через phpmyadmin
Если вы захотели делать все ручками, то дамп прилагается:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | CREATE TABLE `domainmetadata` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `domain_id` INT(11) NOT NULL, `kind` VARCHAR(32) DEFAULT NULL, `content` text, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `domains` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `master` VARCHAR(128) DEFAULT NULL, `last_check` INT(11) DEFAULT NULL, `type` VARCHAR(6) NOT NULL, `notified_serial` INT(11) DEFAULT NULL, `account` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_index` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; CREATE TABLE `options` ( `name` VARCHAR(255) NOT NULL, `value` VARCHAR(2000) DEFAULT NULL, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `permissions` ( `user` INT(11) NOT NULL, `domain` INT(11) NOT NULL, PRIMARY KEY (`user`,`domain`), KEY `domain` (`domain`), CONSTRAINT `permissions_ibfk_1` FOREIGN KEY (`domain`) REFERENCES `domains` (`id`) ON DELETE CASCADE, CONSTRAINT `permissions_ibfk_2` FOREIGN KEY (`user`) REFERENCES `user` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `records` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `domain_id` INT(11) DEFAULT NULL, `name` VARCHAR(255) DEFAULT NULL, `type` VARCHAR(6) DEFAULT NULL, `content` VARCHAR(255) DEFAULT NULL, `ttl` INT(11) DEFAULT NULL, `prio` INT(11) NOT NULL DEFAULT '0', `change_date` INT(11) DEFAULT NULL, `disabled` tinyint(1) DEFAULT '0', `auth` tinyint(1) DEFAULT '1', PRIMARY KEY (`id`), KEY `rec_name_index` (`name`), KEY `nametype_index` (`name`,`type`), KEY `domain_id` (`domain_id`), CONSTRAINT `records_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domains` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1; CREATE TABLE `remote` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `record` INT(11) NOT NULL, `description` VARCHAR(255) NOT NULL, `type` VARCHAR(20) NOT NULL, `security` VARCHAR(2000) NOT NULL, `nonce` VARCHAR(255) DEFAULT NULL, PRIMARY KEY (`id`), KEY `record` (`record`), CONSTRAINT `remote_ibfk_1` FOREIGN KEY (`record`) REFERENCES `records` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |