การติดตั้งและกำหนดค่าเซิร์ฟเวอร์ centos dns ทั้งสองเครื่อง. BIND ในสภาพแวดล้อม chroot

เรานำเสนอเพื่อความสนใจของคุณ หลักสูตรใหม่จากทีม โค๊ดบี้- "การทดสอบการเจาะระบบของแอปพลิเคชันเว็บตั้งแต่เริ่มต้น" ทฤษฎีทั่วไป, การเตรียมสภาพแวดล้อมการทำงาน, การคลุมเครือแบบพาสซีฟและการพิมพ์ลายนิ้วมือ, การคลุมเครือแบบแอคทีฟ, ช่องโหว่, หลังการแสวงหาผลประโยชน์, เครื่องมือ, วิศวกรรมสังคม และอื่นๆ อีกมากมาย


โดเมนมีอย่างน้อยสองโดเมน เซิร์ฟเวอร์ DNSก อันหนึ่งเรียกว่าเนมเซิร์ฟเวอร์หลัก (ns1) และอีกอันเรียกว่าเนมเซิร์ฟเวอร์รอง (ns2) โดยปกติเซิร์ฟเวอร์รองจะใช้เมื่อเกิดปัญหากับเซิร์ฟเวอร์ DNS หลัก: หากเซิร์ฟเวอร์ตัวหนึ่งไม่พร้อมใช้งาน เซิร์ฟเวอร์ตัวที่สองจะเปิดใช้งาน เป็นไปได้มากขึ้น วงจรที่ซับซ้อนการใช้โหลดบาลานซ์ ไฟร์วอลล์ และคลัสเตอร์

ทั้งหมด บันทึก DNSมีการเพิ่มโดเมนเฉพาะเข้าไป เซิร์ฟเวอร์หลักชื่อ เซิร์ฟเวอร์สำรองเพียงซิงโครไนซ์ข้อมูลทั้งหมดโดยรับจากเซิร์ฟเวอร์หลักตามพารามิเตอร์ที่ระบุบนเซิร์ฟเวอร์หลัก

คำแนะนำนี้จะอธิบาย วิธีสร้างเซิร์ฟเวอร์ DNS หลักที่ทำงานบน CentOS- โปรดทราบว่าเซิร์ฟเวอร์ DNS ที่นำเสนอในคู่มือนี้จะเป็น DNS สาธารณะ ซึ่งหมายความว่าเซิร์ฟเวอร์จะตอบสนองต่อคำขอจากที่อยู่ IP ใด ๆ วิธีจำกัดการเข้าถึงเซิร์ฟเวอร์มีอธิบายไว้ในคู่มือนี้

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

เป้า

เราจะตั้งค่าเซิร์ฟเวอร์ DNS ภายใต้เงื่อนไขการทดสอบสำหรับโดเมน example.tst ซึ่งเป็นโดเมนสมมุติ (ไม่มีอยู่จริง) ด้วยวิธีนี้ เราจะไม่สุ่มรบกวนโดเมนจริงใดๆ

มีเซิร์ฟเวอร์ต่อไปนี้สามเครื่องในโดเมนนี้

เซิร์ฟเวอร์ ที่อยู่ IP บริการโฮสต์ FQDN
เซิร์ฟเวอร์ A 172.16.1.1 จดหมาย เมล.example.tst
เซิร์ฟเวอร์บี 172.16.1.2 เว็บ, FTP www.example.tst
ftp.example.tst
เซิร์ฟเวอร์ซี 172.16.1.3 หลัก เซิร์ฟเวอร์ DNS ns1.example.tst

เราจะกำหนดค่าเซิร์ฟเวอร์ DNS หลักและเพิ่มโดเมนที่จำเป็นและบันทึก DNS ดังที่แสดงในตาราง

การตั้งชื่อโฮสต์

โฮสต์ทั้งหมดต้องได้รับการระบุอย่างถูกต้องในแง่ของ FQDN ซึ่งสามารถทำได้โดยใช้วิธีการต่อไปนี้

ผู้ที่รัก กุยสามารถใช้เครื่องมือ NetworkManaget ได้ เมื่อต้องการทำเช่นนี้ ให้พิมพ์คำสั่ง เอ็มทุย- ส่วนต่อประสานกราฟิกหลอกต่อไปนี้จะเปิดขึ้น:

เลือก “เปลี่ยนชื่อโฮสต์” และป้อน ns1.example.tst

เมื่อพร้อมแล้ว คลิกตกลง

อีกวิธีหนึ่งโดยใช้เพียงคำสั่งเดียว:

Hostnamectl ชุด-ชื่อโฮสต์ ns1.example.tst

