ค้นหาเว็บไซต์

การตั้งค่าการเชื่อมโยงเป็นเซิร์ฟเวอร์ DNS ส่วนตัวบน RHEL 8


ระบบชื่อโดเมน (DNS) เป็นวิธีที่ใช้ในการแปลชื่อโดเมนที่มนุษย์สามารถอ่านได้ (หรือ ชื่อโดเมนแบบเต็ม (FQDN )) ไปยังที่อยู่ IP ที่เครื่องอ่านได้ เพื่อค้นหาคอมพิวเตอร์ในเครือข่าย เช่น อินเทอร์เน็ต

ในระบบคอมพิวเตอร์และระบบเครือข่าย สิ่งนี้มีความจำเป็น เนื่องจากแม้ว่า FQDN จะง่ายต่อการจดจำและใช้งานของมนุษย์ แต่คอมพิวเตอร์ (ไคลเอนต์) จะเข้าถึงทรัพยากรหรือบริการบนคอมพิวเตอร์เครื่องอื่น (เซิร์ฟเวอร์) ตามที่อยู่ IP

ในเรื่องนี้ เซิร์ฟเวอร์ DNS (หรือที่เรียกว่าเนมเซิร์ฟเวอร์) จะรักษาไดเร็กทอรีของ FQDNs และแปลเป็นที่อยู่ IP นอกจากนี้ยังสามารถส่งคืนที่อยู่ IP ได้เมื่อมีการระบุ ชื่อโฮสต์/FQDN มีเซิร์ฟเวอร์ DNS หลายประเภท รวมถึงเนมเซิร์ฟเวอร์ที่เชื่อถือได้ เซิร์ฟเวอร์ชื่อแคช และอื่นๆ อีกมากมาย

ในบทความนี้ เราจะแนะนำคุณตลอดขั้นตอนในการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ DNS ส่วนตัว/ภายในที่เชื่อถือได้บน RHEL 8 โดยใช้ซอฟต์แวร์โอเพ่นซอร์ส BIND

ความต้องการ:

  1. RHEL 8 พร้อมการติดตั้งขั้นต่ำ
  2. RHEL 8 พร้อมเปิดใช้งานการสมัครสมาชิก RedHat
  3. RHEL 8 พร้อมที่อยู่ IP แบบคงที่

สภาพแวดล้อมการทดสอบของฉัน:

Domain: tecmint.lan
DNS Server IP and hostname: 192.168.56.100, dns-primary.tecmint.lan
DNS Client IP and hostname: 192.168.56.104, tecmint.tecmint.lan

ขั้นตอนที่ 1: การติดตั้ง Bind DNS บน RHEL 8

1. หากต้องการติดตั้ง bind และยูทิลิตี้บนเซิร์ฟเวอร์ของคุณ ให้รันคำสั่ง cdnf ต่อไปนี้

dnf install bind bind-utils

2. ถัดไป ให้เริ่มบริการ DNS ในตอนนี้ จากนั้นเปิดใช้งานให้เริ่มอัตโนมัติเมื่อบูตระบบ และตรวจสอบว่าบริการนั้นเปิดใช้งานอยู่หรือไม่โดยใช้คำสั่ง systemctl

systemctl start named
systemctl enable named
systemctl status named

ขั้นตอนที่ 2: การกำหนดค่า BIND DNS บน RHEL 8

3. ในการกำหนดค่าเซิร์ฟเวอร์ Bind DNS ขั้นแรกคุณต้องสำรองข้อมูลไฟล์การกำหนดค่าดั้งเดิม /etc/named.conf โดยใช้ cp ต่อไปนี้ สั่งการ.

cp /etc/named.conf /etc/named.conf.orig

4. ตอนนี้ให้เปิดไฟล์การกำหนดค่า /etc/named.conf เพื่อแก้ไขโดยใช้โปรแกรมแก้ไขข้อความบรรทัดคำสั่งที่คุณชื่นชอบดังต่อไปนี้

vi /etc/named.conf 

ใต้ส่วนการกำหนดค่า options ให้ใส่เครื่องหมายความคิดเห็นในบรรทัดต่อไปนี้

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";

5. ถัดไป ค้นหาพารามิเตอร์ allow-query และตั้งค่าเป็นเครือข่ายของคุณ ซึ่งหมายความว่า เฉพาะโฮสต์เท่านั้น บนเครือข่ายท้องถิ่นของคุณเท่านั้นที่สามารถทำได้ สอบถามเซิร์ฟเวอร์ DNS

allow-query  {localhost; 192.168.56.0/24}

