GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur PowerDNS di Ubuntu Linux

Berjuang untuk membuat server DNS yang mendukung ketersediaan dan redundansi tinggi, namun dengan fitur canggih dan modern? PowerDNS adalah solusi terbaik. PowerDNS (pdns) adalah software server DNS sumber terbuka dan gratis untuk sistem operasi mirip Unix.

Dalam artikel ini, Anda akan mempelajari cara menginstal dan mengkonfigurasi PowerDNS dengan database MariaDB di sistem Debian/Ubuntu Linux.

Siap untuk memiliki server DNS yang berfungsi penuh? Langsung masuk!

Prasyarat

Tutorial ini adalah demonstrasi langsung, pastikan Anda memiliki yang berikut ini:

  • Mesin Linux – Tutorial ini menggunakan Debian 11 Bullseye terbaru.
  • Pengguna dengan hak akses root.

Memasang dan Mengonfigurasi Database MariaDB

Secara default, PowerDNS mendukung banyak backend seperti backend database (PostgreSQL dan MySQL/MariaDB), file zona ikat, dan API JSON. Dalam tutorial ini, Anda akan menggunakan database MariaDB sebagai backend database PowerDNS.

1. Pertama, buka terminal dan SSH ke server Anda.

2. Selanjutnya, jalankan apt install perintah di bawah ini untuk menginstal dependensi paket dasar (software-properties-common dirmngr apt-transport-https ) ke sistem Anda.

sudo apt install software-properties-common dirmngr apt-transport-https -y

3. Jalankan perintah di bawah ini untuk menambahkan repositori MariaDB dan kunci GPG ke sistem Anda. Konfigurasi repositori MariaDB disimpan di /etc/apt/sources.list.d/ direktori, sedangkan kunci GPG disimpan di /etc/apt/trusted.gpg. direktori.

# Add MariaDB repository for Debian system
sudo add-apt-repository 'deb [arch=amd64,i386,arm64,ppc64el] https://mirror.23m.com/mariadb/repo/10.6/debian bullseye main'

# Add GPG key for MariaDB repository
wget -qO- https://mariadb.org/mariadb_release_signing_key.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/mariadb_release_signing_key.gpg

4. Sekarang, jalankan perintah berikut untuk menyegarkan repositori dan menginstal paket (mariadb-server ).

Layanan MariaDB dimulai setelah instalasi pada distribusi Debian dan Ubuntu dan akan berjalan secara otomatis saat boot/startup sistem.

# refresh package index
sudo apt update

# install MariaDB database
sudo apt install mariadb-server -y

5. Jalankan mysql_secure_installation perintah di bawah ini untuk mengamankan instalasi MariaDB Anda. mysql_secure_installation

mysql_secure_installation

6. Tekan Enter pada layar terminal ketika diminta untuk mengetikkan root kata sandi untuk MariaDB karena instalasi MariaDB default datang tanpa kata sandi.

7. Masukkan Y pada prompt yang ditunjukkan di bawah ini untuk mengubah autentikasi default menjadi unix_socket .

8. Masukkan Y lagi di prompt di bawah ini dan ketik kata sandi baru yang kuat untuk server MariaDB.

9. Sekarang masukkan Y pada prompt yang ditunjukkan di bawah ini. Instalasi MariaDB default dilengkapi dengan pengguna anonim default pada tingkat produksi, jadi Anda harus menghapus pengguna anonim.

10. Pada prompt berikutnya, masukkan Y untuk menonaktifkan login jarak jauh untuk pengguna root. Anda harus melarang root MariaDB pengguna untuk login dari jarak jauh dari server lain untuk alasan keamanan.

11. Ketik Y lagi untuk menghapus database pengujian default dan menghapus semua akses dan izin.

12. Terakhir, ketik Y lagi untuk memuat ulang semua hak istimewa tabel dan menerapkan perubahan baru ke server MariaDB.

Setelah semua konfigurasi MariaDB selesai, Anda akan menerima pesan konfirmasi seperti gambar di bawah.

Menginstal PowerDNS di Debian/Ubuntu Linux

Setelah Anda menyelesaikan instalasi MariaDB untuk backend database PowerDNS, Anda siap untuk menginstal paket PowerDNS. Anda akan menambahkan repositori PowerDNS resmi dan kunci GPG dan menginstal paket server PowerDNS.