เมื่อติดตั้งแล้ว สามารถตรวจสอบชื่อโฮสต์ได้ด้วยคำสั่งต่อไปนี้

# ชื่อโฮสต์ ns1.example.tst

สถานะโฮสต์ชื่อ

ก่อนที่จะไปยังขั้นตอนถัดไป ตรวจสอบให้แน่ใจว่าชื่อโฮสต์สำหรับเซิร์ฟเวอร์ทั้งหมดได้รับการตั้งค่าอย่างถูกต้อง

กำลังติดตั้งแพ็คเกจ

เราจะใช้การผูกสำหรับ DNS ซึ่งสามารถตั้งค่าได้อย่างง่ายดายด้วยคำสั่ง yum

การติดตั้ง DNS โดยไม่มี chroot:

# ยำติดตั้งผูก

การตั้งค่า DNS ด้วย chroot:

# yum ติดตั้งbind-chroot

กำลังเตรียมไฟล์การกำหนดค่า

ตามที่กล่าวไว้ข้างต้น การผูกสามารถกำหนดค่าโดยมีหรือไม่มี chroot ได้ เส้นทางจะแตกต่างกันเล็กน้อยขึ้นอยู่กับว่ามีการติดตั้ง chroot หรือไม่

ทางไป ไฟล์การกำหนดค่า เส้นทางไปยังไฟล์โซน
ไม่มีโครูท /ฯลฯ/ /var/ชื่อ/
กับโครูท /var/named/chroot/etc/ /var/named/chroot/var/named/

คุณสามารถใช้ไฟล์คอนฟิกูเรชัน Name.conf ซึ่งให้มาตามค่าเริ่มต้น อย่างไรก็ตาม เราจะใช้ไฟล์การกำหนดค่าตัวอย่างอื่นเพื่อความสะดวกในการใช้งาน

สร้างสำเนาสำรองของไฟล์ /etc/named.conf

Cp /etc/named.conf /etc/named.conf.bak

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /etc/named.conf

# cp /usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones /var/named/chroot/etc/named.conf

ตอนนี้ก็มีแล้ว การสำรองข้อมูลไฟล์การกำหนดค่าและไฟล์ต้นฉบับมีการเปลี่ยนแปลง เราก็เดินหน้าต่อไป

# กลุ่ม /etc/named.conf

# กลุ่ม /var/named/chroot/etc/named.conf

มีการเพิ่ม/เปลี่ยนแปลงบรรทัดต่อไปนี้