ขั้นตอนที่ 3: การสร้างโซน DNS ไปข้างหน้าและย้อนกลับ

Forward Zone คือที่ที่ ชื่อโฮสต์ (หรือ FQDN) กับความสัมพันธ์ของที่อยู่ IP ถูกเก็บไว้ จะส่งคืนที่อยู่ IP โดยใช้ ชื่อโฮสต์ โปรดทราบว่าข้อความค้นหา DNS ปกติเป็นข้อความค้นหาแบบส่งต่อ ในทางกลับกัน Reverse Zone ส่งคืน FQDN ของโฮสต์ตามที่อยู่ IP

6. หากต้องการกำหนดโซน ไปข้างหน้า และ ย้อนกลับ ให้เพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของ /etc/named.conf< ไฟล์

//forward zone 
zone "tecmint.lan" IN { 
     type master; 
     file "tecmint.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "tecmint.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

มาอธิบายตัวเลือกในการกำหนดค่าโซนข้างต้นโดยย่อ:

  • ประเภท: กำหนดบทบาทของเซิร์ฟเวอร์นี้สำหรับโซน ค่า “ต้นแบบ” หมายความว่าเป็นเซิร์ฟเวอร์ที่เชื่อถือได้ซึ่งมีการเก็บสำเนาหลักของข้อมูลโซนไว้
  • ไฟล์: ระบุไฟล์ฐานข้อมูลของโซน
  • อนุญาตการอัปเดต: ระบุโฮสต์ที่อนุญาตให้ส่งการอัปเดต DNS แบบไดนามิกสำหรับโซนหลัก ไม่มีในกรณีนี้

ขั้นตอนที่ 4: การสร้างไฟล์โซน DNS ส่งต่อ

7. ขั้นแรก สร้างไฟล์ Forward Zone ใต้ไดเร็กทอรี /var/named

vi /var/named/tecmint.lan.db

เพิ่มการกำหนดค่าต่อไปนี้ลงไป

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)

;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;IP for Name Server
dns-primary IN A 192.168.56.100

;A Record for IP address to Hostname 
www IN A 192.168.56.5
mail IN A 192.168.56.10
docs  IN A 192.168.56.20

มาอธิบายสั้นๆ เกี่ยวกับคำจำกัดความของโซนข้างต้นและพารามิเตอร์กัน

  • TTL: ระบุ time-to-live ของคำสั่ง RR และ $TTL จะให้ TTL เริ่มต้นสำหรับทุก ๆ RR โดยไม่มีการตั้งค่า TTL ที่เฉพาะเจาะจง
  • @: เป็นนามแฝงสำหรับชื่อโดเมน (เช่น tecmint.lan) ที่กำหนดไว้ในไฟล์การกำหนดค่าหลัก
  • ใน: หมายถึงอินเทอร์เน็ต
  • SOA: ระบุ การเริ่มต้นการอนุญาต: ใครคือเนมเซิร์ฟเวอร์ที่เชื่อถือได้ (dns-primary.tecmint.lan) ซึ่งเป็นข้อมูลติดต่อของผู้ดูแลระบบ ( admin.tecmint.lan เครื่องหมาย @ จะถูกแทนที่ด้วยจุด) และข้อมูลอื่นๆ ที่เกี่ยวข้อง
  • NS: หมายถึงเนมเซิร์ฟเวอร์
  • อนุกรม: ค่านี้ถูกใช้โดยเซิร์ฟเวอร์ DNS เพื่อตรวจสอบว่าเนื้อหาของไฟล์โซนใดไฟล์หนึ่งเป็นข้อมูลล่าสุด
  • รีเฟรช: ระบุความถี่ที่เซิร์ฟเวอร์ DNS ทาสควรทำการถ่ายโอนโซนจากเซิร์ฟเวอร์หลัก
  • ลองอีกครั้ง: ระบุความถี่ที่ทาสควรลองถ่ายโอนโซนที่ล้มเหลวอีกครั้ง
  • หมดอายุ: กำหนดระยะเวลาที่เซิร์ฟเวอร์ทาสควรรอก่อนที่จะตอบคำถามของไคลเอ็นต์เมื่อไม่สามารถเข้าถึงเซิร์ฟเวอร์หลักได้
  • ขั้นต่ำ: ตั้งค่า TTL ขั้นต่ำสำหรับโซน
  • A: ที่อยู่โฮสต์

ขั้นตอนที่ 5: การสร้างไฟล์ Reverse DNS Zone

8. ในทำนองเดียวกัน ให้สร้างไฟล์ Reverse Zone ใต้ไดเร็กทอรี /var/named

