GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal PowerDNS dan Poweradmin di CentOS 7

PowerDNS (pdns) adalah server DNS open source yang ditulis dalam C++ dan dirilis di bawah Lisensi GPL. Ini telah menjadi alternatif yang baik untuk server DNS tradisional Bind, dirancang dengan kinerja yang lebih baik dan kebutuhan memori yang rendah. PowerDNS menyediakan dua produk, server Authoritative, dan Recursor. Server PowerDNS Authoritative dapat dikonfigurasi melalui backend yang berbeda, termasuk file zona Bind biasa, RDBMS seperti MySQL, PostgreSQL, SQLite3 atau LDAP.

Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengonfigurasi server PowerDNS Authoritative dengan server database MariaDB sebagai Backend dan menggunakan Poweradmin untuk pengelolaan DNS yang mudah.

Prasyarat

  • Server CentOS 7
  • Hak istimewa root

Apa yang akan kami lakukan:

  1. Instal Repositori EPEL dan Remi
  2. Instal dan Konfigurasi MariaDB
  3. Instal PowerDNS
  4. Instal Poweradmin
  5. Pasca-Instalasi Poweradmin
  6. Buat Zona Sampel

Langkah 1 - Instal Repositori EPEL dan Remi

Pertama-tama, kita perlu menginstal dependensi untuk instalasi PowerDNS. Kita akan menginstal repositori EPEL dan REMI untuk instalasi PHP 7.2.

Instal repositori EPEL dan PHP Remi menggunakan perintah berikut.

yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Setelah repositori ini ditambahkan ke sistem, instal paket 'yum-utils'.

yum -y install yum-utils

Dan aktifkan repositori PHP 7.2 Remi menggunakan perintah berikut.

yum-config-manager --enable remi-php72

Langkah 2 - Instal dan Konfigurasi MariaDB

Server PowerDNS Authoritative memiliki dukungan untuk backend yang berbeda, termasuk server database MySQL/MariaDB. Istilah 'backend' adalah penyimpanan data yang akan dikonsultasikan oleh server yang berisi catatan DNS (dan beberapa meta-data). Dan untuk panduan ini, kita akan menggunakan MariaDB sebagai backend.

Instal MariaDB menggunakan perintah yum berikut.

yum -y install mariadb mariadb-server

Setelah penginstalan selesai, mulai layanan MariaDB dan tambahkan ke waktu boot startup.

systemctl start mariadb
systemctl enable mariadb

Selanjutnya, kita akan mengonfigurasi kata sandi root untuk MariaDB menggunakan alat interaktif bernama 'mysql_secure_installation'.

Jalankan perintah di bawah ini.

mysql_secure_installation

Dan Anda akan diminta untuk mengonfigurasi kata sandi root dari server database. Ketik 'Y' untuk menyiapkan kata sandi root dan ketik kata sandi yang kuat.

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

Untuk yang lainnya, ketik saja 'Y' untuk ya.

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

Hasilnya, Anda telah menginstal server database MariaDB dan menyiapkan kata sandi root untuk otentikasi.

Selanjutnya, kita akan membuat database dan user baru untuk instalasi PowerDNS. Masuk ke shell MySQL dengan root pengguna dan kata sandi Anda.

Jalankan perintah MySQL di bawah ini.

mysql -u root -p
PASSWORD

Sekarang buat database baru bernama 'powerdns' dan berikan semua hak istimewa database kepada pengguna baru bernama 'pdns' dengan kata sandi 'pdnspassword2018'.

create database powerdns;
grant all privileges on powerdns.* to [email protected] identified by 'pdnspassword2018';
flush privileges;

Setelah itu, buat struktur tabel untuk database PowerDNS dengan menjalankan query MySQL berikut di bawah ini.

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;

Hasilnya, database MySQL/MariaDB dan pengguna untuk instalasi PowerDNS telah dibuat.

Langkah 3 - Instal PowerDNS

Instal PowerDNS dan semua paket yang diperlukan menggunakan perintah berikut.

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

Setelah menginstal paket PowerDNS, buka direktori '/etc/pdns/' dan edit file konfigurasi 'pdns.conf' menggunakan editor vim.

cd /etc/pdns/
vim pdns.conf

Secara default, PowerDNS menggunakan 'bind' sebagai backend. Jadi, ketik komentar '#' di depan konfigurasi 'launch=bind' dan tempel konfigurasi backend MySQL seperti di bawah ini.

#launch=bind

launch=gmysql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=pdnspassword2018
gmysql-dbname=powerdns

Simpan dan tutup.

Sekarang mulai layanan pdns dan tambahkan ke waktu boot startup.

systemctl start pdns
systemctl enable pdns

Setelah itu, tambahkan layanan DNS ke firewall.

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

Dan layanan PowerDNS aktif dan berjalan, periksa menggunakan perintah berikut.

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

Hasilnya, Anda akan mendapatkan layanan pdns aktif dan berjalan pada port 53 dan mendapatkan respons dari server PowerDNS.

Langkah 4 - Instal Poweradmin

Pada langkah ini, kita akan menginstal manajemen DNS untuk PowerDNS yang disebut 'Poweradmin'. Ini adalah aplikasi web berbasis PHP, jadi kita perlu menginstal PHP dan server web untuk menjalankan aplikasi.

Instal server web httpd dan paket PHP menggunakan perintah berikut.

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

Setelah instalasi, kita perlu menginstal paket PHP Pear tambahan. Jalankan perintah berikut.

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

Setelah instalasi httpd dan PHP selesai, mulai layanan httpd dan tambahkan ke waktu boot startup.