ตัวเลือก ( ## เส้นทางไปยังไฟล์โซน ## ไดเร็กทอรี "/var/named"; ## คำขอเปลี่ยนเส้นทางไปที่ DNS สาธารณะ เซิร์ฟเวอร์ของ Googleสำหรับโดเมนที่ไม่ใช่ท้องถิ่น ## ผู้ส่งต่อ ( 8.8.8.8; ); - ## การประกาศโซนโดยตรงสำหรับ example.tst ## โซน "example.tst" IN ( ประเภท master; ไฟล์ "example-fz"; ## ไฟล์สำหรับโซนโดยตรงอยู่ใน /var/named ## Allow-update ( ไม่มี; ) ; ; ## การประกาศโซนย้อนกลับสำหรับเครือข่าย 172.16.1.0 ## โซน "1.16.172.in-addr.arpa" IN ( ประเภท master; ไฟล์ "rz-172-16-1"; ## ไฟล์สำหรับโซนย้อนกลับคือ อยู่ใน /var /named ## อนุญาตการอัปเดต ( none; );

กำลังเตรียมไฟล์โซน

ไฟล์โซนเริ่มต้นจะถูกสร้างขึ้นโดยอัตโนมัติใน /var/named หรือ /var/named/chroot/var/named (สำหรับ chroot)

สมมติว่าไม่มีไฟล์โซนดีฟอลต์ เราสามารถคัดลอกไฟล์ตัวอย่างจาก /usr ได้

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/

# cp /usr/share/doc/bind-9.9.4/sample/var/named/named.* /var/named/chroot/var/named

ยอดเยี่ยม. ตอนนี้ไฟล์โซนเริ่มต้นพร้อมแล้ว เราก็สร้างไฟล์ของเราขึ้นมา ไฟล์ของตัวเองโซนสำหรับ example.tst และเครือข่าย 172.16.1.0 ในขณะที่เรากำลังสร้างไฟล์โซน เราต้องจำสิ่งต่อไปนี้

  • สัญลักษณ์ '@' หมายถึง NULL ในไฟล์โซน
  • รายการชื่อโดเมนที่มีคุณสมบัติครบถ้วน (FQDN) แต่ละรายการจะลงท้ายด้วยเครื่องหมายจุด ' เป็นต้น เมล.example.tst. หากไม่มีประเด็นก็จะมีปัญหา

1. โซนตรง

โซนตรงมีแผนผังการแปลจากชื่อไปยังที่อยู่ IP สำหรับโดเมนสาธารณะ โดเมน DNS ที่โฮสต์บนบริการโฮสติ้งจะอยู่ในไฟล์โซนโดยตรง

# กลุ่ม /var/named/example-fz

# vim /var/named/chroot/var/named/example-fz $TTL 1D @ IN SOA ns1.example.tst mial.example.tst (0; อนุกรม 1D; รีเฟรช 1H; ลองอีกครั้ง 1W; หมดอายุ 3H); ขั้นต่ำใน NS ns1.example.tst ในเมล 172.16.1.3 ใน A 172.16.1.1 ใน MX 10 mail.example.tst www ใน A 172.16.1.2 ns1 ใน A 172.16.1.3 ftp ใน CNAME www.example.tst

คำอธิบาย: ภายในไฟล์โซน SOA หมายถึงการเริ่มต้นของการอนุญาต เท่านี้ก็เสร็จสมบูรณ์แล้ว ชื่อโดเมนเซิร์ฟเวอร์ชื่อที่เชื่อถือได้ หลังจากชื่อโดเมนเต็มแล้วจะมีข้อมูลการติดต่อ ที่อยู่อีเมล- เพราะเราไม่สามารถใช้ '@' ในได้ [ป้องกันอีเมล]เราจะเขียนที่อยู่อีเมลใหม่เป็น mial.example.tst

  • เอ็นเอส: ชื่อเซิร์ฟเวอร์
  • : บันทึกหรือบันทึกที่อยู่คือที่อยู่ IP
  • เอ็มเอ็กซ์: จดหมาย รายการแลกเปลี่ยน- ที่นี่เราใช้ MX เดียวที่มีลำดับความสำคัญ 10 ในกรณีที่มี MX หลายรายการ เราสามารถใช้ลำดับความสำคัญดิจิทัลที่แตกต่างกันได้ เบอร์ล่างชนะ ตัวอย่างเช่น MX 0 ดีกว่า MX 1
  • CNAME: ชื่อใน รูปแบบบัญญัติ- หากเซิร์ฟเวอร์โฮสต์บริการจำนวนมาก มีแนวโน้มมากที่หลายชื่อจะรวมเป็นเซิร์ฟเวอร์เดียว CNAME ส่งสัญญาณว่าเซิร์ฟเวอร์อาจมีชื่ออื่นและอ้างอิงถึงชื่อที่มีอยู่ในบันทึก A

2. โซนถอยหลัง

โซนย้อนกลับมีแผนผังการแปลงจากที่อยู่ IP เป็นชื่อ ที่นี่เราสร้างโซนย้อนกลับสำหรับเครือข่าย 172.16.1.0 ในโดเมนจริง เซิร์ฟเวอร์ DNS ของเจ้าของบล็อก IP สาธารณะมีอยู่ในไฟล์โซนย้อนกลับ

# กลุ่ม /var/named/rz-172-16-1

# vim /var/named/chroot/var/named/rz-172-16-1 $TTL 1D @ ใน SOA ns1.example.tst sarmed.example.tst. (0; อนุกรม 1D; รีเฟรช 1H; ลองอีกครั้ง 1W; หมดอายุ 3H); ขั้นต่ำใน NS ns1.example.tst 1 ใน PTR mail.example.tst 2 ใน PTR www.example.tst 3 ใน PTR ns1.example.tst

คำอธิบาย: พารามิเตอร์ส่วนใหญ่ที่ใช้ใน โซนย้อนกลับเหมือนกับโซนตรงยกเว้นสิ่งหนึ่ง

  • ปตท: PTR หรือบันทึกตัวชี้ จะชี้ไปที่ชื่อโดเมนแบบเต็ม

เสร็จสิ้น

เมื่อไฟล์โซนพร้อมแล้ว เราจะกำหนดค่าความละเอียดของไฟล์โซน

# chgrp ชื่อ /var/named/*

# chgrp ชื่อ /var/named/chroot/var/named/*

ตอนนี้เราจะตั้งค่า IP ที่อยู่ DNSเซิร์ฟเวอร์

# vim /etc/resolv.conf เนมเซิร์ฟเวอร์ 172.16.1.3

ในที่สุดเราก็วิ่งได้แล้ว บริการดีเอ็นเอสและตรวจสอบให้แน่ใจว่าได้เพิ่มเข้าไปในการทำงานอัตโนมัติแล้ว

# บริการชื่อรีสตาร์ท # chkconfig ตั้งชื่อไว้

การทดสอบ DNS

เราสามารถใช้ dig หรือ nslookup เพื่อทดสอบ DNS ขั้นแรกเราจะติดตั้งแพ็คเกจที่จำเป็น

# yum ติดตั้ง bind-utils

1. การทดสอบโซนโดยตรงโดยใช้การขุด

# ขุดตัวอย่าง tst ;; ->>ส่วนหัว<<- opcode: QUERY, status: NOERROR, id: 31184 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86400 IN A 172.16.1.3 ;; AUTHORITY SECTION: example.com. 86400 IN NS ns1.example.com. ;; ADDITIONAL SECTION: ns1.example.com. 86400 IN A 172.16.1.3

2. ตรวจสอบ PTR โดยใช้การขุด

เมื่อคุณใช้ dig สำหรับการทดสอบ คุณควรมองหาสถานะ "NOERROR" เสมอ เงื่อนไขอื่นใดหมายถึงมีบางอย่างผิดปกติ

# ขุด -x 172.16.1.1 ;; ->>ส่วนหัว<<- opcode: QUERY, status: NOERROR, id: 27415 ;; QUESTION SECTION: ;1.1.17.172.in-addr.arpa. IN PTR ;; ANSWER SECTION: 1.1.16.172.in-addr.arpa. 86400 IN PTR mail.example.tst. ;; AUTHORITY SECTION: 1.16.172.in-addr.arpa. 86400 IN NS ns1.example.tst. ;; ADDITIONAL SECTION: ns1.example.tst. 86400 IN A 172.16.1.3

3. ตรวจสอบ MX โดยใช้ dig

# ขุดตัวอย่าง tst mx ;; ->>ส่วนหัว<<- opcode: QUERY, status: NOERROR, id: 35405 ;; QUESTION SECTION: ;example.tst. IN MX ;; ANSWER SECTION: example.tst. 14366 IN MX 10 mail.example.tst.

เคล็ดลับการแก้ปัญหา

  1. ฉันปิดการใช้งาน SELinux แล้ว
  2. ตรวจสอบให้แน่ใจว่าไฟร์วอลล์ของคุณไม่ได้บล็อกพอร์ต UDP 53
  3. /var/log/messages ควรมีข้อมูลที่เป็นประโยชน์ในกรณีที่มีสิ่งผิดปกติเกิดขึ้น
  4. ตรวจสอบให้แน่ใจว่าเจ้าของไฟล์โซนเป็นผู้ใช้ 'ชื่อ'
  5. ตรวจสอบให้แน่ใจว่าที่อยู่ IP ของเซิร์ฟเวอร์ DNS อยู่ในรายการเป็นอันดับแรกใน /etc/resolv.conf
  6. หากคุณใช้ example.tst ในสภาพแวดล้อมของห้องปฏิบัติการ อย่าลืมยกเลิกการเชื่อมต่อเซิร์ฟเวอร์จากอินเทอร์เน็ต เนื่องจาก example.tst เป็นโดเมนที่ไม่มีอยู่จริง

โดยสรุป บทช่วยสอนนี้มุ่งเน้นไปที่การโฮสต์โดเมน example.tst ในห้องปฏิบัติการเพื่อวัตถุประสงค์ในการสาธิต โปรดจำไว้ว่านี่ไม่ใช่คำแนะนำในการสร้างเซิร์ฟเวอร์ DNS สาธารณะ เช่น เซิร์ฟเวอร์ DNS ที่ตอบสนองต่อคำขอจากที่อยู่ IP ใด ๆ หากคุณกำลังตั้งค่าเซิร์ฟเวอร์ DNS ที่ใช้งานจริง โปรดตรวจสอบว่านโยบายใดบ้างที่ใช้กับ DNS สาธารณะ อีกบทเรียนหนึ่งครอบคลุมถึงการสร้าง DNS รอง การจำกัดการเข้าถึงเซิร์ฟเวอร์ DNS และการนำ DNSSEC ไปใช้

ผู้ค้ำประกันคือตัวกลางที่เชื่อถือได้ระหว่างผู้เข้าร่วมในระหว่างการทำธุรกรรม


DNS- ระบบชื่อโดเมน - ระบบแบบกระจายที่สามารถรายงานที่อยู่ IP ตามคำขอที่มีชื่อโฮสต์ โครงสร้าง DNS คล้ายกับระบบไฟล์ Linux ฐานข้อมูลทั้งหมดมีโครงสร้างแบบต้นไม้ โดยมีรากที่ด้านบน ( . - มันมาจากจุดที่ระบบชื่อโดเมนทั้งหมดเริ่มต้นขึ้น สามารถตามหลังจุดด้วย ru, com, net, info ฯลฯ โดเมนที่มาจากรากเช่น รุ, คอม,สุทธิ.ถูกเรียกว่า โดเมนระดับแรก, โดเมนประเภทเว็บไซต์ ถูกเรียกว่า โดเมนระดับที่สองแต่อยู่ในรูปแบบ file.site - โดเมนระดับที่สามและอื่น ๆ สังเกตช่วงเวลาท้ายตัวอย่าง ชื่อที่เขียนในลักษณะนี้เรียกว่าชื่อสัมบูรณ์ (FQDN) หากไม่ได้ระบุจุด ระบบจะถือว่าชื่อเป็นแบบสัมพันธ์ นั่นก็คือเว็บไซต์

ทำไมต้องใช้ DNS?

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

2) ตัวเลือกที่สองเกี่ยวข้องกับการเข้าถึงอินเทอร์เน็ต ตัวอย่างเช่น คุณต้องไปที่เซิร์ฟเวอร์ FTP บนอินเทอร์เน็ตด้วยชื่อ ftp.site, และที่อยู่ IP คือ 89.111.176.87

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

เซิร์ฟเวอร์ DNS สามารถใช้เป็น: ตัวเปลี่ยนเส้นทางหลักและรอง แบบเรียกซ้ำ และแบบสอบถาม

หลัก(หลัก) โหลดข้อมูลสำหรับโซนจากไฟล์บนเครื่องเซิร์ฟเวอร์ และรอง (รอง) รับข้อมูลจาก DNS หลัก เซิร์ฟเวอร์ DNS สามารถเป็นเซิร์ฟเวอร์หลักสำหรับโซนหนึ่งและเป็นเซิร์ฟเวอร์รองสำหรับอีกโซนหนึ่งได้

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

ขอเปลี่ยนเส้นทางส่งคำขอจากไคลเอนต์ไปยังเซิร์ฟเวอร์ของผู้ให้บริการ เซิร์ฟเวอร์ของผู้ให้บริการประมวลผลคำขอไคลเอนต์จำนวนมาก มีแคชขนาดใหญ่และการเชื่อมต่อความเร็วสูง

บันทึก DNS พื้นฐาน

เอ - การติดต่อระหว่างชื่อและที่อยู่ IP
AAAA - การติดต่อระหว่างชื่อและที่อยู่ IPv6
CNAME - ชื่อมาตรฐาน (คำพ้องความหมาย)
MX - ชี้ไปที่เซิร์ฟเวอร์อีเมลสำหรับโดเมนนี้
NS - เซิร์ฟเวอร์ DNS สำหรับโดเมน
PTR - ชื่อมาตรฐาน
SOA เป็นบันทึกเริ่มต้นที่ระบุว่าข้อมูลเกี่ยวกับเซิร์ฟเวอร์ถูกจัดเก็บไว้ที่ใด
SRV - เซิร์ฟเวอร์สำหรับบริการ

การติดตั้ง BIND.
เราจะติดตั้ง BIND บน centOs5
มีเซิร์ฟเวอร์ชื่อ ns1..168.200.1

ยำติดตั้งผูก

การตั้งค่า ผูก
สร้างและกรอกไฟล์การกำหนดค่า

vi /var/named/chroot/etc/named.conf

ตัวเลือก (
ไดเร็กทอรี "/var/named/";
ไฟล์ดัมพ์ "/var/run/named_dump.bd";
ไฟล์สถิติ "/var/run/named.stats";
};
โซน "ไซต์" ใน (
ประเภทต้นแบบ;
ไฟล์ "site.db";
};
โซน "200.168.192.IN-ADDR.ARPA" ใน (
ประเภทต้นแบบ;
ไฟล์ "192.168.200.db";
};

โซน "0.0.127.IN-ADDR.ARPA" ใน (
ประเภทต้นแบบ;
ไฟล์ "127.0.0.db";
};

โซน "." -
คำใบ้ประเภท;
ไฟล์ "named.ca";
};