Untuk menginstal paket PowerDNS terbaru dari repositori resmi:

1. Jalankan perintah di bawah ini untuk menambahkan repositori PowerDNS dan kunci GPG ke sistem Anda.

# Download PowerDNS GPG Key
wget -qO- https://repo.powerdns.com/FD380FBB-pub.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/pdns.gpg

# Adding the PowerDNS Repository for Debian 11 Bullseye System
echo "deb [arch=amd64] http://repo.powerdns.com/debian bullseye-auth-45 main" | sudo tee /etc/apt/sources.list.d/pdns.list

# Adding the PowerDNS Repository for Ubuntu 20.04 System
echo "deb [arch=amd64] http://repo.powerdns.com/ubuntu focal-auth-45 main" | sudo tee /etc/apt/sources.list.d/pdns.list

2. Selanjutnya, buat file konfigurasi baru bernama /etc/apt/preferences.d/pdns dengan editor pilihan Anda, lalu isi file dengan konfigurasi berikut.

Dengan konfigurasi di bawah ini, paket apa pun yang dimulai dengan nama pdns- akan diinstal secara otomatis dari repositori PowerDNS (repo.powerdns.com ) alih-alih repositori Debian/Ubuntu.

# all packages with first name pdns- will be installed from the repo.powerdns.com repository
Package: pdns-*
Pin: origin repo.powerdns.com
Pin-Priority: 600

3. Jalankan perintah berikut untuk memperbarui dan menyegarkan repositori, lalu instal PowerDNS (pdns-server ) dan backend PowerDNS MariaDB/MySQL (pdns-backend-mysql ).

Setelah instalasi, layanan PowerDNS (pdns.service ) statistik dan diaktifkan secara otomatis.

# refresh package index after adding new repository
sudo apt update

# install PowerDNS and PowerDNS MySQL/MariaDB backend
sudo apt install pdns-server pdns-backend-mysql -y

4. Terakhir, jalankan systemctl perintah di bawah ini untuk memverifikasi status layanan PowerDNS (pdns.service ).

sudo systemctl status pdns.service

Seperti yang Anda lihat di bawah, layanan PowerDNS aktif (berjalan) pada port TCP default 53 dan dimulai sebagai Server Resmi PowerDNS .

Membuat Skema Basis Data dan Impor Basis Data untuk PowerDNS

Setelah menginstal PowerDNS, Anda akan menyiapkan MariaDB sebagai backend database untuk PowerDNS. Untuk melakukannya, Anda akan membuat database dan pengguna baru, lalu mengimpor skema database PowerDNS.

1. Jalankan perintah berikut untuk masuk ke shell MySQL sebagai pengguna root . Masukkan kata sandi root MariaDB Anda saat diminta.

mysql -u root -p

Setelah Anda masuk ke shell MySQL, Anda akan mendapatkan pesan selamat datang seperti gambar di bawah.

2. Selanjutnya, jalankan query berikut untuk membuat database baru (pdns ) dengan nama pengguna admin ditetapkan sebagai pdnsadmin .

# creating database named pdns
create database pdns;

# create user pdnsadmin and grant privileges to the database pdns
grant all on pdns.* to [email protected] identified by 'StrongPdnsPasswd';

# reload database privileges to apply new changes
flush privileges;

# exit from the MySQL shell
exit

3. Jalankan perintah berikut untuk mengimpor skema database PowerDNS ke pdns basis data. Pastikan untuk mengetikkan sandi yang benar untuk pdnsadmin pengguna.

Instalasi default backend PowerDNS MySQL menyertakan skema database, yang tersedia di /usr/share/pdns-backend-mysql/schema/ direktori.

# import the schema.mysql.sql to the pdns database
mysql -u pdnsadmin -p pdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql

4. Sekarang, jalankan mysqlshow di bawah ini perintah untuk memverifikasi skema database pdns basis data. Perintah ini menampilkan semua tabel yang tersedia di pdns basis data.

# Check list of tables on the pdns database
mysqlshow pdns

Di bawah, Anda dapat melihat tabel yang tersedia di pdns basis data.