systemctl start httpd
systemctl enable httpd

Selanjutnya, buka direktori '/var/www/html' dan unduh kode sumber poweradmin.

cd /var/www/html/
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz

Ekstrak file terkompresi poweradmin dan ganti namanya.

tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7/ poweradmin/

Setelah itu, tambahkan protokol HTTP dan HTTPS ke firewall.

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

Dan kami siap untuk pasca-instalasi poweradmin.

Langkah 5 - Pasca-Instalasi Poweradmin

Buka browser web Anda dan ketik alamat IP server plus URL jalur /poweradmin/install/ untuk penginstalan. Milik saya adalah:

http://10.9.9.10/poweradmin/install/

Pilih bahasa pilihan Anda dan klik tombol 'Pergi ke Langkah 2'.

Sekarang cukup klik tombol 'Pergi ke Langkah 3'.

Dan Anda akan ditampilkan untuk konfigurasi database. Ketik detail database PowerDNS yang telah kita buat dan kata sandi admin untuk PowerDNS.

Klik tombol 'Pergi ke Langkah 4'.

Setelah itu, Anda perlu membuat pengguna baru dengan hak akses terbatas. Ketik detail seperti berikut dan ubah pengguna, kata sandi, dll dengan milik Anda.

Sekarang klik tombol 'Pergi ke Langkah 5'.

Dan Anda akan ditampilkan halaman seperti di bawah ini.

Buka lagi terminal server Anda, login dengan user root dan password. Kemudian jalankan query MySQL seperti pada halaman.

mysql -u root -p
PASSWORD

GRANT SELECT, INSERT, UPDATE, DELETE
ON powerdns.*
TO 'hakase'@'localhost'
IDENTIFIED BY 'hakase-labs123';

Sekarang kembali ke browser web dan klik tombol 'Pergi ke Langkah 6'.

Dan Anda akan ditampilkan halaman seperti di bawah ini.

Pemasang tidak dapat membuat konfigurasi baru '../inc/config.inc.php'. Jadi, kita perlu membuatnya secara manual.

Kembali ke server terminal, masuk ke direktori '/var/www/html/poweradmin' dan buat file konfigurasi baru 'inc/config.inc.php'.

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

Sekarang rekatkan skrip PHP pada halaman ke dalamnya.

<?php

$db_host                = 'localhost';
$db_user                = 'hakase';
$db_pass                = 'hakase-labs123';
$db_name                = 'powerdns';
$db_type                = 'mysql';
$db_layer               = 'PDO';

$session_key            = '[email protected]=uetwJeD2#uApgO)2Ekj+S#oN1Khhoj';

$iface_lang             = 'en_EN';

$dns_hostmaster         = 'server.hakase-labs.io';
$dns_ns1                = 'ns1.hakase-labs.io';
$dns_ns2                = 'ns2.hakase-labs.io';

Simpan dan tutup, lalu kembali ke browser dan klik tombolnya.

Dan instalasi selesai.

Opsional:

Jika Anda ingin mendukung URL yang digunakan oleh penyedia Dinamis lainnya, salin file htaccess.

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

Setelah itu, Anda HARUS menghapus direktori 'install'.

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

Kembali lagi ke browser web Anda dan masuk ke dasbor Poweradmin menggunakan URL seperti di bawah ini.

http://10.9.9.10/poweradmin/

Masuk dengan pengguna default 'admin' dan kata sandi, klik tombol 'Go'.

Dan sebagai hasilnya, Anda akan diperlihatkan dasbor Poweradmin dan instalasi selesai.

Langkah 6 - Buat Zona Sampel dan Data DNS

Pada tahap ini, kita akan menguji instalasi PowerDNS dan Poweradmin dengan membuat zona DNS baru untuk domain bernama 'emma.io'.

Pada dasbor Poweradmin, klik menu 'Tambahkan zona master'.

Tetapkan nama zona dengan nama domain 'emaa.io' dan klik tombol 'Tambahkan zona'.

Klik menu 'Daftar zona' untuk mendapatkan semua zona yang tersedia. Dan klik tombol 'edit' untuk zona 'emma.io'.

Klik menu 'Daftar zona' untuk mendapatkan semua zona yang tersedia. Dan klik tombol 'edit' untuk zona 'emma.io'.

Sekarang klik tombol 'Add record' dan kita berhasil menambahkan DNS zone dan DNS record untuk domain bernama 'emma.io'.

Selanjutnya, kita akan menguji domain 'emma.io' menggunakan perintah utilitas DNS 'dig'.

Periksa server nama atau catatan ns dari domain 'emma.io'.

dig NS emma.io @10.9.9.10

Periksa catatan DNS A dari domain 'emma.io'.

dig A emma.io @10.9.9.10

Dan Anda akan ditampilkan domain 'emma.io' memiliki server nama dari server DNS kami 'ns1.hakase-labs.io', dan 'A' dari nama domain itu sesuai dengan konfigurasi kami di atas dengan alamat IP server '10.9.9.11'.

Akhirnya, instalasi dan konfigurasi PowerDNS dan Poweradmin pada CentOS 7 telah berhasil diselesaikan.


Cent OS
  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara menginstal Node.js dan NPM di CentOS

  3. Instal PowerDNS dan Poweradmin pada CentOS 7 VPS

  1. Cara Menginstal penggalian di CentOS 7 dan 8

  2. Cara Instal Node.js dan NPM di CentOS 7

  3. Cara Menginstal R di CentOS 7

  1. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi GitLab di CentOS 7

  3. Cara Instal dan Konfigurasi Redmine di CentOS 7