เราสร้างไฟล์โซนสำหรับ site.db, 192.168.0.db, 127.0.0.db, name.ca

vi /var/named/chroot/var/named/site.db# โซนตรงสำหรับการแมปชื่อไปยังที่อยู่

$TTL 1H ; 1 ชั่วโมง
ในเว็บไซต์ SOA ns1.ไซต์รูท.ไซต์ (22
3ชม
1ชม
1W
1 ชม.)

- เนมเซิร์ฟเวอร์
เอ็นเอส ns1.ไซต์

;สำหรับชื่อที่มีลักษณะเฉพาะ
ns1.ไซต์ ใน 1H ก 192.168.200.1
host1.site ใน 1H 192.168.200.154
;นามแฝง
gw1.ไซต์ ใน 1H CNAME host1.site
www.เว็บไซต์ ใน 1H CNAME host1.site

vi /var/named/chroot/var/named/192.168.200.db# โซนย้อนกลับสำหรับการจับคู่ที่อยู่กับชื่อ

$TTL 3600 ; 1 ชั่วโมง
200.168.192.in-addr.arpa ใน SOA ns1.ไซต์รูท.ไซต์ (21
3ชม
1ชม
1W
1 ชม.)
- เนมเซิร์ฟเวอร์
200.168.192.in-addr.arpa ใน NS ns1.site