Menyiapkan PowerDNS dengan MariaDB Backend

Anda telah mengonfigurasi MariaDB dan menyiapkan database Anda. Tetapi bagaimana Anda tahu jika PowerDNS berfungsi? Anda akan membuat konfigurasi backend MariaDB baru untuk PowerDNS. Layanan PowerDNS menggunakan konfigurasi ini untuk terhubung ke database MySQL dan menyimpan semua data DNS di database.

1. Jalankan perintah berikut ke stop layanan PowerDNS (pdns.service ) terlebih dahulu sebelum membuat konfigurasi backend PowerDNS.

sudo systemctl stop pdns.service

2. Selanjutnya, buat file bernama myself.conf di /etc/powerdns/pdns.d/ direktori dengan editor teks Anda, dan isi file dengan konfigurasi berikut.

Ubah nama pengguna dan kata sandi basis data dengan informasi Anda, dan simpan perubahannya.

Semua konfigurasi tambahan untuk PowerDNS harus disimpan di /etc/powerdns/pdns.d direktori.

# Define the gmysql backend
launch+=gmysql

# Details MariaDB database for PowerDNS
gmysql-host=127.0.0.1
gmysql-port=3306
gmysql-dbname=pdns
gmysql-user=pdnsadmin
gmysql-password=StrongPdnsPasswd
gmysql-dnssec=yes
# gmysql-socket=

3. Jalankan perintah berikut untuk mengubah izin dan kepemilikan mysql.conf mengajukan. Pada titik ini, konfigurasi backend MySQL untuk PowerDNS dibuat.

# change the ownership to user and group pdns
sudo chown pdns:pdns /etc/powerdns/pdns.d/mysql.conf

# change permission of the file
sudo chmod 640 /etc/powerdns/pdns.d/mysql.conf

4. Sekarang, jalankan perintah berikut untuk memulai layanan PowerDNS (pdns.service ), dan verifikasi layanan status .

# start PowerDNS service
sudo systemctl start pdns.service

# verify status of the PowerDNS service
sudo systemctl status pdns.service

Jika konfigurasi PowerDNS Anda benar, Anda akan menerima output berikut yang menunjukkan status layanan PowerDNS adalah active (running) .

5. Terakhir, jalankan perintah di bawah ini untuk memeriksa syslog mengajukan. Perintah ini memungkinkan Anda memastikan modul backend MySQL dimuat ke server PowerDNS.

grep -rin pdns_server /var/log/syslog

Membuat Zona DNS di PowerDNS

PowerDNS menyediakan utilitas baris perintah yang disebut pdnsutil untuk mengelola Zona dan DNSSEC. pdnsutil perintah dapat dijalankan dari jarak jauh untuk membuat perubahan pada database backend PowerDNS.

Dalam demo ini, Anda akan membuat zona DNS baru untuk example.io domain.

1. Jalankan pdnsutil perintah di bawah ini untuk membuat zona DNS baru (create-zone ) bernama example.io .

pdnsutil create-zone example.io

2. Selanjutnya, jalankan perintah berikut untuk membuat server nama baru dan menetapkan server nama ke alamat IP server PowerDNS.

# define ns1 A record to IP address 172.16.5.10
pdnsutil add-record example.io ns1 A 172.16.5.10

# define nameserver for example.io to the ns1.example.io
pdnsutil add-record example.io @ NS ns1.example.io

3. Jalankan perintah di bawah ini untuk menambahkan catatan A baru untuk example.io domain. Domain ini akan menggunakan alamat IP 172.16.5.20 .

pdnsutil add-record example.io @ A 172.16.5.20

4. Jalankan perintah berikut untuk menambahkan subdomain baru untuk aplikasi Anda.

# add subdomain www
pdnsutil add-record example.io www A 172.16.5.20

# add subdomain storage with the target server 172.16.5.50
pdnsutil add-record example.io storage A 172.16.5.50

5. Sekarang, jalankan perintah di bawah ini untuk menambahkan data MX. Data MX menangani pengiriman email untuk domain utama (example.io ).

pdnsutil add-record example.io @ MX "10 example.io"

6. Jalankan perintah di bawah ini untuk mengatur nano sebagai editor default dan buka example.io mengajukan.

# setup default editor on the system temporary
export EDITOR=nano

