Log in Register

Login to your account

Username *
Password *
Remember Me

Create an account

Fields marked with an asterisk (*) are required.
Name *
Username *
Password *
Verify password *
Email *
Verify email *

Tài liệu

Install PowerDNS and Poweradmin on CentOS 7 Featured

  • Posted on:  Sunday, 30 August 2020 19:28
  • Written by 

Chào các bạn, để cài đặt PowerDNS trên Centos 7, các bạn làm đúng theo các bước sau nhé.

 

—-> Cập nhật gói yum mới nhất cho CentOS

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
# yum -y install epel-release


—> Cập nhật CentOS

    # yum update -y



—>  Cập nhật thời gian cho hệ thống

    # yum install ntp -y



—> Cập nhật timezone cho hệ thống

    # timedatectl list-timezones # List các timezone để set timezone cho hệ thống
    # timedatectl set-timezone Asia/Ho_Chi_Minh



—> Chạy và cho phép NTPD services khởi động cùng hệ thống
 

    # ntpdate pool.ntp.org # thay pool.ntp.org bang may chu ntp cua ban
    # systemctl start ntpd
    # systemctl enable ntpd.service # CentOS 7.x



—> Tắt Selinux

    # setenforce 0 #hoac co the dung cach duoi, sua file selinux nhu huong dan trong file thanh disable
    # vi /etc/sysconfig/selinux



—> Khởi động lại server

# shutdown -r now hoặc reboot

—> Các bước cài đặt MySQL 5.7:

    # yum install mysql mysql-server

    # rpm -Uvh https:  //repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm #Truong hop can cai goi khac, truy cap trang chu de tim goi thich hop va thay vao duong dan nay

    # yum install mysql-community-server #Truong hop loi do da co MariaDB tien hanh go bang cach sau: yum remove mariadb mariadb-server
    rm -rf /var/lib/mysql If your datadir in /etc/my.cnf points to a different directory, remove that directory instead of /var/lib/mysql


—-> Khởi động và cho phép mySQL khởi động cùng hệ thống :

    # systemctl start mysqld.service
    # systemctl enable mysqld.service



—-> Lấy password tạm thời của MySQL :

    # grep "A temporary password" /var/log/mysqld.log

—-> Cập nhật mật khẩu root :

 

   # mysql_secure_installation # thuc hien cac buoc, sau do kiem tra lai bang lenh duoi
    # mysql -u root -p

</code>


Set root password? [Y/n] Y
New password:
Re-enter new password:

For the others, just type 'Y' to yes.

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y




Run MySQL command below.

mysql -u root -p
 PASSWORD

create database powerdns;
grant all privileges on powerdns.* to pdns@localhost identified by 'Test@123';
flush privileges;



Tạo tables structures cho PowerDNS database

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);
 
 quit;




Lưu ý, tại bước này cần kiểm tra cẩn thận kết quả theo cách sau, nếu bước này kết quả sai, về sau cài sẽ lỗi.

mysql> show tables;
+--------------------+
| Tables_in_powerdns |
+--------------------+
| comments           |
| cryptokeys         |
| domainmetadata     |
| domains            |
| records            |
| supermasters       |
| tsigkeys           |
+--------------------+
7 rows in set (0.00 sec)

mysql> quit;
Bye
[root@pdns ~]# 



--> Install PowerDNS

yum -y install pdns pdns-backend-mysql bind-utils

Sau đó, vi file pdns.conf như sau:

cd /etc/pdns/
vi pdns.conf

Khóa dòng launch=bind và thêm các dòng sau.

 

#launch=bind

launch=gmysql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=Test@123
gmysql-dbname=powerdns



Save and close.

systemctl start pdns
systemctl enable pdns

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

Kiểm tra

netstat -tap | grep pdns
netstat -tulpn | grep 53
dig @10.9.9.10

Kết quả như sau:


[root@pdns pdns]# pkill -9 dnsmasq
[root@pdns pdns]# ps -ef | grep dns
avahi       727      1  0 Aug30 ?        00:00:00 avahi-daemon: running [pdns.local]
root       2730   1858  0 Aug30 ?        00:00:00 /usr/libexec/gvfsd-dnssd --spawner :1.4 /org/gtk/gvfs/exec_spaw/4
pdns       5709      1  1 00:19 ?        00:00:00 /usr/sbin/pdns_server --guardian=no --daemon=no --disable-syslog --log-timestamp=no --write-pid=no
root       5721   2436  0 00:19 pts/0    00:00:00 grep --color=auto dns
[root@pdns pdns]# systemctl restart pdns
[root@pdns pdns]# ps -ef | grep dns
avahi       727      1  0 Aug30 ?        00:00:00 avahi-daemon: running [pdns.local]
root       2730   1858  0 Aug30 ?        00:00:00 /usr/libexec/gvfsd-dnssd --spawner :1.4 /org/gtk/gvfs/exec_spaw/4
pdns       5737      1  0 00:19 ?        00:00:00 /usr/sbin/pdns_server --guardian=no --daemon=no --disable-syslog --log-timestamp=no --write-pid=no
root       5752   2436  0 00:19 pts/0    00:00:00 grep --color=auto dns
[root@pdns pdns]# dig @192.168.1.31

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> @192.168.1.31
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 57008
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1680
;; QUESTION SECTION:
;.                IN    NS

;; Query time: 10 msec
;; SERVER: 192.168.1.31#53(192.168.1.31)
;; WHEN: Mon Aug 31 00:19:45 +07 2020
;; MSG SIZE  rcvd: 28

[root@pdns pdns]#

--> Install Poweradmin


yum -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

yum -y install php-pear-DB php-pear-MDB2-Driver-mysqli

systemctl start httpd
systemctl enable httpd



Chọn ngôn ngữ, sang bước 2, sang bước 3.

Tại bước 3: nhập các thông tin đã tạo bên trên.
Sang bước 4: thêm user riêng có quyền giới hạn để quản lý.

Sang bước 5:

Thực hiện như nội dung trong bước 5, Copy nội dung này và vào terminal để cấu hình trong csdl
Trong VD của mình là;



#############################
mysql -u root -p
 PASSWORD

GRANT SELECT, INSERT, UPDATE, DELETE
ON powerdns.*
TO 'padmin'@'localhost'
IDENTIFIED BY 'Test@123';

flush privileges;
exit

#######################

Trở lại trình duyệt và sang bước 6.

Thực hiện đúng theo hướng dẫn của bước 6: Vào thư mục /var/www/html/poweradmin và tạo file '../inc/config.inc.php' theo đúng nội dung trong bước 6.
. So, we need to create it manually.

Back to the terminal server, go to the '/var/www/html/poweradmin' directory and create a new configuration file 'inc/config.inc.php'.

cd /var/www/html/poweradmin
vi inc/config.inc.php

Lưu lại file và chuyển sang bước 7.

Bước 7 sẽ thông báo quá trình thành công, tài khoản đăng nhập là admin, pass là pass đã lập bên trên: VD của mình là Test@123

Sau đó, có thể thực hiện lệnh sau:



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



Cuối cùng remote thư mục install


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


Vào lại trình duyệt bằng tài khoản admin đã báo trong bước 7 và hưởng thành quả.

http: //IP_maychu/poweradmin


Để xem thêm các bài hướng dẫn chi tiết khác, các bạn vào kênh: Http://youtube.com/huybacnguyen  nhé
Và nếu thấy có ích, thì hãy like và subscribe kênh của mình cho mình thêm động lực nhé!!!

Read 229 times Last modified on Monday, 31 August 2020 19:45

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.