- ชื่อที่เป็นที่ยอมรับ
1.200.168.192.in-addr.arpa PTR ns1.site
154.200.168.192.in-addr.arpa PTR โฮสต์ 1.site

vi /var/named/chroot/var/name/127.0.0.db# ที่อยู่ย้อนกลับสำหรับส่งแพ็กเก็ตถึงตัวคุณเอง

$TTL 3600 ; 1 ชั่วโมง
0.0.127.in-addr.arpa ใน SOA ns1.ไซต์รูท.ไซต์ (21
3ชม
1ชม
1W
1 ชม.)

0.0.127.in-addr.arpa ใน NS ns1.site
0.0.127.in-addr.arpa ใน PTR โลคัลโฮสต์

vi /var/named/chroot/var/named/named.ca#เซิร์ฟเวอร์รูท

A.ROOT-SERVERS.NET 3600000 198.41.0.4
;
- เดิมชื่อ NS1.ISI.EDU
;
- 3600000 NS B.ROOT-SERVERS.NET
B.ROOT-SERVERS.NET 3600000 192.228.79.201
;
- เดิมชื่อ C.PSI.NET
;
- 3600000 NS C.ROOT-SERVERS.NET
C.ROOT-SERVERS.NET 3600000 192.33.4.12
;
- เดิมชื่อ TERP.UMD.EDU
;
- 3600000 NS D.ROOT-SERVERS.NET
D.ROOT-SERVERS.NET 3600000 128.8.10.90
;
- เดิมชื่อ NS.NASA.GOV
;
- 3600000 NS E.ROOT-SERVERS.NET
E.ROOT-SERVERS.NET 3600000 192.203.230.10
;
- เดิมชื่อ NS.ISC.ORG
;
- 3600000 NS F.ROOT-SERVERS.NET
F.ROOT-SERVERS.NET 3600000 192.5.5.241
;
- เดิมชื่อ NS.NIC.DDN.MIL
;
- 3600000 NS G.ROOT-SERVERS.NET
G.ROOT-SERVERS.NET 3600000 192.112.36.4
;
- ชื่อเดิม AOS.ARL.ARMY.MIL
;
- 3600000 NS H.ROOT-SERVERS.NET
H.ROOT-SERVERS.NET 3600000 128.63.2.53
;
- เดิมชื่อ NIC.NORDU.NET
;
- 3600000 NS I.ROOT-SERVERS.NET
I.ROOT-SERVERS.NET 3600000 192.36.148.17
J.ROOT-SERVERS.NET 3600000 192.58.128.30
;
- ดำเนินการโดย RIPE NCC
;
- 3600000 NS K.ROOT-SERVERS.NET
K.ROOT-SERVERS.NET 3600000 193.0.14.129
;
- ดำเนินการโดย ICANN
;
- 3600000 NS L.ROOT-SERVERS.NET
L.ROOT-SERVERS.NET 3600000 198.32.64.12
;
- ดำเนินการโดย WIDE
;
- 3600000 NS M.ROOT-SERVERS.NET
M.ROOT-SERVERS.NET 3600000 202.12.27.33
- จุดสิ้นสุดของไฟล์