# edit DNS zone example.io manually
pdnsutil edit-zone example.io

Ubah catatan SOA default di example.io file dengan konfigurasi di bawah ini. Setelah melakukannya, simpan perubahan dan keluar dari editor.

example.io      3600    IN      SOA     ns1.example.io admin.example.io 0 10800 3600 604800 3600

7. Ketik a dan tekan Enter untuk mengonfirmasi penerapan perubahan baru, seperti yang ditunjukkan di bawah ini.

8. Sekarang, jalankan perintah berikut untuk menampilkan semua catatan DNS yang tersedia di example.io daerah.

pdnsutil list-zone example.io

Anda dapat mengonfirmasi di bawah ini bahwa catatan SOA yang Anda modifikasi (langkah enam) mencerminkan daftar catatan DNS.

9. Terakhir, jalankan perintah di bawah ini untuk memverifikasi konfigurasi zona PowerDNS.

pdnsutil check-all-zones

Di bawah ini, Anda dapat melihat bahwa ada tujuh catatan di example.io zona tanpa kesalahan dan peringatan.

Memverifikasi Propagasi DNS

Anda telah berhasil membuat zona DNS untuk example.io domain, dan itu bagus! Sekarang, Anda akan memverifikasi propagasi DNS dari example.io domain menggunakan alat Domain Information Groper (DIG). dig command adalah alat pencarian DNS yang memungkinkan Anda memverifikasi propagasi DNS dan memecahkan masalah server DNS Anda.

1. Jalankan perintah berikut ke install dnsutils paket di sistem Anda.

dig perintah adalah bagian dari dnsutils paket.

sudo apt install dnsutils -y

2. Selanjutnya, jalankan dig perintah di bawah ini untuk memeriksa catatan A untuk example.io domain. Dalam contoh ini, alamat IP server PowerDNS adalah 172.16.5.10 .

dig example.io @172.16.5.10

Dalam ANSWER SECTION , Anda akan melihat output serupa seperti di bawah ini.

3. Selain itu, jalankan perintah berikut untuk memeriksa subdomain lain, seperti www.example.io dan storage.example.io .

# check subdomain www.example.io
dig www.example.io @172.16.5.10

# check subdomain storage.example.io
dig storage.example.io @172.16.5.10

Di bawah ini, www.example.io subdomain diselesaikan ke server yang sama dengan example.io domain.

storage.example.io subdomain diselesaikan ke server lain dengan alamat IP 172.16.5.50 , seperti yang ditunjukkan di bawah ini.

4. Terakhir, jalankan dig perintah di bawah ini untuk memeriksa data MX untuk example.io domain.

Anda juga dapat memeriksa catatan DNS lainnya, seperti TXT , MX , SOA , dan seterusnya.

dig MX example.io @172.16.5.10

Kesimpulan

Sepanjang tutorial ini, Anda telah belajar cara mengatur backend database PowerDNS dan MariaDB di Debian/Ubuntu Linux. Anda juga menyadari bahwa PowerDNS memungkinkan Anda membuat dan mengelola server DNS dengan sumber daya kecil, tidak seperti aplikasi server DNS lainnya. Selain itu, Anda telah mempelajari cara memeriksa konfigurasi dan propagasi DNS dengan dig perintah.

Bagaimana cara membawa PowerDNS ke level selanjutnya? Mungkin dengan menambahkan PowerDNS recursor untuk mengaktifkan cache DNS dan menyiapkan dnsdist sebagai penyeimbang beban DNS? Sekarang gila dan mulailah membuat server DNS dengan ketersediaan tinggi dan terdistribusi.


Linux
  1. Cara Menginstal Java di Linux Ubuntu

  2. Cara menginstal usb-creator di Ubuntu Linux

  3. Cara Menginstal MariaDB di Ubuntu 22.04

  1. Cara Menginstal MariaDB 10.4 di Ubuntu 18.04

  2. Cara Menginstal Redis di Ubuntu 20.04 / 18.04

  3. Cara Menginstal File .deb di Ubuntu Linux

  1. Cara menginstal Redis di Ubuntu Linux

  2. Cara menginstal Curl di Ubuntu

  3. Cara menginstal PipeWire di Ubuntu Linux