Bagaimana Menyediakan Pelayan DNS Swasta dengan BIND di Ubuntu 16.04

Bagaimana Menyediakan Pelayan DNS Swasta dengan BIND di Ubuntu 16.04. BIND (Domain Nama Domain Berkeley) adalah perisian DNS yang paling banyak digunakan di Internet. Pakej BIND tersedia untuk semua pengedaran Linux, yang menjadikan pemasangan mudah dan mudah. Dalam artikel hari ini, kami akan menunjukkan kepada anda cara memasang, mengkonfigurasi dan mentadbir BIND 9 sebagai pelayan DNS peribadi pada Ubuntu 16.04 VPS, dalam beberapa langkah.

Keperluan:

  • Dua pelayan (ns1 dan ns2) disambungkan ke rangkaian peribadi
  • Dalam tutorial ini, kami akan menggunakan subnet 10.20.0.0 / 16
  • Pelanggan DNS yang akan menyambung ke pelayan DNS anda

1. Kemas kini kedua-dua pelayan

Mulakan dengan mengemas kini pakej pada kedua-dua pelayan:

Kemas kini # sudo apt-get

2. Pasang BIND pada kedua-dua pelayan

# sudo apt-get pasangkan bind9 bind9utils

3. Tetapkan BIND ke mod IPv4

Tetapkan BIND ke mod IPv4, kami akan melakukannya dengan mengedit fail "/ etc / default / bind9" dan menambah "-4" kepada pembolehubah OPTIONS:

# sudo nano / etc / default / bind9

Fail yang diedit seharusnya kelihatan seperti ini:

# menjalankan resolvconf? RESOLVCONF = tidak # pilihan permulaan untuk pelayan PILIHAN = "- 4 -u mengikat"

Kini mari mengkonfigurasi ns1, pelayan DNS utama kami.

4. Mengkonfigurasi Server DNS Utama

Edit fail named.conf.options:

# sudo nano /etc/bind/named.conf.options

Di atas blok opsyen, tambah blok baru yang dipanggil dipercayai. Senarai ini akan membolehkan klien yang dinyatakan di dalamnya menghantar pertanyaan DNS rekursif ke pelayan utama kami:

acl "dipercayai" {10.20.30.13; 10.20.30.14; 10.20.55.154; 10.20.55.155; };

5. Dayakan pertanyaan rekursif pada pelayan ns1 kami, dan dapatkan pelayan mendengar di rangkaian peribadi kami

Kemudian kami akan menambah beberapa tetapan tatarajah untuk membolehkan pertanyaan rekursif pada pelayan ns1 kami dan untuk membolehkan pelayan mendengar pada rangkaian peribadi kami, tambahkan tetapan konfigurasi di bawah direktori "/ var / cache / bind" arahan seperti dalam contoh di bawah:

pilihan {direktori "/ var / cache / bind"; rekursi ya; membolehkan-rekursi {dipercayai; }; mendengar pada {10.20.30.13; }; izinkan pemindahan {none; }; pengantara {8.8.8.8; 8.8.4.4; }; };

Sekiranya arahan "listen-on-v6" ada dalam fail named.conf.options, padamkannya kerana kami mahu BIND hanya mendengar pada IPv4.
Kini pada ns1, buka fail named.conf.local untuk mengedit:

# sudo nano /etc/bind/named.conf.local

Di sini kita akan menambah zon ke hadapan:

zon "test.example.com" {jenis tuan; fail "/etc/bind/zones/db.test.example.com"; izinkan pemindahan {10.20.30.14; }; };

Subnet swasta kami adalah 10.20.0.0 / 16, jadi kami akan menambah zon terbalik dengan baris berikut:

zon "20.10.in-addr.arpa" {master type; fail "/etc/bind/zones/db.10.20"; izinkan pemindahan {10.20.30.14; }; };

Sekiranya pelayan anda berada di beberapa subnet peribadi di lokasi fizikal yang sama, anda perlu menentukan zon dan membuat fail zon berasingan bagi setiap subnet.

6. Membuat Fail Zon Hadapan

Kini kami akan membuat direktori di mana kami akan menyimpan fail zon kami di:

# sudo mkdir / etc / bind / zones

Kami akan menggunakan fail db.local sampel untuk membuat fail zon maju kami, mari salin fail terlebih dahulu:

# cd / etc / bind / zones # sudo cp ../db.local ./db.test.example.com

Sekarang edit fail zon ke hadapan yang baru sahaja disalin:

# sudo nano /etc/bind/zones/db.test.example.com

Ia sepatutnya kelihatan seperti contoh di bawah:

$ TTL 604800 @ IN SOA localhost. root.localhost. (2; Serial 604800; Refresh 86400; Retry 2419200; Tamat 604800); TTL Cache Negatif; @ IN NS localhost. ; padam ini @ IN A 127.0.0.1; padam ini @ IN AAAA :: 1; hapus ini

Sekarang mari kita edit rekod SOA. Ganti localhost dengan FQDN server ns1 anda, kemudian gantikan "root.localhost" dengan "admin.test.example.com". Setiap kali anda mengedit file zon, kenaikan nilai siri sebelum anda restart bernama sebaliknya BIND tidak akan menerapkan perubahan ke zon, kami akan menambah nilai kepada "3", ia sepatutnya kelihatan seperti ini:

@ IN SOA ns1.test.example.com. admin.test.example.com. (3; Serial

Kemudian hapuskan tiga rekod terakhir yang ditandai dengan "hapuskan ini" selepas rekod SOA.

Tambah rekod nama pada akhir fail:

; pelayan nama - rekod NS DI NS ns1.test.example.com. IN NS ns2.test.example.com.

Selepas itu tambahkan rekod A untuk tuan rumah yang perlu berada di zon ini. Ini bermakna mana-mana pelayan yang namanya kita mahu tamat dengan ".test.example.com":

; pelayan nama - Rekod ns1.test.example.com. IN A 10.20.30.13 ns2.test.example.com. IN A 10.20.30.14; 10.20.0.0 / 16 - Rekod host1.test.example.com. IN A 10.20.55.154 host2.test.example.com. IN A 10.20.55.155

Fail db.test.example.com sepatutnya kelihatan seperti berikut:

$ TTL 604800 @ IN SOA ns1.test.example.com. admin.test.example.com. (3; Serial 604800; Refresh 86400; Retry 2419200; Tamat 604800); TTL Cache Negatif; ; pelayan nama - rekod NS DI NS ns1.test.example.com. IN NS ns2.test.example.com. ; pelayan nama - Rekod ns1.test.example.com. IN A 10.20.30.13 ns2.test.example.com. IN A 10.20.30.14; 10.20.0.0 / 16 - Rekod host1.test.example.com. IN A 10.20.55.154 host2.test.example.com. IN A 10.20.55.155

7. Membuat Fail Zon Belakang

Kami menentukan rekod PTR untuk pencarian DNS terbalik dalam fail zon balik. Apabila pelayan DNS menerima pertanyaan carian PTR untuk contoh untuk IP: "10.20.55.154", ia akan memeriksa fail zon balik untuk mendapatkan FQDN alamat IP, dalam kes kami yang akan menjadi "host1.test.example.com" .

Kami akan membuat fail zon balik untuk setiap zon terbalik tunggal yang dinyatakan dalam fail named.conf.local yang kami buat pada ns1. Kami akan menggunakan fail zon db.127 sampel untuk membuat fail zon terbalik:

# cd / etc / bind / zones # sudo cp ../db.127 ./db.10.20

Edit fail zon balik supaya ia sepadan dengan zon terbalik yang ditakrifkan dalam named.conf.local:

# sudo nano /etc/bind/zones/db.10.20

Fail asal harus kelihatan seperti berikut:

$ TTL 604800 @ IN SOA localhost. root.localhost. (1; Serial 604800; Refresh 86400; Retry 2419200; Tamat 604800); TTL Cache Negatif; @ IN NS localhost. ; hapus 1.0.0 IN PTR localhost ini. ; hapus ini

Anda perlu mengubah suai rekod SOA dan menambah nilai siri. Ia sepatutnya kelihatan seperti ini:

@ IN SOA ns1.test.example.com. admin.test.example.com. (3; Serial

Kemudian hapuskan tiga rekod terakhir yang ditandai dengan "hapuskan ini" selepas rekod SOA.

Tambah rekod nama pada akhir fail:

; pelayan nama - rekod NS DI NS ns1.test.example.com. IN NS ns2.test.example.com.

Kini tambahkan rekod PTR untuk semua tuan rumah yang berada di subnet yang sama dalam fail zon yang anda buat. Ini terdiri daripada tuan rumah kami yang berada di subnet 10.20.0.0 / 16. Dalam lajur pertama kita membalikkan perintah dua oktet terakhir dari alamat IP hos yang ingin kita tambah:

; PTR Records 13.30 IN PTR ns1.test.example.com. ; 10.20.30.13 14.30 IN PTR ns2.test.example.com. ; 10.20.30.14 154.55 IN PTR host1.test.example.com. ; 10.20.55.154 155.55 IN PTR host2.test.example.com. ; 10.20.55.155

Simpan dan keluar dari fail zon balik.

Fail zon balik "/etc/bind/zones/db.10.20" sepatutnya kelihatan seperti ini:

$ TTL 604800 @ IN SOA test.example.com. admin.test.example.com. (3; Serial 604800; Refresh 86400; Retry 2419200; Tamat 604800); TTL Cache Negatif; pelayan nama IN NS ns1.test.example.com. IN NS ns2.test.example.com. ; PTR Records 13.30 IN PTR ns1.test.example.com. ; 10.20.30.13 14.30 IN PTR ns2.test.example.com. ; 10.20.30.14 154.55 IN PTR host1.test.example.com. ; 10.20.55.154 155.55 IN PTR host2.test.example.com. ; 10.20.55.155

8. Semak Fail Konfigurasi

Gunakan arahan berikut untuk menyemak sintaks konfigurasi semua fail named.conf yang kami konfigurasikan:

# sudo bernama-checkconf

Jika fail konfigurasi anda tidak mempunyai sebarang masalah sintaks, output tidak akan mengandungi apa-apa mesej ralat. Walau bagaimanapun, jika anda menghadapi masalah dengan fail konfigurasi anda, bandingkan tetapan dalam bahagian "Mengkonfigurasi Pelayan DNS Utama" dengan fail yang anda ada dalam kesilapan dan membuat penyelarasan yang betul, maka anda boleh cuba melaksanakan perintah bernama-checkconf sekali lagi.

Zon zon bernama boleh digunakan untuk memeriksa konfigurasi yang betul dari fail zon anda.Anda boleh menggunakan perintah berikut untuk memeriksa zon maju "test.example.com":

# sudo bernama-checkzone test.example.com db.test.example.com

Dan jika anda ingin menyemak konfigurasi zon balik, jalankan perintah berikut:

# sudo bernama-checkzone 20.10.in-addr.arpa /etc/bind/zones/db.10.20

Sebaik sahaja anda telah mengkonfigurasi semua fail konfigurasi dan zon dengan betul, mulakan semula perkhidmatan BIND:

# sudo bind9 restart perkhidmatan

9. Mengkonfigurasi Server DNS Menengah

Menyediakan pelayan DNS sekunder sentiasa merupakan idea yang baik kerana ia berfungsi sebagai failover dan akan bertindak balas kepada pertanyaan jika pelayan utama tidak bertindak balas.

Pada ns2, edit fail named.conf.options:

# sudo nano /etc/bind/named.conf.options

Di bahagian atas fail, tambah ACL dengan alamat IP peribadi untuk semua pelayan yang dipercayai:

acl "dipercayai" {10.20.30.13; 10.20.30.14; 10.128.100.101; 10.128.200.102; };

Sama seperti dalam fail named.conf.options untuk ns2, tambahkan baris berikut di bawah direktori "/ var / cache / bind" arahan:

        rekursi ya; membolehkan-rekursi {dipercayai; }; mendengar pada {10.20.30.13; }; izinkan pemindahan {none; }; pengantara {8.8.8.8; 8.8.4.4; };

Simpan dan keluar dari fail.

Sekarang buka fail named.conf.local untuk mengedit:

# sudo nano /etc/bind/named.conf.local

Sekarang kita harus menentukan zon hamba yang sepadan dengan zon induk pada pelayan DNS ns1. Arahan tuan harus ditetapkan ke alamat IP peribadi pelayan DNS ns1:

zon "test.example.com" {jenis hamba; fail "hamba / db.test.example.com"; sarjana {10.20.30.13; }; }; zon "20.10.in-addr.arpa" {jenis hamba; fail "budak / db.10.20"; sarjana {10.20.30.13; }; };

Sekarang simpan dan keluar dari fail.

Gunakan arahan berikut untuk menyemak sintaks fail konfigurasi:

# sudo bernama-checkconf

Kemudian mulakan semula perkhidmatan BIND:

# sudo bind9 restart perkhidmatan

10. Konfigurasikan Klien DNS

Sekarang kita akan mengkonfigurasi tuan rumah di subnet 10.20.0.0 / 16 kami untuk menggunakan pelayan ns1 dan ns2 sebagai pelayan DNS utama dan sekunder mereka. Ini sangat bergantung kepada OS yang dikendalikan oleh tuan rumah tetapi untuk kebanyakan pengedaran Linux tetapan yang perlu diubah berada dalam file /etc/resolv.conf.

Umumnya pada pengedaran Ubuntu, Debian dan CentOS hanya mengedit fail /etc/resolv.conf, jalankan perintah berikut sebagai root:

# nano /etc/resolv.conf

Kemudian ganti nama pelayan sedia ada dengan:

nameserver 10.20.30.13 #ns1 nameserver 10.20.30.14 #ns2

Kini simpan dan keluar fail dan klien anda harus dikonfigurasikan untuk menggunakan pelayan nama ns1 dan ns2.

Kemudian menguji jika pelanggan anda boleh menghantar pertanyaan ke pelayan DNS yang anda hanya konfigurasi:

# nslookup host1.test.example.com

Output dari arahan ini hendaklah:

Output: Server: 10.20.30.13 Alamat: 10.20.30.13 # 53 Nama: host1.test.example.com Alamat: 10.20.55.154

Anda juga boleh menguji pemeriksaan terbalik dengan menanyakan pelayan DNS dengan alamat IP hos:

# nslookup 10.20.55.154

Keluaran seharusnya kelihatan seperti ini:

Output: Pelayan: Alamat 10.20.30.13: 10.20.30.13 # 53 154.55.20.10.in-addr.arpa name = host1.test.example.com.

Semak sama ada semua tuan rumah menyelesaikan dengan betul menggunakan arahan di atas, jika mereka melakukannya bermakna anda telah mengkonfigurasi semuanya dengan betul.

Menambah Host Baru untuk Pelayan DNS Anda

Jika anda perlu menambah hos ke pelayan DNS anda, ikuti langkah-langkah berikut:

Pada nameserver ns1 lakukan perkara berikut:

  • Buat rekod A dalam fail zon ke hadapan untuk tuan rumah dan kenaikan nilai pembolehubah Serial.
  • Buat rekod PTR dalam fail zon balik untuk hos dan tambah nilai pembolehubah Serial.
  • Tambahkan alamat IP peribadi hos anda ke ACL yang dipercayai di named.conf.options.
  • Muat semula BIND menggunakan arahan berikut: sudo perkhidmatan bind9 reload

Pada nameserver ns2 lakukan perkara berikut:

  • Tambahkan alamat IP peribadi hos anda ke ACL yang dipercayai di named.conf.options.
  • Muat semula BIND menggunakan arahan berikut: sudo perkhidmatan bind9 reload

Pada mesin tuan rumah lakukan yang berikut:

  • Edit /etc/resolv.conf dan ubah nama pelayan ke pelayan DNS anda.
  • Gunakan nslookup untuk menguji jika hos meminta pelayan DNS anda.

Mengalih keluar Hos Sedia Ada dari Pelayan DNS anda

Sekiranya anda mahu mengeluarkan hos dari pelayan DNS anda, batalkan langkah-langkah di atas.

Nota: Sila tukar nama dan alamat IP yang digunakan dalam tutorial ini untuk nama dan alamat IP tuan rumah di rangkaian peribadi anda sendiri.

Anda tidak perlu menyiapkan pelayan DNS Swasta dengan BIND di Ubuntu 16.04 sendiri, jika anda menggunakan salah satu daripada kami Perkhidmatan Hosting VPS Linux, di mana anda hanya boleh meminta pentadbir Linux pakar kami untuk Menetapkan Pelayan DNS Swasta dengan BIND di Ubuntu 16.04 untuk anda. Mereka boleh didapati 24 × 7 dan akan menjaga permintaan anda dengan segera.

Source

Sila tinggalkan balasan anda

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.