การเริ่มต้นและการหยุดเซิร์ฟเวอร์/etc/init.d/named (เริ่มหยุดรีสตาร์ท)
ยูทิลิตี้การทดสอบ DNS: โฮสต์ nslookup ขุด
สำหรับการตั้งค่า DNS แบบละเอียดเพิ่มเติม โปรดอ่าน manbind หนังสือ DNS และ BIND ฯลฯ

ด้วยคำพูดง่ายๆ เวอร์ชันของซอฟต์แวร์ที่ใช้: CentOS 7, BINВ 9

กำลังเตรียมเซิร์ฟเวอร์

ติดตั้งการอัปเดตทั้งหมด:

ติดตั้งยูทิลิตี้การซิงโครไนซ์เวลา:

# ยำติดตั้ง ntpdate

การตั้งค่าเขตเวลา:

# \cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* ในตัวอย่างนี้ เลือกเวลามอสโกไว้

และซิงโครไนซ์เวลากับเซิร์ฟเวอร์ภายนอก:

#ntpdate ru.pool.ntp.org

เปิดพอร์ตในไฟร์วอลล์:

# ไฟร์วอลล์-cmd --ถาวร --add-port=53/udp

และอ่านการตั้งค่าไฟร์วอลล์อีกครั้ง:

# ไฟร์วอลล์-cmd --reload