vi /var/named/tecmint.lan.rev

จากนั้นเพิ่มบรรทัดต่อไปนี้ลงไป ในที่นี้ PTR อยู่ตรงข้ามกับระเบียน A ที่ใช้ในการจับคู่ที่อยู่ IP กับชื่อโฮสต์

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;Reverse lookup for Name Server
100 IN PTR dns-primary.tecmint.lan.

;PTR Record IP address to HostName
5 IN PTR www.tecmint.lan.
10 IN PTR mail.tecmint.lan.
20 IN PTR docs.tecmint.lan.

9. ตั้งค่าสิทธิ์การเป็นเจ้าของที่ถูกต้องในไฟล์โซนดังต่อไปนี้

chown :named /var/named/tecmint.lan.db
chown :named /var/named/tecmint.lan.rev

10. สุดท้ายนี้ ให้ตรวจสอบการกำหนดค่า DNS และไฟล์โซนมีไวยากรณ์ที่ถูกต้องหลังจากทำการเปลี่ยนแปลงข้างต้น โดยใช้ยูทิลิตี named-checkconf (no out หมายความว่าไม่มีข้อผิดพลาด):

named-checkconf
named-checkzone tecmint.lan /var/named/tecmint.lan.db
named-checkzone 192.168.56.100 /var/named/tecmint.lan.rev

11. เมื่อคุณดำเนินการกำหนดค่าที่จำเป็นทั้งหมดแล้ว คุณจะต้องเริ่มบริการ DNS ใหม่เพื่อให้การเปลี่ยนแปลงล่าสุดมีผล

systemctl restart named

12. ถัดไป ก่อนที่ไคลเอ็นต์จะสามารถเข้าถึงการกำหนดค่าบริการ DNS บนเซิร์ฟเวอร์ได้ คุณจะต้องเพิ่มบริการ DNS ในการกำหนดค่าไฟร์วอลล์ของระบบและโหลดการตั้งค่าไฟร์วอลล์อีกครั้งโดยใช้ยูทิลิตี้ firewall-cmd ดังนี้ : :

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

ขั้นตอนที่ 6: ทดสอบบริการ DNS จากไคลเอนต์

13. ในส่วนนี้ เราจะแสดงวิธีทดสอบบริการ DNS จากฝั่งไคลเอ็นต์ เข้าสู่ระบบเครื่องไคลเอนต์ กำหนดค่าให้ใช้เซิร์ฟเวอร์ DNS ข้างต้น บนระบบ Linux ให้เปิดไฟล์ /etc/resolve.conf โดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ

vi /etc/resolve.conf 

เพิ่มรายการต่อไปนี้ลงไป ซึ่งบอกให้ตัวแก้ไขใช้เนมเซิร์ฟเวอร์ที่ระบุ

nameserver  192.168.56.100

บันทึกไฟล์และปิด โปรดทราบว่าคุณต้องระบุเซิร์ฟเวอร์ DNS ในไฟล์การกำหนดค่าอินเทอร์เฟซเครือข่ายด้วย

14. เพิ่มเซิร์ฟเวอร์ DNS IP 192.168.56.100 เป็นตัวแก้ไขให้กับไฟล์การกำหนดค่าอินเทอร์เฟซเครือข่ายของเครื่องไคลเอ็นต์ /etc/sysconfig/network-scripts/ifcfg-enp0s3< ดังแสดงในรูปต่อไปนี้

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=aba298ca-fa65-48cd-add9-6c3f1f28cee2
DEVICE=enp0s3
ONBOOT=no
DNS=192.168.56.100

15. จากนั้นใช้ยูทิลิตี nslookup เพื่อค้นหา IP โดยใช้ชื่อโฮสต์และในทางกลับกัน ของ www, mail และ เอกสาร< เซิร์ฟเวอร์ในเครือข่ายของคุณดังที่แสดง

nslookup 192.168.56.5
nslookup www.tecmint.lan
nslookup 192.168.56.10
nslookup mail.tecmint.lan
nslookup 192.168.56.20
nslookup docs.tecmint.lan
nslookup 192.168.56.100
nslookup dns-primary.tecmint.lan

สรุป

ในบทความนี้ เราได้แสดงวิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ DNS ส่วนตัวที่เชื่อถือได้บน RHEL 8 โดยใช้ซอฟต์แวร์ BIND เราหวังว่าทุกอย่างจะทำงานได้ดีสำหรับคุณ ไม่เช่นนั้น โปรดส่งคำถามหรือความคิดเห็นอื่น ๆ มาให้เราผ่านแบบฟอร์มคำติชมด้านล่าง