การติดตั้งและใช้งาน BIND

เราติดตั้งเซิร์ฟเวอร์ DNS ด้วยคำสั่งต่อไปนี้:

# ยำติดตั้งผูก

อนุญาตให้เริ่มอัตโนมัติ:

# systemctl เปิดใช้งานชื่อ

มาเริ่มบริการชื่อกัน:

# systemctl เริ่มตั้งชื่อ

และเราตรวจสอบว่ามันทำงานได้อย่างถูกต้อง:

# สถานะ systemctl ชื่อ

การตั้งค่าเซิร์ฟเวอร์ DNS พื้นฐาน

เปิดไฟล์คอนฟิกูเรชันการเชื่อมโยงเพื่อแก้ไข:

# vi /etc/named.conf

และแก้ไขสิ่งต่อไปนี้:

พอร์ตการฟัง 53 ( 127.0.0.1; localhost; 192.168.166.155; );
...
อนุญาตแบบสอบถาม (ใด ๆ; );

* ที่ไหน 192.168.166.155 — ที่อยู่ IP ของเซิร์ฟเวอร์ NS ของเราที่จะรับคำขอ อนุญาตแบบสอบถามอนุญาตให้ทุกคนดำเนินการตามคำขอได้ แต่ด้วยเหตุผลด้านความปลอดภัย คุณสามารถจำกัดการเข้าถึงเครือข่ายเฉพาะได้ แทนได้ ใดๆเขียน 192.168.166.0/24 .

หากต้องการใช้การตั้งค่า ให้รันคำสั่ง:

# systemctl รีสตาร์ทชื่อ

หากต้องการตรวจสอบการทำงานของเซิร์ฟเวอร์จากคอมพิวเตอร์เครื่องอื่นบนเครือข่าย (เช่นบน Windows) ให้รันคำสั่ง:

> ไซต์ nslookup 192.168.166.155

* ด้วยคำสั่งนี้เรากำลังพยายามค้นหาที่อยู่ IP ของไซต์ เว็บไซต์ผ่านทางเซิร์ฟเวอร์ 192.168.166.155 .

มันควรมีลักษณะดังนี้:

คำอธิบายของตัวเลือกสากล

การตั้งค่าต่อไปนี้ใช้ได้กับ DNS และโซนที่กำหนดค่าทั้งหมด พวกมันถูกตั้งค่าไว้ในไฟล์คอนฟิกูเรชัน Name.conf ซึ่งเป็นคำสั่ง options()

ตัวเลือก คำอธิบาย
ไดเรกทอรี ระบุไดเร็กทอรีการทำงานของเซิร์ฟเวอร์การโยง หากไม่ได้ระบุ /var/named
ผู้ส่งต่อ แสดงรายการเซิร์ฟเวอร์ที่จะถ่ายโอนคำขอหากเซิร์ฟเวอร์ของเราไม่สามารถประมวลผลได้ (ไม่มีโซนที่เกี่ยวข้อง)
ซึ่งไปข้างหน้า แทนที่วิธีการประมวลผลคำขอ ยอมรับสองค่า - เท่านั้นหรือค่าแรก รายการแรกระบุว่าเซิร์ฟเวอร์จะไม่พยายามจับคู่โซนภายในเครื่อง ประการที่สอง เซิร์ฟเวอร์จะเปลี่ยนเส้นทางคำขอก่อน และหากประมวลผลไม่สำเร็จ ให้ค้นหารายการที่ตรงกันในฐานข้อมูลภายใน
ฟังบน อินเทอร์เฟซใดที่จะผูกการฟัง?
อนุญาตให้โอน การระบุรายชื่อเซิร์ฟเวอร์ที่จะอนุญาตให้มีการถ่ายโอนโซน (การจำลองไปยัง NS รอง)
อนุญาตแบบสอบถาม รายการโหนดที่อนุญาตให้เข้าถึงเซิร์ฟเวอร์ หากไม่ได้ระบุจะอนุญาตทั้งหมด
อนุญาต-แจ้ง อนุญาตให้เซิร์ฟเวอร์ที่อยู่ในรายการส่งการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงการตั้งค่าโซน
อนุญาตให้เรียกซ้ำ ระบุรายการโฮสต์ที่อนุญาตให้ใช้การสืบค้นแบบเรียกซ้ำ ส่วนที่เหลือจะได้รับอนุญาตให้ทำซ้ำได้ หากไม่ได้ระบุ จะเรียกซ้ำสำหรับทุกคน

ตัวอย่างการตั้งค่าส่วนกลาง

ตัวเลือก (
ไดเร็กทอรี "/var/named";
ผู้ส่งต่อ ( 192.168.0.10; 77.88.8.8; 8.8.8.8; );
ฟังบน (127.0.0.1; localhost; 192.168.166.155; );
อนุญาตให้โอน ( 192.168.1.15; 192.168.0.0/24; );
อนุญาตแบบสอบถาม ( 192.168.1.0/24; 192.168.0.2; 192.168.0.3; );
อนุญาต-แจ้ง ( 192.168.0.15; );
อนุญาตให้เรียกซ้ำ (ใด ๆ; );
}

โซนผูก

เพื่อให้สามารถค้นหารายการที่ตรงกันในฐานข้อมูลโดเมนของคุณเองได้ คุณต้องสร้างและกำหนดค่าโซน มีประเภทโซนต่อไปนี้:

  1. ประถมศึกษาหรือที่เรียกว่าปรมาจารย์หรือที่เรียกว่าท้องถิ่น ฐานข้อมูลที่ได้รับการอัพเดตและแก้ไขบนเซิร์ฟเวอร์ปัจจุบัน เรียนรู้เพิ่มเติมเกี่ยวกับวิธีกำหนดค่าโซนการผูกหลัก
  2. รองหรือทาส ฐานข้อมูลจะคัดลอกการตั้งค่าจากโซนหลักบนเซิร์ฟเวอร์อื่น เรียนรู้เพิ่มเติมเกี่ยวกับวิธีตั้งค่าโซนการผูกรอง
  3. ต้นขั้วหรือต้นขั้ว จัดเก็บเฉพาะบันทึก NS ตามคำขอทั้งหมดจะถูกถ่ายโอนไปยังเซิร์ฟเวอร์ NS ที่เหมาะสม
  4. แคชหรือคำใบ้ มันไม่ได้จัดเก็บบันทึกใด ๆ บนเครือข่าย - เฉพาะผลลัพธ์ของคำขอที่ประมวลผลแล้วเท่านั้นเพื่อเพิ่มความเร็วในการตอบสนองต่อคำขอซ้ำ ๆ

การแก้ปัญหาการใช้ไฟล์บันทึก

ตามค่าเริ่มต้น เซิร์ฟเวอร์ Bind จะจัดเก็บบันทึกในไฟล์
/var/named/data/named.run.

หากต้องการดูอย่างต่อเนื่อง ให้ป้อนคำสั่งต่อไปนี้:

หาง /var/named/data/named.run

คุณสามารถกำหนดค่าระดับรายละเอียดบันทึกได้ในไฟล์การกำหนดค่า:

การบันทึก (
ช่อง default_debug (
ไฟล์ "data/named.run";
ความรุนแรงแบบไดนามิก
};
};

* ที่ไหน ไฟล์— เส้นทางไปยังไฟล์บันทึก ความรุนแรง— ระดับความอ่อนไหวต่อเหตุการณ์ที่เกิดขึ้น ตัวเลือกต่อไปนี้มีให้สำหรับระดับความรุนแรง:

  • วิกฤต- ข้อผิดพลาดร้ายแรง
  • ข้อผิดพลาด— ข้อผิดพลาดและสูงกว่า (สำคัญ)
  • คำเตือน- คำเตือนและสูงกว่า คำเตือนไม่ได้บ่งบอกถึงปัญหากับบริการ อย่างไรก็ตาม เหตุการณ์เหล่านี้อาจทำให้เกิดข้อผิดพลาดได้ ดังนั้นคุณจึงไม่ควรละเลย
  • สังเกต- การแจ้งเตือนและสูงกว่า
  • ข้อมูล- ข้อมูล.
  • แก้ปัญหา- การดีบัก (บันทึกรายละเอียด)
  • พลวัต- การแก้ไขข้อบกพร่องเดียวกัน